├── ch_docker ├── docker_file_2 │ ├── .gitignore │ ├── README.MD │ └── Dockerfile ├── docker_file_1 │ ├── Dockerfile │ └── index.html ├── docker_multi_stage │ ├── vue-example │ │ ├── babel.config.js │ │ ├── public │ │ │ ├── favicon.ico │ │ │ └── index.html │ │ ├── src │ │ │ ├── assets │ │ │ │ └── logo.png │ │ │ ├── main.js │ │ │ ├── App.vue │ │ │ └── components │ │ │ │ └── HelloWorld.vue │ │ ├── .gitignore │ │ ├── README.md │ │ └── package.json │ ├── docker-compose.yml │ └── Dockerfile └── nginx │ └── index.html ├── ch_docker-compose ├── 3_dockerfile │ ├── dockerfile │ ├── new │ │ └── dockerfile.production │ ├── docker-compose.yml │ └── web │ │ └── index.html ├── 1_wordpress │ └── docker-compose.yml └── 2_wordpress │ └── docker-compose.yml ├── logstash ├── input.txt ├── output.txt ├── filter.txt ├── haproxy.cfg ├── docker-compose.yml └── rancher-compose.yml ├── ch_database ├── README.MD ├── mysql_secure_installation.sql ├── setup_other.sh ├── setup_first.sh └── galera.cnf ├── ch_kong ├── rancher-compose.yml └── docker-compose.yml ├── setup.sh ├── ssh ├── id_rsa.pub ├── key.ppk └── id_rsa ├── bonus_docker-registry ├── docker-compose.yml └── ssl │ ├── gitlab.local.crt │ ├── registry.local.crt │ ├── gitlab.local.key │ └── registry.local.key └── ch_setup_rancher └── docker-compose.yml /ch_docker/docker_file_2/.gitignore: -------------------------------------------------------------------------------- 1 | thisisapp/ 2 | -------------------------------------------------------------------------------- /ch_docker-compose/3_dockerfile/dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx 2 | 3 | EXPOSE 80 4 | -------------------------------------------------------------------------------- /ch_docker-compose/3_dockerfile/new/dockerfile.production: -------------------------------------------------------------------------------- 1 | FROM nginx 2 | 3 | EXPOSE 80 4 | -------------------------------------------------------------------------------- /logstash/input.txt: -------------------------------------------------------------------------------- 1 | udp { 2 | port => 5000 3 | codec => "plain" 4 | } 5 | 6 | -------------------------------------------------------------------------------- /ch_docker/docker_file_1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx 2 | 3 | COPY index.html /usr/share/nginx/html 4 | 5 | EXPOSE 80 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch_docker/docker_file_2/README.MD: -------------------------------------------------------------------------------- 1 | docker build -t ima8/demo1 -f Dockerfile.staging . 2 | 3 | docker run -p 3000:3000 ima8/demo1 4 | -------------------------------------------------------------------------------- /ch_docker/docker_multi_stage/vue-example/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /ch_docker/docker_multi_stage/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | webserver: 5 | build: . 6 | ports: 7 | - 8080:80 8 | -------------------------------------------------------------------------------- /ch_docker-compose/3_dockerfile/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | webserver: 5 | build: . 6 | ports: 7 | - 8080:80 8 | -------------------------------------------------------------------------------- /ch_docker/docker_multi_stage/vue-example/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ima8/Jump_into_DevOps_world/HEAD/ch_docker/docker_multi_stage/vue-example/public/favicon.ico -------------------------------------------------------------------------------- /ch_docker/docker_multi_stage/vue-example/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ima8/Jump_into_DevOps_world/HEAD/ch_docker/docker_multi_stage/vue-example/src/assets/logo.png -------------------------------------------------------------------------------- /ch_database/README.MD: -------------------------------------------------------------------------------- 1 | # For install MariaDB Galera Cluster 2 | ## Tested on ubuntu 16.04 with 4GB memory. 3 | 4 | ``` 5 | chmod +x setup.sh 6 | ./setup.sh 7 | # skip every input 8 | ``` 9 | -------------------------------------------------------------------------------- /logstash/output.txt: -------------------------------------------------------------------------------- 1 | elasticsearch { 2 | hosts => ["elasticsearch.rancher.internal:9200"] 3 | } 4 | stdout { 5 | codec => rubydebug 6 | } 7 | -------------------------------------------------------------------------------- /ch_docker/docker_multi_stage/vue-example/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | 4 | Vue.config.productionTip = false 5 | 6 | new Vue({ 7 | render: h => h(App), 8 | }).$mount('#app') 9 | -------------------------------------------------------------------------------- /ch_docker/docker_file_2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:8.11-alpine 2 | 3 | RUN mkdir -p /app 4 | 5 | COPY thisisapp/ /app 6 | 7 | WORKDIR /app 8 | 9 | RUN npm install 10 | 11 | CMD ["node","/app/bin/www"] 12 | 13 | EXPOSE 3000 14 | -------------------------------------------------------------------------------- /ch_docker-compose/3_dockerfile/web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | test 11 | 12 | 13 | -------------------------------------------------------------------------------- /ch_docker/docker_multi_stage/vue-example/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw* 22 | -------------------------------------------------------------------------------- /ch_docker/docker_multi_stage/vue-example/README.md: -------------------------------------------------------------------------------- 1 | # vue-example 2 | 3 | ## Project setup 4 | ``` 5 | npm install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | npm run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | npm run build 16 | ``` 17 | 18 | ### Lints and fixes files 19 | ``` 20 | npm run lint 21 | ``` 22 | -------------------------------------------------------------------------------- /ch_docker/docker_multi_stage/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:8.11-alpine as myBuilder 2 | 3 | RUN mkdir -p /app 4 | 5 | COPY vue-example/ /app 6 | 7 | WORKDIR /app 8 | 9 | RUN npm install -g @vue/cli-service-global 10 | 11 | RUN npm install 12 | 13 | RUN npm run build 14 | 15 | FROM nginx:alpine 16 | 17 | COPY --from=myBuilder /app/dist /usr/share/nginx/html 18 | 19 | EXPOSE 80 20 | 21 | 22 | -------------------------------------------------------------------------------- /ch_database/mysql_secure_installation.sql: -------------------------------------------------------------------------------- 1 | UPDATE mysql.user SET Password=PASSWORD('root!!root') WHERE User='root'; 2 | DELETE FROM mysql.user WHERE User=''; 3 | ## DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1'); 4 | CREATE USER 'root'@'%' IDENTIFIED BY 'root!!root'; 5 | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; 6 | DROP DATABASE IF EXISTS test; 7 | DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'; 8 | FLUSH PRIVILEGES; 9 | -------------------------------------------------------------------------------- /ch_kong/rancher-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | services: 3 | konga: 4 | scale: 1 5 | start_on_create: false 6 | kong-migration: 7 | scale: 1 8 | start_on_create: false 9 | kong-database: 10 | scale: 1 11 | start_on_create: true 12 | health_check: 13 | healthy_threshold: 2 14 | response_timeout: 2000 15 | port: 9042 16 | unhealthy_threshold: 3 17 | initializing_timeout: 60000 18 | interval: 2000 19 | strategy: none 20 | reinitializing_timeout: 60000 21 | kong: 22 | scale: 1 23 | start_on_create: false 24 | -------------------------------------------------------------------------------- /ch_docker/nginx/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Hello 9 | 10 | 11 | 12 |
19 | Hello world 20 |
21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /ch_docker/docker_file_1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Hello 9 | 10 | 11 | 12 |
19 | Hello world from docker file 20 |
21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /logstash/filter.txt: -------------------------------------------------------------------------------- 1 | grok { 2 | match => { "message" => "%{NOTSPACE:time} %{INT:timestamp} %{INT:status_code} %{WORD:method} %{NOTSPACE:host} %{NOTSPACE:client_port} %{IP:client_ip} %{NOTSPACE:Via} %{NOTSPACE:yguid} %{NOTSPACE:query} %{NOTSPACE:byte} %{NOTSPACE:bknd} %{NOTSPACE:bkndq} %{NOTSPACE:srvq} %{NOTSPACE:actconn} %{NOTSPACE:feconn} %{NOTSPACE:beconn} %{NOTSPACE:srvconn} %{NOTSPACE:retr} %{NOTSPACE:Tq} %{NOTSPACE:Tw} %{NOTSPACE:Tc} %{NOTSPACE:Tr} %{NOTSPACE:Tt} %{NOTSPACE:Authorization} %{GREEDYDATA:data}" } 3 | } 4 | date { 5 | match => [ "time", "dd/MMM/yyyy:HH:mm:ss.SSS" ] 6 | } 7 | 8 | if "_grokparsefailure" in [tags] { drop {} } 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ch_docker/docker_multi_stage/vue-example/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | vue-example 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /ch_docker/docker_multi_stage/vue-example/src/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 18 | 19 | 29 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | sudo true 2 | #curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 3 | #sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 4 | #sudo apt-get install apt-transport-https 5 | sudo apt-get update 6 | #apt-cache policy docker-ce 7 | curl https://releases.rancher.com/install-docker/19.03.sh | sh 8 | #sudo apt-get install -y docker-ce=18.03.1~ce-0~ubuntu 9 | sudo usermod -aG docker ${USER} 10 | sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 11 | sudo chmod +x /usr/local/bin/docker-compose 12 | newgrp docker 13 | 14 | -------------------------------------------------------------------------------- /ch_docker-compose/1_wordpress/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | 5 | wordpress: 6 | image: wordpress:latest 7 | ports: 8 | - 8080:80 9 | links: 10 | - mysql 11 | environment: 12 | WORDPRESS_DB_HOST: mysql 13 | WORDPRESS_DB_NAME: wordpress 14 | WORDPRESS_DB_USER: root 15 | WORDPRESS_DB_PASSWORD: thisispassword 16 | 17 | mysql: 18 | image: mysql:5.7 19 | ports: 20 | - 3306:3306 # change ip if required 21 | command: [ 22 | '--character-set-server=utf8mb4', 23 | '--collation-server=utf8mb4_unicode_ci' 24 | ] 25 | environment: 26 | MYSQL_DATABASE: wordpress 27 | MYSQL_ROOT_PASSWORD: thisispassword 28 | -------------------------------------------------------------------------------- /ssh/id_rsa.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC+cAwM5j95YRfZ24eA8cofdbLKPIUx7C2GWpmoIsumy3LWo6BpiB0mxDTaQm6w9e9peciGf38Uw8M3AXN71qUabkohPkp8M/ze0HOXfh1GYxWIk1mlEKdXlvn3rduGTRsaqqBT8jvBKWb8IMXZarLav7SVbxJESeHCsMTtGvwhTSVFxbyFE7y7bFtf9MQX6S/yVUXAr0PpgfBy9g1P7OeSBE5TJ5XIJ/vQGVTQcsh4+GU8btVLP4dcCZU2Nu2kYuLY8Hi1wjIEI0O6aFafb1jRsu0MA1Bur4A0r8YrozCJRLh7Ez8X+meoWFrqXfeHm551ovDls2Emxn9JVBWpIoLCQ7ZjGzLqhYghdp8n4+ypM5adQcMQSMQxKbMv/C+GKKj3muBe3n57t8pocdjomu69IAvmU628QkPtMRKFfFMd9kFyiPbiTFYf9blyK0s0PGhAN9+e5FFMFdhoW7JutAZbznNwsEsahsoCY5eM4DeGMHFC7pXhu+LJJAb9QmFx1PEp1SRwlI4hyI8hS1vFkIxj39L/kR9Gpv1ubMSujX23E702L3/kz+k0PiflXQ6cvd5trCtGFqMEOVrNyb7goNlhrzk4nT0Df/VyFkkWhsbLfWtmCooMU6g7y2w+kgJYEYDrjRdY+z+q3DGQrOzDPPqZJRhYaBYcosTOYE5XWvzPTQ== imac.monochrome@gmail.com 2 | -------------------------------------------------------------------------------- /ch_database/setup_other.sh: -------------------------------------------------------------------------------- 1 | sudo apt-key adv --keyserver keyserver.ubuntu.com --recv BC19DDBA 2 | sudo add-apt-repository 'deb http://releases.galeracluster.com/mysql-wsrep-5.6/ubuntu xenial main' 3 | sudo add-apt-repository 'deb http://releases.galeracluster.com/galera-3/ubuntu xenial main' 4 | sudo echo "Package: *" >> /etc/apt/preferences.d/galera.pref 5 | sudo echo "Pin: origin releases.galeracluster.com" >> /etc/apt/preferences.d/galera.pref 6 | sudo echo "Pin-Priority: 1001" >> /etc/apt/preferences.d/galera.pref 7 | sudo apt-get update 8 | sudo apt-get install galera-3 galera-arbitrator-3 mysql-wsrep-5.6 -y 9 | sudo apt-get install rsync -y 10 | mysql -furoot < "mysql_secure_installation.sql" 11 | sudo systemctl stop mysql 12 | sudo cp galera.cnf /etc/mysql/conf.d/galera.cnf 13 | sudo systemctl start mysql 14 | -------------------------------------------------------------------------------- /ch_docker-compose/2_wordpress/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | 5 | wordpress: 6 | image: wordpress:latest 7 | volumes: 8 | - ./wp_app:/var/www/html 9 | ports: 10 | - 8080:80 11 | links: 12 | - mysql 13 | environment: 14 | WORDPRESS_DB_HOST: mysql 15 | WORDPRESS_DB_NAME: wordpress 16 | WORDPRESS_DB_USER: root 17 | WORDPRESS_DB_PASSWORD: thisispassword 18 | 19 | mysql: 20 | image: mysql:5.7 21 | ports: 22 | - 3306:3306 # change ip if required 23 | command: [ 24 | '--character-set-server=utf8mb4', 25 | '--collation-server=utf8mb4_unicode_ci' 26 | ] 27 | volumes: 28 | - ./wp_data:/var/lib/mysql 29 | environment: 30 | MYSQL_DATABASE: wordpress 31 | MYSQL_ROOT_PASSWORD: thisispassword 32 | -------------------------------------------------------------------------------- /ch_database/setup_first.sh: -------------------------------------------------------------------------------- 1 | sudo apt-key adv --keyserver keyserver.ubuntu.com --recv BC19DDBA 2 | sudo add-apt-repository 'deb http://releases.galeracluster.com/mysql-wsrep-5.6/ubuntu xenial main' 3 | sudo add-apt-repository 'deb http://releases.galeracluster.com/galera-3/ubuntu xenial main' 4 | sudo echo "Package: *" >> /etc/apt/preferences.d/galera.pref 5 | sudo echo "Pin: origin releases.galeracluster.com" >> /etc/apt/preferences.d/galera.pref 6 | sudo echo "Pin-Priority: 1001" >> /etc/apt/preferences.d/galera.pref 7 | sudo apt-get update 8 | sudo apt-get install galera-3 galera-arbitrator-3 mysql-wsrep-5.6 -y 9 | sudo apt-get install rsync -y 10 | mysql -furoot < "mysql_secure_installation.sql" 11 | sudo systemctl stop mysql 12 | sudo cp galera.cnf /etc/mysql/conf.d/galera.cnf 13 | sudo /etc/init.d/mysql start --wsrep-new-cluster 14 | 15 | ## sudo 16 | 17 | 18 | -------------------------------------------------------------------------------- /bonus_docker-registry/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.3" 2 | 3 | services: 4 | gitlab: 5 | restart: always 6 | image: gitlab/gitlab-ce:latest 7 | hostname: 'gitlab' 8 | environment: 9 | GITLAB_OMNIBUS_CONFIG: | 10 | external_url "https://gitlab.local" 11 | nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.local.crt" 12 | nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.local.key" 13 | registry_external_url "https://registry.local" 14 | gitlab_rails['registry_host'] = "registry" 15 | registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/registry.local.crt" 16 | registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/registry.local.key" 17 | ports: 18 | - "8022:22" 19 | - "80:80" 20 | - "443:443" 21 | volumes: 22 | - gitlab_data:/var/opt/gitlab 23 | - gitlab_logs:/var/log/gitlab 24 | - gitlab_config:/etc/gitlab 25 | - ./ssl:/etc/gitlab/ssl 26 | volumes: 27 | gitlab_data: 28 | gitlab_logs: 29 | gitlab_config: 30 | -------------------------------------------------------------------------------- /ch_setup_rancher/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "2.1" 2 | services: 3 | rancher: 4 | image: rancher/server:stable 5 | restart: always 6 | ports: 7 | - "8080:8080" 8 | links: 9 | - mysql 10 | depends_on: 11 | mysql: 12 | condition: service_healthy 13 | environment: 14 | - CATTLE_DB_CATTLE_MYSQL_HOST=mysql ## Your public ip 15 | - CATTLE_DB_CATTLE_MYSQL_PORT=3306 16 | - CATTLE_DB_CATTLE_MYSQL_NAME=rancher 17 | - CATTLE_DB_CATTLE_USERNAME=rancher 18 | - CATTLE_DB_CATTLE_PASSWORD=your_password! 19 | mysql: 20 | image: mysql:5.7 21 | restart: always 22 | volumes: 23 | - ./var/lib/mysql:/var/lib/mysql 24 | ports: 25 | - "3306:3306" 26 | environment: 27 | - MYSQL_ROOT_PASSWORD=your_root_password! 28 | - MYSQL_DATABASE=rancher 29 | - MYSQL_USER=rancher 30 | - MYSQL_PASSWORD=your_password! 31 | healthcheck: 32 | test: "/usr/bin/mysql --user=rancher --password=your_password! --execute \"SHOW DATABASES;\"" 33 | interval: 5s 34 | timeout: 60s 35 | retries: 10 36 | -------------------------------------------------------------------------------- /ch_docker/docker_multi_stage/vue-example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-example", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "vue": "^2.5.21" 12 | }, 13 | "devDependencies": { 14 | "@vue/cli-plugin-babel": "^3.0.0", 15 | "@vue/cli-plugin-eslint": "^3.0.0", 16 | "@vue/cli-service": "^3.0.0", 17 | "babel-eslint": "^10.0.1", 18 | "eslint": "^5.8.0", 19 | "eslint-plugin-vue": "^5.0.0", 20 | "vue-template-compiler": "^2.5.21" 21 | }, 22 | "eslintConfig": { 23 | "root": true, 24 | "env": { 25 | "node": true 26 | }, 27 | "extends": [ 28 | "plugin:vue/essential", 29 | "eslint:recommended" 30 | ], 31 | "rules": {}, 32 | "parserOptions": { 33 | "parser": "babel-eslint" 34 | } 35 | }, 36 | "postcss": { 37 | "plugins": { 38 | "autoprefixer": {} 39 | } 40 | }, 41 | "browserslist": [ 42 | "> 1%", 43 | "last 2 versions", 44 | "not ie <= 8" 45 | ] 46 | } 47 | -------------------------------------------------------------------------------- /bonus_docker-registry/ssl/gitlab.local.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDQDCCAigCCQCwSoEVsgWq7DANBgkqhkiG9w0BAQsFADBiMQswCQYDVQQGEwJU 3 | SDEQMA4GA1UECAwHQmFuZ2tvazEOMAwGA1UEBwwFRHVzaXQxDTALBgNVBAoMBFRl 4 | c3QxCzAJBgNVBAsMAklUMRUwEwYDVQQDDAxnaXRsYWIubG9jYWwwHhcNMTkwMjAx 5 | MDgxNTA0WhcNMjkwMTI5MDgxNTA0WjBiMQswCQYDVQQGEwJUSDEQMA4GA1UECAwH 6 | QmFuZ2tvazEOMAwGA1UEBwwFRHVzaXQxDTALBgNVBAoMBFRlc3QxCzAJBgNVBAsM 7 | AklUMRUwEwYDVQQDDAxnaXRsYWIubG9jYWwwggEiMA0GCSqGSIb3DQEBAQUAA4IB 8 | DwAwggEKAoIBAQDL2IuBZHyh80s9bufmq9+vwES71THGGO6D6bRt1YKf4B5WPlG9 9 | VisPT0wtWXuihvS08ZX+/N30/M0beUX9ZV8BfzzGeii6gHOugels47ga61no8s+e 10 | WbpUDIaDQfF/OR4hdNxkvcjhGEDX9hlxmED2gp8zgfxThh7RcZy476+HFMmgEnAJ 11 | 9m4XcYMrhaYQfuvCOVMREiRRHvwrJLYL+vivyitLLmtl3NurtyQQe4YqAaoNp4LL 12 | yIL6TzegFWIHOhqJ1e1SVhrMM/K2+UbGNEYcn/N/deCEpNcl/zZf5gamalGkPJyu 13 | LLxuwDjhjMVo6Cc93EDKcVNrWguKUTKp5JH5AgMBAAEwDQYJKoZIhvcNAQELBQAD 14 | ggEBAJ70RX5JCLifHihHqAcaZ4SyvDIu2Iv1vlNTpRKfxDBtWNsPhWBDjDIqdNad 15 | CQagc0S+yP/7mXBvFyw/kZ3c+IxK/DPQJV7I/4wkYee/NtbxHy0keCPdKcuakC3E 16 | RynF6TsIAn28PB5ObCvwrtqQMbItu03YnNszfGLnoYveCz/w0iJpdRTyPhXsW166 17 | OJbEY/UeRxpnX3oHg3rSvs+uqag69gttrv/kEbVPn5TGdwni92XBADgHZVyy6sjr 18 | NXNM4fT2euiJcMzS4vV6z0phQxK3fPEjti2tL9dhD+uZSYmTiK75EIEqrh4vec+9 19 | g9ZnV1z87x9r0hXXVl/bErtLd8o= 20 | -----END CERTIFICATE----- 21 | -------------------------------------------------------------------------------- /bonus_docker-registry/ssl/registry.local.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDRDCCAiwCCQC9Sn7M0SPo6jANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQGEwJU 3 | SDEQMA4GA1UECAwHQmFuZ2tvazEOMAwGA1UEBwwFRHVzaXQxDTALBgNVBAoMBFRl 4 | c3QxCzAJBgNVBAsMAklUMRcwFQYDVQQDDA5yZWdpc3RyeS5sb2NhbDAeFw0xOTAy 5 | MDEwODE0MzBaFw0yOTAxMjkwODE0MzBaMGQxCzAJBgNVBAYTAlRIMRAwDgYDVQQI 6 | DAdCYW5na29rMQ4wDAYDVQQHDAVEdXNpdDENMAsGA1UECgwEVGVzdDELMAkGA1UE 7 | CwwCSVQxFzAVBgNVBAMMDnJlZ2lzdHJ5LmxvY2FsMIIBIjANBgkqhkiG9w0BAQEF 8 | AAOCAQ8AMIIBCgKCAQEAyInsgumvEA9cEKuyWYB8YzyCFbWYOgC2tHmkA53sbLmM 9 | jiiUvcYXOeEToZB8wRzdaJl0O8ER+gVLbL1PWv+XZswnkdl+XaX0iu/aKP99lGax 10 | yYX5R37mlmgzjSdNG/kWJKaFGOCMH+VCboKGlPU7UZjqAMt0wTlC1mGZMR8lxxZ0 11 | Gw8tb8X7Pzw1bZTGCX6peC5CqEYfxTEPDnhsdjN9m4Jdar4NXtRdR3PoylTn8IAj 12 | RCTupX5Q3qTWNDGJVdKYzdXituF/9jCsp5J7F7UpFiyDRxGk+WAB5Bo7xO1j1m5L 13 | pabS5pjn0LHoBiZF6TDBw6GGg1IK91bS5swCYMUPywIDAQABMA0GCSqGSIb3DQEB 14 | CwUAA4IBAQBkL5rRbJpiE9fdks3iv5H+Fr5PHh+oH3g8H+7O0SbgDEgQYFKtXqPO 15 | QoEtX3WMw0xhhJ1/ATPLrib8T9H3dBH1X5LQk7H5Gk2a1oL3ATDchA5qu4OYtRKX 16 | NQvdYgyidP+b3pg63a3/Bj4hk4zS5EqfwzUyM2ETJRDuCnPwNeVeX/4zoMag6HUd 17 | 5rwTphU+pktwb+7k1IPqHdSip15HuatgDpWPxVF5xVlIQ64xGThg2AXidUDhzuxx 18 | CylsJUN92kehXV5/Sy9pozfkV4/XWrg3eGILu6+h+q09PosWDlsI/8uKboPsiOG1 19 | o8CZy1l9DCSbBXpZndKt06XIq0eZftVB 20 | -----END CERTIFICATE----- 21 | -------------------------------------------------------------------------------- /logstash/haproxy.cfg: -------------------------------------------------------------------------------- 1 | global 2 | maxconn 2048 3 | 4 | defaults 5 | log 127.0.0.1:8514 local0 # Log to Rancher 6 | log 10.42.141.227:5000 local0 # Change ip here 7 | log global 8 | option redispatch 9 | 10 | frontend 80 11 | option httplog 12 | option http-buffer-request 13 | declare capture request len 4000 14 | capture request header Host len 100 15 | capture request header Via len 100 16 | capture request header yguid len 52 17 | capture request header X-Forwarded-For len 50 18 | capture request header X-Access-Token len 300 19 | http-request capture req.body id 0 20 | #http-request capture req.payload(0,1000) len 1000 21 | http-request add-header X_FORWARDED_FOR %[req.hdr(CF-Connecting-IP)] 22 | #log-format {"%t|Z=%Ts|code=%ST|m=%HM|H=%[capture.req.hdr(1)]|AB=%cp|A=%[capture.req.hdr(4)]|v=%[capture.req.hdr(2)]|yguid=%[capture.req.hdr(3)]|Q=%HU|o=%B|bknd=%b/%s bkndq=%bq|srvq=%sq|actconn=%ac|feconn=%fc|beconn=%bc|srvconn=%sc|retr=%rc|Tq=%Tq|Tw=%Tw|Tc=%Tc|Tr=%Tr|Tt=%Tt|data=%[capture.req.hdr(0)]"} 23 | ## For cloudflare 24 | #log-format "%t %Ts %ST %HM %[capture.req.hdr(1)] %cp %[capture.req.hdr(4)] %[capture.req.hdr(2)] %[capture.req.hdr(3)] %HU %B %b/%s %bq %sq %ac %fc %bc %sc %rc %Tq %Tw %Tc %Tr %Tt %[capture.req.hdr(5)] %[capture.req.hdr(0)]" 25 | ## For non-cloudflare 26 | log-format "%t %Ts %ST %HM %[capture.req.hdr(1)] %cp %Ci %[capture.req.hdr(2)] %[capture.req.hdr(3)] %HU %B %b/%s %bq %sq %ac %fc %bc %sc %rc %Tq %Tw %Tc %Tr %Tt %[capture.req.hdr(5)] %[capture.req.hdr(0)]" 27 | 28 | 29 | -------------------------------------------------------------------------------- /ch_kong/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | services: 3 | mysql: 4 | image: mysql:5.7 5 | restart: always 6 | environment: 7 | MYSQL_ROOT_PASSWORD: thisispassword 8 | MYSQL_ROOT_HOST: "%" 9 | konga: 10 | image: pantsel/konga:latest 11 | environment: 12 | DB_ADAPTER: mysql 13 | DB_DATABASE: konga_database2 14 | DB_HOST: mysql 15 | DB_PASSWORD: thisispassword 16 | DB_USER: root 17 | stdin_open: true 18 | tty: true 19 | links: 20 | - mysql 21 | ports: 22 | - 1337:1337/tcp 23 | labels: 24 | io.rancher.container.pull_image: always 25 | kong-migration: 26 | image: kong:latest 27 | environment: 28 | KONG_ADMIN_LISTEN: 0.0.0.0:8001 29 | KONG_CASSANDRA_CONTACT_POINTS: kong-database 30 | KONG_DATABASE: cassandra 31 | KONG_NGINX_HTTP_RESOLVER: 8.8.8.8 32 | stdin_open: true 33 | tty: true 34 | links: 35 | - kong-database:kong-database 36 | command: 37 | - kong 38 | - migrations 39 | - bootstrap 40 | - --vv 41 | labels: 42 | io.rancher.container.pull_image: always 43 | io.rancher.container.start_once: 'true' 44 | kong-database: 45 | image: cassandra:3.0 46 | kong: 47 | image: kong:latest 48 | environment: 49 | KONG_ADMIN_LISTEN: 0.0.0.0:8001 50 | KONG_CASSANDRA_CONTACT_POINTS: kong-database 51 | KONG_DATABASE: cassandra 52 | KONG_NGINX_HTTP_RESOLVER: 8.8.8.8 53 | stdin_open: true 54 | tty: true 55 | links: 56 | - kong-database:kong-database 57 | labels: 58 | io.rancher.container.pull_image: always 59 | io.rancher.sidekicks: kong-migration 60 | -------------------------------------------------------------------------------- /ch_database/galera.cnf: -------------------------------------------------------------------------------- 1 | [mysqld] 2 | default-storage-engine=innodb 3 | innodb_autoinc_lock_mode=2 4 | bind-address=0.0.0.0 5 | 6 | max_connections=1024 7 | key_buffer_size= 20M 8 | table_open_cache = 256 9 | max_allowed_packet = 32M 10 | sort_buffer_size = 20M 11 | read_buffer_size = 20M 12 | thread_concurrency = 4 13 | 14 | ## Binlog 15 | log_bin = /var/log/mysql/binlog 16 | log_bin_index = /var/log/mysql/binlog.index 17 | log_warnings = 2 18 | binlog_format = ROW 19 | expire_logs_days = 10 20 | max_binlog_size = 100M 21 | innodb_flush_log_at_trx_commit = 2 22 | sync_binlog=0 23 | 24 | # INNODB # 25 | innodb-flush-method = O_DIRECT 26 | innodb-log-files-in-group = 2 27 | innodb-log-file-size = 128M 28 | innodb-file-per-table = 1 29 | innodb-buffer-pool-size = 2G 30 | 31 | 32 | # Galera Provider Configuration 33 | wsrep_on=ON 34 | wsrep_provider=/usr/lib/galera/libgalera_smm.so 35 | 36 | # Galera Cluster Configuration 37 | wsrep_cluster_name="production" # Change_here 38 | wsrep_cluster_address="gcomm://10.130.104.42,10.130.104.44,10.130.104.45" # Change_here 39 | 40 | # Galera Synchronization Configuration 41 | wsrep_sst_method=rsync 42 | 43 | # Galera Node Configuration 44 | wsrep_node_address="10.130.104.42" # Change_here 45 | wsrep_node_name="Database01" # Change_here 46 | 47 | wsrep_slave_threads=4 48 | 49 | # change auto_increment_increment and auto_increment_offset automatically 50 | wsrep_auto_increment_control=1 51 | 52 | # enable "strictly synchronous" semantics for read operations 53 | wsrep_causal_reads=0 54 | 55 | # retry autoinc insert, which failed for duplicate key error 56 | wsrep_drupal_282555_workaround=1 57 | 58 | wsrep_retry_autocommit=3 59 | -------------------------------------------------------------------------------- /bonus_docker-registry/ssl/gitlab.local.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDL2IuBZHyh80s9 3 | bufmq9+vwES71THGGO6D6bRt1YKf4B5WPlG9VisPT0wtWXuihvS08ZX+/N30/M0b 4 | eUX9ZV8BfzzGeii6gHOugels47ga61no8s+eWbpUDIaDQfF/OR4hdNxkvcjhGEDX 5 | 9hlxmED2gp8zgfxThh7RcZy476+HFMmgEnAJ9m4XcYMrhaYQfuvCOVMREiRRHvwr 6 | JLYL+vivyitLLmtl3NurtyQQe4YqAaoNp4LLyIL6TzegFWIHOhqJ1e1SVhrMM/K2 7 | +UbGNEYcn/N/deCEpNcl/zZf5gamalGkPJyuLLxuwDjhjMVo6Cc93EDKcVNrWguK 8 | UTKp5JH5AgMBAAECggEBAKvnvh4sg/5/kmAIe4DISSeJ2W0d6Y/JzrtoB0To3fO9 9 | qVfJzl0BoeaTVQaZg+4YKZ2+bmRPE09bMg2NRDzhlDFLABHRSy+cy/HKlPPDRqtM 10 | 9tHAkt5ThRMETRu8LNDBdmt4hbRfaFyLe4OkguiNIZvBpEhnwkcdwDeYvDYpy7j5 11 | iTp6OrYs9RGTX2603SliALSp/33xmMuhXszBbQqMWTUT8XJbfAWI82KbbU3bpAM6 12 | ivkdoqlCVoOcO0HAM199Mp3riUyacVnu/24SMF4iY66K9k7NjfTdBWeKmZbs+Zta 13 | 5E6bY0mv6WQv7xGWevQKgec622RyEWLtNnt5G4zWQAECgYEA7lxpG0f6foyCKHMw 14 | HndjmlvxKKircHHrysxrK3TRZkD9Mk7R70KnEjg1GkP2vb4eDwRVxxPYP0PHrfIg 15 | l8Z6UOEISYh9fsRoBy+aBerJbU30Zm5gT7NXOXjl4fAmtvwkYlr6D211MOuqw54u 16 | om6MO3MvOc1+GtLg38KjrGW99gECgYEA2u5E1Ir1Me9aqc5YCBQixmjOxScySwRN 17 | I6GJC6fsd9azJstsvcuyxZl1ZxS3sFvjPk5LuzRw/1YF/vhw3b7nKxVK7dgFa1/b 18 | qZVCsMhboIikFJJV5Bua1GesxQYD5iWvamWqJqiphgu9TkX903tJt7hipOeUpWyD 19 | WtZyS5kOS/kCgYAzG5VdyB0prS7rRWd34Nl2a2hV83Ru874/CX2hH7cWWbDwbH4O 20 | 8xenjG22aAQrwuvnBGLwAI1JY1sZLOVYJbJsTRPd0Go4GBzGDarUwfbWfPR+UgRM 21 | koONSyLfQwLKEV4ryJ39WNbb2mwO7YfKRDHFPXlOx4TWc4jL8YvulxIYAQKBgEd3 22 | 1LxViGl+q2gXViF9AUUn3af6fa6DfvMMvoIxlT4htmYJrjvfDUL4L50w5C4MMQib 23 | 4pkAK4sO9/IeBCo/MZOc5dLy3AILTtfzQ8wV++NR985HXwaSBF8mYP4IUqmEz9i5 24 | y2vHT1/U4T12F8A71PrGlF0kxB+kZtT2gGUxV7txAoGBAL7WMA+oJm1jrKL81ojs 25 | STcROXAiWOLXaNXPjvHwgx9/kw2ku2L5CM6PxCPfOvMmkSFSVqIel+Wr/rLuLz0R 26 | ZLNtyNErhAI2O/VDwFjhEOacLiXCGPDQIlHBGQZF6hoykgV1KRrSxui99O3daPNF 27 | FlJqIk4qblU321K94fEmk3i2 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /bonus_docker-registry/ssl/registry.local.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDIieyC6a8QD1wQ 3 | q7JZgHxjPIIVtZg6ALa0eaQDnexsuYyOKJS9xhc54ROhkHzBHN1omXQ7wRH6BUts 4 | vU9a/5dmzCeR2X5dpfSK79oo/32UZrHJhflHfuaWaDONJ00b+RYkpoUY4Iwf5UJu 5 | goaU9TtRmOoAy3TBOULWYZkxHyXHFnQbDy1vxfs/PDVtlMYJfql4LkKoRh/FMQ8O 6 | eGx2M32bgl1qvg1e1F1Hc+jKVOfwgCNEJO6lflDepNY0MYlV0pjN1eK24X/2MKyn 7 | knsXtSkWLINHEaT5YAHkGjvE7WPWbkulptLmmOfQsegGJkXpMMHDoYaDUgr3VtLm 8 | zAJgxQ/LAgMBAAECggEBAKOXD98DbpH1Va8rwUQN8mqps5yuFM5MQr8a89cXfwR6 9 | oNRe+meNLulCWNdVnM+UEnH/rLgKGfYRV6QPEqszEXkEVcs+1zzh4olsfFUxhmoH 10 | FEVHC0FtngFYY6VkSBznp06ioLTYiLaEORsZU1w0aP15dnrLfiUZ5xInb+aIeDLd 11 | BcGNyZI6A8Oz+oTIrScILRfRwE/dHwjj85QzVz5ff9EhVjDC6W5+0jfMN6eyOJeS 12 | Ai98AkEsr9QAyNVgmxyPnRXSRBUMBAsX5FyBbvKrrBz7ur7GoBXnX19Na/XNxtuZ 13 | vg5cWH3L2CX7Jp5igmtB/LN4SCZg0e/RnVIOD+K6AYECgYEA8iReRz4aIu/y6xov 14 | GLUY8y5F4yaGsEovhaycYsBf5CL1tnDK2znKdDF1kKKre8cciVk6Wl2d8QczAUEg 15 | uKqyPn8M5099ATbvBUyoRQtTC2sOqIKUC1902Yf1H/TqdJs0gi9Vjgx6nvLFLGrF 16 | 2fN6d1/3OD6oKtq9Akb6M9yskKECgYEA1AQGNG14rPdN+O2WzBoFD7ozzNHBgmUR 17 | 9+YfIuYcFgtM3SIcNnntVtWMa5PJGfu7rl3i0rxRQxQwHuk7nxo5dw9v4Qq+xXKw 18 | gkf0IDZpzWkwpU6QUZcMUPtd2vOyPIUW5mS7e3MAk86TilOSwQhRatakCOFk99mL 19 | qhakn4mczOsCgYAhBRaaLnzP8Nq2dr6fZuq9Fr1PCYzqc2NhnjVBPiyVZrMNKvpu 20 | xMW37Jq0m4o4+eEJVdKgSg3ktW+eJyx4IkbmQNsYm/1W8g/MMDTuHWo4r2OzVQMt 21 | PdooY+LodbSXLCcP7baEBW2fSUncEb9jRlGX/80trVWval7F9bne4qPhoQKBgEpy 22 | w08Dpd1u1eV0YIB5Ho/gPbJNcZr9LKsVFpfln7Up8KqyAKAsfmgAgtd/xJ0oJUZc 23 | V3rSf+KDI0andbUvu0AQnqOyZzzkQhDtfU8WbF6h8mAJz2mnFb8WFWX+LvdLcLgk 24 | ZSU7Q9ejMXHgWOcJqbVPe7hWlWLm9EEcxF/1LadTAoGAeP6sQNj8RfvMFkWeyzmp 25 | aUe6oH4IUCRzq6Nt5I+5RBrkJSm9Oh/ugzBG9EJcP1ZE+wDJqbSr2PaH4rWRLChD 26 | TecwO6qCnKuVxXurey5UwLtf5ddEKWMNmC3vZ3kaSoZMMXXxN//oyP/atYoO3JjT 27 | CVXrwHhNX7/XvncCIskksDM= 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /logstash/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | services: 3 | logstash-collector-config: 4 | image: rancher/logstash-config:v0.2.0 5 | external_links: 6 | - es-cluster/es-client:elasticsearch 7 | links: 8 | - redis:redis 9 | labels: 10 | io.rancher.container.hostname_override: container_name 11 | logstash-collector: 12 | image: docker.elastic.co/logstash/logstash:6.2.3 13 | stdin_open: true 14 | external_links: 15 | - es-cluster/es-client:elasticsearch 16 | tty: true 17 | links: 18 | - redis:redis 19 | volumes_from: 20 | - logstash-collector-config 21 | command: 22 | - logstash 23 | - -f 24 | - /etc/logstash 25 | labels: 26 | io.rancher.scheduler.affinity:host_label: message_broker=true 27 | io.rancher.sidekicks: logstash-collector-config 28 | io.rancher.container.hostname_override: container_name 29 | logstash-indexer: 30 | image: docker.elastic.co/logstash/logstash:6.2.3 31 | stdin_open: true 32 | external_links: 33 | - es-cluster/es-client:elasticsearch 34 | tty: true 35 | links: 36 | - redis:redis 37 | volumes_from: 38 | - logstash-indexer-config 39 | command: 40 | - logstash 41 | - -f 42 | - /etc/logstash 43 | labels: 44 | io.rancher.scheduler.affinity:host_label: name=After5-LB2 45 | io.rancher.sidekicks: logstash-indexer-config 46 | io.rancher.container.hostname_override: container_name 47 | redis: 48 | image: redis:3.2.6-alpine 49 | stdin_open: true 50 | tty: true 51 | labels: 52 | io.rancher.container.hostname_override: container_name 53 | logstash-indexer-config: 54 | image: rancher/logstash-config:v0.2.0 55 | external_links: 56 | - es-cluster/es-client:elasticsearch 57 | links: 58 | - redis:redis 59 | labels: 60 | io.rancher.container.hostname_override: container_name 61 | -------------------------------------------------------------------------------- /logstash/rancher-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | services: 3 | logstash-collector-config: 4 | metadata: 5 | logstash: &id001 6 | inputs: |- 7 | udp { 8 | port => 5000 9 | codec => "plain" 10 | } 11 | outputs: |- 12 | redis { 13 | host => "redis.rancher.internal" 14 | port => "6379" 15 | data_type => "list" 16 | key => "logstash" 17 | } 18 | retain_ip: true 19 | scale: 1 20 | start_on_create: true 21 | logstash-collector: 22 | metadata: 23 | logstash: *id001 24 | retain_ip: true 25 | scale: 1 26 | start_on_create: true 27 | logstash-indexer: 28 | metadata: 29 | logstash: &id002 30 | filters: |- 31 | grok { 32 | match => { "message" => "%{NOTSPACE:time} %{INT:timestamp} %{INT:status_code} %{WORD:method} %{NOTSPACE:host} %{NOTSPACE:client_port} %{IP:client_ip} %{NOTSPACE:Via} %{NOTSPACE:yguid} %{NOTSPACE:query} %{NOTSPACE:byte} %{NOTSPACE:bknd} %{NOTSPACE:bkndq} %{NOTSPACE:srvq} %{NOTSPACE:actconn} %{NOTSPACE:feconn} %{NOTSPACE:beconn} %{NOTSPACE:srvconn} %{NOTSPACE:retr} %{NOTSPACE:Tq} %{NOTSPACE:Tw} %{NOTSPACE:Tc} %{NOTSPACE:Tr} %{NOTSPACE:Tt} %{NOTSPACE:Authorization} %{GREEDYDATA:data}" } 33 | } 34 | date { 35 | match => [ "time", "dd/MMM/yyyy:HH:mm:ss.SSS" ] 36 | } 37 | inputs: |- 38 | redis { 39 | host => "redis.rancher.internal" 40 | port => "6379" 41 | data_type => "list" 42 | key => "logstash" 43 | } 44 | outputs: |- 45 | elasticsearch { 46 | hosts => ["elasticsearch.rancher.internal:9200"] 47 | } 48 | stdout { 49 | codec => rubydebug 50 | } 51 | scale: 1 52 | start_on_create: true 53 | redis: 54 | scale: 1 55 | start_on_create: true 56 | logstash-indexer-config: 57 | metadata: 58 | logstash: *id002 59 | scale: 1 60 | start_on_create: true 61 | -------------------------------------------------------------------------------- /ch_docker/docker_multi_stage/vue-example/src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 41 | 42 | 43 | 59 | -------------------------------------------------------------------------------- /ssh/key.ppk: -------------------------------------------------------------------------------- 1 | PuTTY-User-Key-File-2: ssh-rsa 2 | Encryption: none 3 | Comment: imported-openssh-key 4 | Public-Lines: 12 5 | AAAAB3NzaC1yc2EAAAADAQABAAACAQC+cAwM5j95YRfZ24eA8cofdbLKPIUx7C2G 6 | WpmoIsumy3LWo6BpiB0mxDTaQm6w9e9peciGf38Uw8M3AXN71qUabkohPkp8M/ze 7 | 0HOXfh1GYxWIk1mlEKdXlvn3rduGTRsaqqBT8jvBKWb8IMXZarLav7SVbxJESeHC 8 | sMTtGvwhTSVFxbyFE7y7bFtf9MQX6S/yVUXAr0PpgfBy9g1P7OeSBE5TJ5XIJ/vQ 9 | GVTQcsh4+GU8btVLP4dcCZU2Nu2kYuLY8Hi1wjIEI0O6aFafb1jRsu0MA1Bur4A0 10 | r8YrozCJRLh7Ez8X+meoWFrqXfeHm551ovDls2Emxn9JVBWpIoLCQ7ZjGzLqhYgh 11 | dp8n4+ypM5adQcMQSMQxKbMv/C+GKKj3muBe3n57t8pocdjomu69IAvmU628QkPt 12 | MRKFfFMd9kFyiPbiTFYf9blyK0s0PGhAN9+e5FFMFdhoW7JutAZbznNwsEsahsoC 13 | Y5eM4DeGMHFC7pXhu+LJJAb9QmFx1PEp1SRwlI4hyI8hS1vFkIxj39L/kR9Gpv1u 14 | bMSujX23E702L3/kz+k0PiflXQ6cvd5trCtGFqMEOVrNyb7goNlhrzk4nT0Df/Vy 15 | FkkWhsbLfWtmCooMU6g7y2w+kgJYEYDrjRdY+z+q3DGQrOzDPPqZJRhYaBYcosTO 16 | YE5XWvzPTQ== 17 | Private-Lines: 28 18 | AAACABOvFS/IJMtxA7wa+tiTJWc3DTHmK4ZLeTEn8DX20sH8yXPyGcSOsySspyHg 19 | N/zGjuaCFf4A86u7yFPJLJyiRRKET9k7zQslfH+zYB9Kg9AgsbsaL+vl2sYs7s1x 20 | BP3Ovnx1InlK0m5WzzREVu7wHmiJ5CqF/odcc59iEhjH70Op665Yj/HZZmqg+pji 21 | fdpS2gfcVIdkFkruiWH4mMuoGw92rnnd35d+uoJ5+9BH7PzEAALNGfLbMCyNOQUP 22 | jGSva+8se+2dkvnmgzujSUDVi4KxUdsqBIhMT54ihQNBrOSjW8Ys6RqbYVd/OnZ7 23 | G/jCVxCltOypK+OMJN/5dvuye31XSDODKOH/D7KIHdI18OOKZjyJrFpCvtX0rylD 24 | x6a+WxTeINhCw5T4nor+r+J/apFluCLIHcbps5YTMs5CsWrM33aXq7pmZj671neE 25 | Mktts2r3khpwvVsKuAzvrpcwSJxYouuZy0r6FhtIKkObMLwChFKeSi28eaiPLEUm 26 | 2dquuRDjFvg/LIrjOgySNCnq9okjUEUR1wJ6pQdwk+/LCBQvs9wx5RC98+lbhRAa 27 | 5LaU4nwSU7HBAJ+qS9MyujbGbrGwz7GctYcVMwHhffgrKVDGD8CGhoXWPdb6Kj5x 28 | 9ROaEiPlurUS3SXpvADHE6/t1ycWPvydIGoUstANsFIsW6QBAAABAQDf3kykEtRA 29 | S06tAQs5I0y6LejVjoCetvV0bQ0dRzJSzEe59KM+NpwSJvFT2a5sUhBShBdK41PS 30 | xnf8b7+eKo0Q1trC/hMuXAjbCN1W7MK2N+Qi/g0OCOmVQDchIWpVUlyXztYXzkgg 31 | xSHkYcUON1kojSYrm0n1gxZJnlvoCtxspM6/Ruf5mQafXE97Y0i3MMF+reSEGhfL 32 | oaGmEp4aPWeLDa6EjL+shUiL70dokmCExF7B+T8Ji97JmmBz+i8SmiBQE/JG/7Dg 33 | EP2xoaGYQxnm0DdZT/NLdslQNUjYKpD3x8pAL12K0weN29tfEcKHhdZjlzY3nSQE 34 | lshvWBEmlUTNAAABAQDZxWOCOJuZ5vnyV/VfdtgUXODedA2yBaX/ADlIicDTczPN 35 | Daev21il4ja/3N4l9Iwj3TLevs4J9ozot5QnLxXV/MpyXWhRuhqnTfhFmXzv+Sil 36 | zyCBj9GuqK609BLZTncKh7jgorxGr8tSyMxgPDgYIP1LwRK5UiFTAg0+QkT3FZKi 37 | E9POGO4fQwCDYI+gbT3It1gxhh2jEVjsDqO5n7njO4OFHFBVU3g6BzMoYUWcTVfS 38 | ZUUUGvnKUcri1CGe+JSbe/PcR+mJXX98KofcPijhyqBb2p9jz+Yfj9KSe26Mnoap 39 | jFhY1YSV/aJxcAO//zGotduqgBseCFq5/7oy+bSBAAABAC49xflPePJkfQKacjIp 40 | CM229fcj1Uv2E7Itr+GINIBkeXVb0pvw9n2ysv380JiwXP1dGrUfLleTsTEd5KWj 41 | wU6HGKtfHxS6WZSRqUTVj/RZ7mWfrmhL9VqCjw+u8qhKtAHE1eJLbYts5nmLY+eN 42 | l9Io4J/irQxcfBMpOCPR8JiM7l5AC4mCPrRFznUDhcFYFuA/WgKxIzXcQXLhYg/w 43 | OiPb+nIfTrWqkZSPZOymHX1phQ7Ivqt0fZJNmWR2ZFH3AysT77vsNhEv8Nvhl+TJ 44 | Qm9RxOo1YCRy9F6Maf5yzk+T49tjgWpm1wMIl+yGcTSQhiilfAJKuwlB9lZsZT9Q 45 | GuA= 46 | Private-MAC: 8412727add9c1d3b2cd9434f69b2c38dbf3b1270 47 | -------------------------------------------------------------------------------- /ssh/id_rsa: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | 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 51 | -----END RSA PRIVATE KEY----- 52 | --------------------------------------------------------------------------------