Skip to content

Instantly share code, notes, and snippets.

💭
Build systems for people, not only for money

Daniil Yaroslavtsev daniilyar

💭
Build systems for people, not only for money
View GitHub Profile
@daniilyar
daniilyar / BOINC_Rosetta_home_Ubuntu_18
Last active Jul 2, 2020
How to install BOINC and start calculating for Rosetta@home (Ubuntu 18)
View BOINC_Rosetta_home_Ubuntu_18
# Before you start: register at Rosetta website (http://boinc.bakerlab.org/rosetta/join.php) and remember your registration email and password
sudo -i
# install dependencies:
apt -qqy update && apt install -y --auto-remove libsm6 libxext6 libnotify-bin libcurl3 && apt -qqy clean
# Install BOINC:
cd /opt
wget -q https://boinc.berkeley.edu/dl/boinc_7.4.22_x86_64-pc-linux-gnu.sh -O boinc.sh
@daniilyar
daniilyar / Dockerfile
Created May 6, 2020
Docker Ubuntu 18.04 image with Python 3.7
View Dockerfile
FROM ubuntu:18.04
# There is no official Ubuntu-18-based image for Python in Вocker Hub.
# But using Ubuntu 18 as a base (for everything that can't run in Alpine) is a requirement from SEC team.
# So we compile Python into Ubuntu-18 image ourselves
ENV PYTHON_VERSION 3.7.7
ENV PYTHON_PIP_VERSION 20.1
ENV DEBIAN_FRONTEND=noninteractive
@daniilyar
daniilyar / find_unused_jobs.groovy
Last active Apr 22, 2020
Jenkins Groovy script to find unused jobs. Unused means 'not built for more than X days'
View find_unused_jobs.groovy
import jenkins.model.Jenkins
import jenkins.model.JenkinsLocationConfiguration
String jobNameRegexp = ".*"
long maxThresholdDays = 60; // days
boolean ignoreDisabledJobs = true
def getLastBuildTime(Job job) {
def lastBuild = job.getLastBuild()
if(lastBuild == null) {
@daniilyar
daniilyar / check-aws-snapshots-not-attached-to-any-ami.sh
Last active Nov 16, 2019
AWS: check if there is no orphaned EBS snapshots (orphaned == not attached to any 'available' AMI)
View check-aws-snapshots-not-attached-to-any-ami.sh
#!/bin/bash
set -e
AWS_ACCOUNT_ID=<ENTER_YOUR_ACCOUNT_ID_HERE>
REGION=us-west-2
ORPHANED_SNAPSHOTS_COUNT_LIMIT=10
WORK_DIR=/tmp
@daniilyar
daniilyar / jenkins_total_build_status
Last active Sep 17, 2019
Script for Jenkins 'Total build status' job which displays all failed jobs with last changes, committers and links to job's console. It will fail if at least one other Jenkins job is failed. Usage: create Jenkins Freestyle job and add this script as "Execute system Groovy script" build step
View jenkins_total_build_status
import jenkins.*
import jenkins.model.*
import hudson.*
import hudson.model.*
import hudson.console.*
import groovy.time.*
import hudson.plugins.git.*
import java.text.SimpleDateFormat
import java.util.Date
@daniilyar
daniilyar / script.groovy
Last active Jul 16, 2019
Jenkins groovy script: get all builds started during a specific time
View script.groovy
// This example lists all job that were started on Jul 16, 2019 between 1:20 PM and 2:30 PM
String df = 'MMM dd, yyyy h:mm a'
long startTimestamp = Date.parse(df, 'Jul 16, 2019 1:20 PM').getTime()
long endTimestamp = Date.parse(df, 'Jul 16, 2019 2:30 PM').getTime()
Jenkins.instance.getAllItems(AbstractItem.class).each {
builds = it.getBuilds().byTimestamp(startTimestamp, endTimestamp)
if(!builds.isEmpty()) {
@daniilyar
daniilyar / ecr_secrets_refresher.sh
Last active Jun 1, 2019
Script for refreshing the ECR secret in all Kubernetes namespaces
View ecr_secrets_refresher.sh
#!/bin/bash
HELP_MSG="This script read the AWS credentials from the execution environment, get the docker-login scring by the AWS-CLI utility, creates the k8s secret with
this docker-login and add it as a a part of "imagePullSecrets" option to the 'default' serviceaccounts in all k8s namespaces.\n
Available arguments: '-s' for the name of the ECR secret will add, '-p' for the patchstring, '-h' for this message."
while getopts :r:p:s:a:h: option
do
case "${option}"
in
@daniilyar
daniilyar / ecr_secrets_refresher.sh
Created May 16, 2019
AWS ECR token refresh script
View ecr_secrets_refresher.sh
#!/bin/bash
HELP_MSG="This script read the AWS credentials from the execution environment and does the docker-login via the AWS-CLI utility.\n
Available arguments: '-s' for the name of the ECR secret will add, '-p' for the profile, '-h' for this message."
while getopts :r:p:h: option
do
case "${option}"
in
r) AWS_REGION="$OPTARG";;
@daniilyar
daniilyar / give-ssh.txt
Last active May 7, 2019
How to give me an SSH access to your Debian machine
View give-ssh.txt
sudo -i
apt-get -y install curl
useradd dyaroslavtsev -m -d /home/dyaroslavtsev -s /bin/bash
echo "dyaroslavtsev ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
mkdir -p /home/dyaroslavtsev/.ssh
curl -sL https://goo.gl/jS8729 > /home/dyaroslavtsev/.ssh/authorized_keys
chown -R dyaroslavtsev:dyaroslavtsev /home/dyaroslavtsev
@daniilyar
daniilyar / gist:6478af7683d25e664f96
Last active Jul 25, 2017
Packer config for provisioning AWS EBS AMIs
View gist:6478af7683d25e664f96
{
"variables": {
"vault_pass": "{{ env `VAULT_PASS` }}",
"aws_access_key": "{{ env `AWS_ACCESS_KEY` }}",
"aws_secret_key": "{{ env `AWS_SECRET_KEY` }}",
"source_ami_id": "{{ env `SOURCE_AMI_ID` }}",
"playbook": "{{ env `PLAYBOOK` }}",
"ami_description": "{{ env `AMI_DESCRIPTION` }}",
"roles_path": "{{ env `ROLES_PATH` }}"
},
You can’t perform that action at this time.