diff --git a/content/slides/cri/devops.html b/content/slides/cri/devops.html new file mode 100644 index 0000000000000000000000000000000000000000..044631ee0a2fe9021b368dd287ad36b8f978cabc --- /dev/null +++ b/content/slides/cri/devops.html @@ -0,0 +1,131 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> + + <title>DevOps</title> + + <link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css"> + <link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css"> + + <!-- Theme used for syntax highlighting of code --> + <link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css"> + <link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css"> + <link rel="stylesheet" href="../main.css"> + + <!-- Printing and PDF exports --> + <script> + var link = document.createElement( 'link' ); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css'; + document.getElementsByTagName( 'head' )[0].appendChild( link ); + </script> + </head> + <body> + <div class="reveal"> + <div class="slides"> + <section data-markdown="md/devops.md" + data-separator="^\n\n\n" + data-separator-vertical="^\n\n" + data-separator-notes="^Note:" + data-charset="utf-8"> + </section> + </div> + <div class="slides"> + <section data-markdown="md/vagrant.md" + data-separator="^\n\n\n" + data-separator-vertical="^\n\n" + data-separator-notes="^Note:" + data-charset="utf-8"> + </section> + </div> + <div class="slides"> + <section data-markdown="md/ansible.md" + data-separator="^\n\n\n" + data-separator-vertical="^\n\n" + data-separator-notes="^Note:" + data-charset="utf-8"> + </section> + </div> + <div class="slides"> + <section data-markdown="md/vault.md" + data-separator="^\n\n\n" + data-separator-vertical="^\n\n" + data-separator-notes="^Note:" + data-charset="utf-8"> + </section> + </div> + <div class="slides"> + <section data-markdown="md/pve.md" + data-separator="^\n\n\n" + data-separator-vertical="^\n\n" + data-separator-notes="^Note:" + data-charset="utf-8"> + </section> + </div> + <div class="slides"> + <section data-markdown="md/stack.md" + data-separator="^\n\n\n" + data-separator-vertical="^\n\n" + data-separator-notes="^Note:" + data-charset="utf-8"> + </section> + </div> + <div class="slides"> + <section data-markdown="md/terraform.md" + data-separator="^\n\n\n" + data-separator-vertical="^\n\n" + data-separator-notes="^Note:" + data-charset="utf-8"> + </section> + </div> + <div class="slides"> + <section data-markdown="md/gitlab.md" + data-separator="^\n\n\n" + data-separator-vertical="^\n\n" + data-separator-notes="^Note:" + data-charset="utf-8"> + </section> + </div> + <div class="slides"> + <section data-markdown="md/my.md" + data-separator="^\n\n\n" + data-separator-vertical="^\n\n" + data-separator-notes="^Note:" + data-charset="utf-8"> + </section> + </div> + <div class="slides"> + <section data-markdown="md/openstack.md" + data-separator="^\n\n\n" + data-separator-vertical="^\n\n" + data-separator-notes="^Note:" + data-charset="utf-8"> + </section> + </div> + </div> + + <script src="../../node_modules/reveal.js/lib/js/head.min.js"></script> + <script src="../../node_modules/reveal.js/js/reveal.js"></script> + + <script> + // More info about config & dependencies: + // - https://github.com/hakimel/reveal.js#configuration + // - https://github.com/hakimel/reveal.js#dependencies + Reveal.initialize({ + controls: true, + progress: true, + history: true, + center: false, + dependencies: [ + { src: '../../node_modules/reveal.js/plugin/markdown/marked.js' }, + { src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' }, + { src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true }, + { src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } } + ] + }); + </script> + </body> +</html> diff --git a/content/slides/cri/gitlab.html b/content/slides/cri/gitlab.html new file mode 100644 index 0000000000000000000000000000000000000000..c0a9397d0a615cfff1112366f4627ddb8396f8d4 --- /dev/null +++ b/content/slides/cri/gitlab.html @@ -0,0 +1,59 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> + + <title>gitlab</title> + + <link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css"> + <link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css"> + + <!-- Theme used for syntax highlighting of code --> + <link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css"> + <link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css"> + <link rel="stylesheet" href="../main.css"> + + <!-- Printing and PDF exports --> + <script> + var link = document.createElement( 'link' ); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css'; + document.getElementsByTagName( 'head' )[0].appendChild( link ); + </script> + </head> + <body> + <div class="reveal"> + <div class="slides"> + <section data-markdown="md/gitlab.md" + data-separator="^\n\n\n" + data-separator-vertical="^\n\n" + data-separator-notes="^Note:" + data-charset="utf-8"> + </section> + </div> + </div> + + <script src="../../node_modules/reveal.js/lib/js/head.min.js"></script> + <script src="../../node_modules/reveal.js/js/reveal.js"></script> + + <script> + // More info about config & dependencies: + // - https://github.com/hakimel/reveal.js#configuration + // - https://github.com/hakimel/reveal.js#dependencies + Reveal.initialize({ + controls: true, + progress: true, + history: true, + center: false, + dependencies: [ + { src: '../../node_modules/reveal.js/plugin/markdown/marked.js' }, + { src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' }, + { src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true }, + { src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } } + ] + }); + </script> + </body> +</html> diff --git a/content/slides/cri/md/devops.md b/content/slides/cri/md/devops.md new file mode 100644 index 0000000000000000000000000000000000000000..ba5ded712d1c91b2ca071a187c3e4f9d2135a87a --- /dev/null +++ b/content/slides/cri/md/devops.md @@ -0,0 +1,7 @@ +# DevOps + +https://en.wikipedia.org/wiki/DevOps + +https://12factor.net/ + +https://twitter.com/waxzce diff --git a/content/slides/cri/md/gitlab.md b/content/slides/cri/md/gitlab.md index a9e2ff4613e482badb5f57c22ea3138517604c36..a8985798936196fbf0fb410f049e3bd89580fda1 100644 --- a/content/slides/cri/md/gitlab.md +++ b/content/slides/cri/md/gitlab.md @@ -1,3 +1,5 @@ +# gitlab + ## CI/CD variables diff --git a/content/slides/cri/md/my.md b/content/slides/cri/md/my.md new file mode 100644 index 0000000000000000000000000000000000000000..7eb2107394cecd5622332da20bb566261f563018 --- /dev/null +++ b/content/slides/cri/md/my.md @@ -0,0 +1 @@ +# my diff --git a/content/slides/cri/md/galactica.md b/content/slides/cri/md/openstack.md similarity index 96% rename from content/slides/cri/md/galactica.md rename to content/slides/cri/md/openstack.md index 309acd6737636131ba3b809263cf7a12499493f1..c98ddb905286ad3e7bd9c3fd88b04a267d50d83f 100644 --- a/content/slides/cri/md/galactica.md +++ b/content/slides/cri/md/openstack.md @@ -1,3 +1,6 @@ +# OpenStask + + * mise à jour * maquettes documentées / réutilisables * étude de l'architecture diff --git a/content/slides/cri/md/pve.md b/content/slides/cri/md/pve.md new file mode 100644 index 0000000000000000000000000000000000000000..4b8737588c7253a31a01175f362cd8d771309771 --- /dev/null +++ b/content/slides/cri/md/pve.md @@ -0,0 +1,3 @@ +# Proxmox + +## aka pve diff --git a/content/slides/cri/md/aws.md b/content/slides/cri/md/stack.md similarity index 87% rename from content/slides/cri/md/aws.md rename to content/slides/cri/md/stack.md index 299fbdbbb301982d0223abe1fd384de6c9cf455e..a6b16e28885360b9fed10767b90720bcbf9c0538 100644 --- a/content/slides/cri/md/aws.md +++ b/content/slides/cri/md/stack.md @@ -1,6 +1,6 @@ -# bws +# stack -<!-- .element width="30%" --> +<!-- .element width="30%" --> aka **B** rew **W** ired **S** tack diff --git a/content/slides/cri/md/vagrant.md b/content/slides/cri/md/vagrant.md index 838896617f108c9a640160dbedb1047695cc163a..5a5f96b26eadd1472746a540df906d13e12ce446 100644 --- a/content/slides/cri/md/vagrant.md +++ b/content/slides/cri/md/vagrant.md @@ -106,6 +106,38 @@ $ vagrant destroy #--force ``` +## réseau + +mapping de port + +```ruby +Vagrant.configure("2") do |config| + config.vm.network "forwarded_port", guest: 80, host: 8004 +end +``` + +* [private network](https://www.vagrantup.com/docs/networking/private_network.html) + +* [public network](https://www.vagrantup.com/docs/networking/public_network.html) + +* on devrait pouvoir accéder à nos ressources locales + * tester un configuration avec ldap/ rodc? + * [<i class="fa fa-gitlab"></i> cri/ansible-playbook-vault](https://gitlab.isima.fr/cri/ansible-playbook-vault) + + +## vm + +```ruby +Vagrant.configure("2") do |config| + config.vm.box = "ubuntu/bionic64" + config.vm.provider "virtualbox" do |vb| + vb.gui = false + vb.memory = "4096" + end +end +``` + + ## points de montage montage automatique de `.` dans `/vagrant` @@ -152,6 +184,37 @@ end ``` +```ruby +if ENV['VAGRANT_OS'] + os = ENV['VAGRANT_OS'] +else + os = "ubuntu" +end +``` + +```ruby +Vagrant.configure("2") do |config| + if os == "centos" + config.vm.box = "centos/7" + else + config.vm.box = "ubuntu/bionic64" + end +``` + +```ruby + if os == "debian" + config.vm.provision "shell", inline: <<-SHELL + sudo yum install httpd + SHELL + else + config.vm.provision "shell", inline: <<-SHELL + sudo apt install -y apache2 + SHELL + end +end +``` + + ## provisioning via [ansible](ansible.html) @@ -171,28 +234,14 @@ Vagrant.configure("2") do |config| end end ``` -https://www.vagrantup.com/docs/provisioning/ansible_common.html -### idéal pour tester les playbooks +[Shared Ansible Options](https://www.vagrantup.com/docs/provisioning/ansible_common.html) -## vagrant pour tester apache - -```ruby -Vagrant.configure("2") do |config| - config.vm.box = "ubuntu/bionic64" - config.vm.network "forwarded_port", guest: 80, host: 8000 - config.vm.provider "virtualbox" do |vb| - vb.gui = false - vb.memory = "4096" - end - config.vm.provision "shell", inline: <<-SHELL - sudo apt install -y apache2 - SHELL -end -``` +## conclusion +**laissez un petit Vagrantfile dans vos playbooks [ansible](ansible.html) est toujours une bonne idée!** -## conclusion +* [<i class="fa fa-gitlab"></i> cri/ansible-playbook-vault](https://gitlab.isima.fr/cri/ansible-playbook-vault) -### laissez un petit Vagrantfile dans vos playbooks est toujours une bonne idée! + * [<i class="fa fa-gitlab"></i> cri/ansible-playbook-vault/Vagrantfile](https://gitlab.isima.fr/cri/ansible-playbook-vault/blob/master/Vagrantfile) diff --git a/content/slides/cri/md/vault.md b/content/slides/cri/md/vault.md index 94a46498ae7ba4c29b7984b9b957228fe23d1f0d..8e7f0d3608506e9d3669a1f80bf13975cffe1316 100644 --- a/content/slides/cri/md/vault.md +++ b/content/slides/cri/md/vault.md @@ -1,15 +1,13 @@ # vault -**By HashiCorp** - <!-- .element width="30%" --> -[https://vault.isima.fr](https://vault.isima.fr) +**By HashiCorp** ## Installation -Téléchargement d'un binaire +* téléchargement d'un binaire * https://releases.hashicorp.com/vault/ * décompresser dans /usr/local/bin @@ -37,7 +35,6 @@ listener "tcp" { ## Secret engine - ## KV2 ``` @@ -119,7 +116,7 @@ $ vault write auth/ldap/groups/cri policies=cri * le même binaire à télécharger * cross plateforme * deux variables d'environnement - * $VAULT_ADDR + * $VAULT_ADDR=https://vault.isima.fr * $VAULT_TOKEN ou * l'[api](https://www.vaultproject.io/api/overview) @@ -128,17 +125,17 @@ ou ## Workflow ``` -vault login -method=ldap username=vimazeno -vault secrets list -vault list cri/ -vault read cri/tokens -vault read cri/tokens # à chaque put on écrase les entrées qu'on ne réécrit pas -vault read cri/tokens -format=json -vault read cri/tokens -format=json | jq .data -vault read cri/tokens -format=json | jq .data.password -vault kv put cri/tokens root=pipo2 -vault kv patch cri/tokens root1=pipo1 -vault delete cri/tokens +$ vault login -method=ldap username=vimazeno +$ vault secrets list +$ vault list cri/ +$ vault kv get cri/tokens +$ vault kv get cri/tokens # à chaque put on écrase les entrées qu'on ne réécrit pas +$ vault kv get cri/tokens -format=json +$ vault kv get cri/tokens -format=json | jq .data +$ vault kv get cri/tokens -format=json | jq .data.password +$ vault kv put cri/tokens root=pipo2 +$ vault kv patch cri/tokens root1=pipo1 +$ vault delete cri/tokens ``` @@ -156,7 +153,6 @@ $ vault token create -policy=my * on génère un token en variable de CI/CD pour autoriser l'appli à lire des secrets - ## Générer un secret Un secret robuste en ligne de commande se génère avec la commande `openssl` comme suit @@ -171,7 +167,6 @@ Stocker le secret directement dans hashicorp vault $ vault kv put cri/tokens root=$(openssl rand -base64 25) ``` - ## SEE ALSO * [cri/ansible-playbook-vault](https://gitlab.isima.fr/cri/ansible-playbook-vault) diff --git a/content/slides/cri/my.html b/content/slides/cri/my.html new file mode 100644 index 0000000000000000000000000000000000000000..d16cdc5f5abbe2863d6b2f5a477d6499d2491043 --- /dev/null +++ b/content/slides/cri/my.html @@ -0,0 +1,59 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> + + <title>my</title> + + <link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css"> + <link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css"> + + <!-- Theme used for syntax highlighting of code --> + <link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css"> + <link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css"> + <link rel="stylesheet" href="../main.css"> + + <!-- Printing and PDF exports --> + <script> + var link = document.createElement( 'link' ); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css'; + document.getElementsByTagName( 'head' )[0].appendChild( link ); + </script> + </head> + <body> + <div class="reveal"> + <div class="slides"> + <section data-markdown="md/my.md" + data-separator="^\n\n\n" + data-separator-vertical="^\n\n" + data-separator-notes="^Note:" + data-charset="utf-8"> + </section> + </div> + </div> + + <script src="../../node_modules/reveal.js/lib/js/head.min.js"></script> + <script src="../../node_modules/reveal.js/js/reveal.js"></script> + + <script> + // More info about config & dependencies: + // - https://github.com/hakimel/reveal.js#configuration + // - https://github.com/hakimel/reveal.js#dependencies + Reveal.initialize({ + controls: true, + progress: true, + history: true, + center: false, + dependencies: [ + { src: '../../node_modules/reveal.js/plugin/markdown/marked.js' }, + { src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' }, + { src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true }, + { src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } } + ] + }); + </script> + </body> +</html> diff --git a/content/slides/cri/openstack.html b/content/slides/cri/openstack.html new file mode 100644 index 0000000000000000000000000000000000000000..5be67ae3beb8e91d0b753fd065bdb6aabee400c9 --- /dev/null +++ b/content/slides/cri/openstack.html @@ -0,0 +1,59 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> + + <title>openstack</title> + + <link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css"> + <link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css"> + + <!-- Theme used for syntax highlighting of code --> + <link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css"> + <link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css"> + <link rel="stylesheet" href="../main.css"> + + <!-- Printing and PDF exports --> + <script> + var link = document.createElement( 'link' ); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css'; + document.getElementsByTagName( 'head' )[0].appendChild( link ); + </script> + </head> + <body> + <div class="reveal"> + <div class="slides"> + <section data-markdown="md/openstack.md" + data-separator="^\n\n\n" + data-separator-vertical="^\n\n" + data-separator-notes="^Note:" + data-charset="utf-8"> + </section> + </div> + </div> + + <script src="../../node_modules/reveal.js/lib/js/head.min.js"></script> + <script src="../../node_modules/reveal.js/js/reveal.js"></script> + + <script> + // More info about config & dependencies: + // - https://github.com/hakimel/reveal.js#configuration + // - https://github.com/hakimel/reveal.js#dependencies + Reveal.initialize({ + controls: true, + progress: true, + history: true, + center: false, + dependencies: [ + { src: '../../node_modules/reveal.js/plugin/markdown/marked.js' }, + { src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' }, + { src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true }, + { src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } } + ] + }); + </script> + </body> +</html> diff --git a/content/slides/cri/aws.html b/content/slides/cri/stack.html similarity index 98% rename from content/slides/cri/aws.html rename to content/slides/cri/stack.html index ca0127532a8f96868057425aff08ba0ccb82b89c..189cc6871280d304bad19d9b62dc3067fd1374aa 100644 --- a/content/slides/cri/aws.html +++ b/content/slides/cri/stack.html @@ -26,7 +26,7 @@ <body> <div class="reveal"> <div class="slides"> - <section data-markdown="md/aws.md" + <section data-markdown="md/stack.md" data-separator="^\n\n\n" data-separator-vertical="^\n\n" data-separator-notes="^Note:"