+ All Categories
Home > Documents > Martin Vicián • [email protected] • /ptvician • vician ... · 10/7/2018 Presentation ...

Martin Vicián • [email protected] • /ptvician • vician ... · 10/7/2018 Presentation ...

Date post: 20-May-2020
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
47
Martin Vicián [email protected] /ptvician vician.cz LinuxDays 7. října 2018 Obrázek: flamingtext.com 1 / 47
Transcript
Page 1: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 1/47

Martin Vicián • [email protected] • /ptvician • vician.cz

LinuxDays • 7. října 2018

Obrázek: flamingtext.com

1 / 47

Page 2: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 2/47

Motivace

Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

2 / 47

Page 3: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 3/47

Automatizace Orchestrace

Pojmy

Obrázek: youtu.be/dvqNFTqu57s, http://harrypotter.wikia.com

3 / 47

Page 4: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 4/47

Cíl

Konfigurace, správa a deployingvšech serverů najednouIaas (Infrastructure as a service)Propojení se službami poskytujícími"zdroje" (Amazon, OpenStack,DigitalOcean, ...)A admini nebudou mít co žrát.

Řešení

PuppetChefCFEngine3SaltStack (OpenSuse)Ansible (RedHat)...

Orchestrace

4 / 47

Page 5: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 5/47

Open source v Pythonu.Komunikace probíhá přes SSH spojení: šifrované, "bezpečné", pomalé.Nepotřebuje nainstalovaného agenta:

Puppet je výborný, ale stejně potřebujete Ansible, abyste jej jednoduše anajednou nainstalovali. (Věroš Kaplan)

Potřebuje Python3 (resp. Python2 pro některé moduly ☹)Popisujeme stav stroje - jak má vypadat.Idempotentní by design (stejná akce = stejný stav).Formáty/jazyky: ini, YaML, Jinja2.

Ansible

5 / 47

Page 6: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 6/47

Instalace:

Ubuntu 18.04: 2.5.1pip: 2.7.0

Cesta konfiguračního souboru (dle priority):

$ANSIBLE_CFG./ansible.cfg$HOME/ansible.cfg/etc/ansible/ansible.cfg

Instalace a konfigurace

Obrázek: https://cs.wikipedia.org/wiki/Ansible_(software)

6 / 47

Page 7: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 7/47

Zdroj inspirace

Jessee Keating:Mastering Ansible -Second edition

Praktické příklady

https://xmv.cz/ansible

sudo apt install git python-pipsudo pip install ansiblegit clone https://gitlab.labs.nic.cz/\ mvician/ansible-introduction-examplescd ansible-introduciton-examples

Soubory pro spuštění:

./??-run.sh

Slajdy: https://www.vician.cz/pages/slides/

Příprava prostředí

Zdroj obrázku: www.packtpub.com

7 / 47

Page 8: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 8/47

konfigurace: inventory = hostspřepínače: -i/--inventory INVENTORY_PATHtypické cesty:

soubor: hostssložka: inventory/*

seznam strojů spravovaných Ansiblemini formátproměnné určující spojení (konvence) - např.:

ansible_connection: local, smart, ssh, paramiko, dockeransible_useransible_port...

sdružení strojů do skupin

ansible localhost -m ping

Inventory

8 / 47

Page 9: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 9/47

muj-pocitac ansible_connection=local

server.example.com ansible_port=9022

turris.example.com ansible_user=root

tajnyserver.tajnadomena.tld ansible_host=1.1.1.1

muj-arch-desktop ansible_python_interpreter=/usr/bin/python2

desktop-doma.example.com ansible_ssh_common_args=' \ -o ProxyCommand="ssh -W %h:%p -q [email protected]"'

https://docs.ansible.com/ansible/latest/intro_inventory.html#list-of-behavioral-inventory-parameters

Proměnné v inventory

9 / 47

Page 10: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 10/47

složka: playbooks (konvence)seznam stavů/úkolůomezuje se množina serverů z inventorylineární procházení úkolůstandardně se vykonává úkol po úkolu na danýchstrojíchyaml - všude stejný počet mezer/tabulátorů

Spuštění:

ansible-playbook -i 02-hosts playbooks/02-hello-word.yml

Playbook

Obrázek: how-i-met-your-mother.wikia.com

10 / 47

Page 11: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 11/47

playbooks/03-playbook.yml:

- hosts: all tasks: - debug: msg: Hello world! - debug: msg: And again!

Spuštění:

ansible-playbook -i 03-hosts playbooks/03-playbook.yml

nebo: ./03-run.sh

Struktura playbooku

11 / 47

Page 12: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 12/47

Hosts

ginny

[twins]fredgeorge

[prefects]billcharliepercyron

Playbook

- hosts: twins tasks: - debug: msg: "Weasleys' Wizard Wheezes!!!"- hosts: prefects tasks: - debug: msg: Am I also head-boy?

ansible-playbook -i 04-hosts playbooks/04-playbook-limit.yml

Skupiny strojů

12 / 47

Page 13: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 13/47

- hosts: all:!percy tasks: - debug: msg: "Where is Percy?"- hosts: twins tasks: - debug: msg: "Oh, are you a prefect, Percy?"- hosts: percy tasks: - debug: msg: "Oh, shut up! "

ansible-playbook -i 05-hosts playbooks/05-playbook-more.yml

Limit strojů

13 / 47

Page 14: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 14/47

Playbook

- hosts: all tasks: - debug: msg: "I'm Fred or George?"

Hosts

fredgeorge

[all:vars]ansible_connection=...

ansible-playbook -i 06-hosts playbooks/06-limit.yml \ --limit twins

Runtime limit

14 / 47

Page 15: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 15/47

[weasly]ginny

[twins]fredgeorge

[prefects]billcharliepercyron

[weasly:children]twinsprefects

Playbook

- hosts: weasly tasks: - debug: msg: "We are ..."

Run

ansible-playbooks \ -i 07-hosts \ playbooks/07-groups.yml

Hiearchie skupin

15 / 47

Page 16: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 16/47

[all]+ -- [weasly] + -- ginny + -- [twins] + -- fred + -- george + -- [prefects] + -- percy + -- ron + -- [finishedschoolbeforefirstbook] + -- bill + -- charlie[ungrouped]+ -- harry+ -- hermione

Hiearchie skupin - znázornění

16 / 47

Page 17: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 17/47

- hosts: localhost tasks: - shell: date register: currenttime - debug: msg: "Current time is: {{ currenttime.stdout }}"

ansible-playbook -i 08-hosts playbooks/08-stdout.yml

Výstupy

17 / 47

Page 18: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 18/47

ok: [localhost] => { "msg": { "changed": true, "cmd": "date", "delta": "0:00:00.001941", "end": "2018-06-27 12:57:20.775504", "failed": false, "rc": 0, "start": "2018-06-27 12:57:20.773563", "stderr": "", "stderr_lines": [], "stdout": "St čen 27 12:57:20 CEST 2018", "stdout_lines": [ "St čen 27 12:57:20 CEST 2018" ]}}

Výstupy

18 / 47

Page 19: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 19/47

- hosts: localhost tasks: - debug: msg: "No change" register: gringotts - debug: msg: "Was changed" when: gringotts is changed - debug: msg: "Success" when: gringotts is success

ok: [localhost] => { "gringotts": { "changed": false, "failed": false, "msg": "No change" }}

ansible-playbook -i 09-hosts playbooks/09-changed.yml

Změny

19 / 47

Page 20: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 20/47

- hosts: kingscross tasks: - shell: sl register: hogwartsexpress - debug: msg: "Hogwarts Express isn't installed!" when: hogwartsexpress.rc == 2

ansible-playbook -i 10-hosts playbooks/10-return.yml

Návratový kód

20 / 47

Page 21: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 21/47

https://docs.ansible.com/ansible/latest/user_guide/playbooks_error_handling.html

- hosts: kingscross tasks: - shell: sl register: hogwartsexpress failed_when: hogwartsexpress.rc == 2

Návratový kód

21 / 47

Page 22: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 22/47

Přihlašujeme se pomocí SSH klíčů.

Hosts

localhost ansible_user=lab

Playbook

- hosts: localhost tasks: - shell: whoami

ansible-playbook -i 11-hosts playbooks/11-sudo.yml \ --become --ask-become-pass

Root? No, thank you!

Obrázek: http://www.techprone.com/

22 / 47

Page 23: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 23/47

- hosts: ron tasks: - name: Rat name debug: msg: "My rat is called Scabbers." - name: Mirror of Erised debug: msg: "I would like to win Quidditch World Cup."

ansible-playbook -i 12-hosts playbooks/12-names.yml

He-who-must-not-be-named

23 / 47

Page 24: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 24/47

./inventory/gryffindor johnson wood [harrysyear] weasley granger./inventory/hufflepuff diggory [harrysyear] macmillan

./inventory/ravenclaw lovegood [harrysyear] patil./inventory/slytherin flint [harrysyear] malfoy crabbe goyle

ansible-playbook -i 13-inventory playbooks/13-inventory.yml

Inventory

24 / 47

Page 25: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 25/47

Ansible "jen" sloučí všechny soubory v adresáři

ansible-playbook -i 13-inventory playbooks/13-inventory.yml \ -l gryffindor

- hosts: gryffindor tasks: ...

Obojí selže, ale 13-inventory/all funguje:

[all:vars]ansible_connection=local

Inventory

25 / 47

Page 26: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 26/47

slučujeme úkoly do logických celkůsdílíme role (roles_path =\roles:shared)

./

./ansible.cfg

./hosts

./playbooks/hello.yml

./roles/hello/tasks/main.yml

./roles/myrole/tasks/main.yml

./shared/users/tasks/main.yml

./shared/sshd/tasks/main.yml

tasks/main.yml:

- name: first debug: msg: Hello World!

playbooks/hello.yml:

- hosts: localhost roles: - hello - users

ansible-playbook -i 15-hosts playbooks/15-roles.yml

Roles

26 / 47

Page 27: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 27/47

V inventory ansible_port, ...group_varshost_varsv rolích

vychozívynucné

dočasné v úkolechv playboocích

ansible-playbook -i 16-hosts playbooks/16-variables.yml

Variables

Obrázek: https://www.ebay.co.uk/itm/12x-HARRY-POTTER-POTION-BOTTLES-/312069127320

27 / 47

Page 28: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 28/47

https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable

Proměnná musí být definovaná!

when: variable is not definedmsg: "{{ variable | default('zapomnnel jsem definovat') }}"

ansible-playbook -i 17-hosts playbooks/17-variables.yml

typicky:proměnné do rolí role/myrole/defaults/main.ymlzměny v host_vars a group_vars

Variables - hiearchy

28 / 47

Page 29: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 29/47

https://docs.ansible.com/ansible/latest/modules/modules_by_category.html

pingapt, yum, apt_key, apt_repo, ...pipsystemdsysctlusergitcopytemplateuri

TOP Modules

29 / 47

Page 30: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 30/47

https://docs.ansible.com/ansible/latest/modules/copy_module.html

roles/gryffindor/tasks/main.ymlroles/gryffindor/files/fat-lady-password.txt

- copy: src: fat-lady-password.txt dest: /etc/gryffindor-door/fat-lady-password.txt owner: percy group: percy mode: 0644

Files

30 / 47

Page 31: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 31/47

- copy: src: herbology.jinja2 dest: /etc/herbology.txt owner: dumbledore group: dumbledore mode: 0644

Teacher: {{ teacher }}{% for item in ... %}- {{ item }}{% endfor %}

https://docs.ansible.com/ansible/latest/modules/template_module.htmlhttps://docs.ansible.com/ansible/latest/user_guide/playbooks_templating.html

roles/teachers/tasks/main.ymlroles/teachers/templates/.jinja2

ansible-playbook -i 19-hosts playbooks/19-templates.yml

Templates

31 / 47

Page 32: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 32/47

https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html

- debug: msg: "I'm {{ item }} Weasley." with_items: [ Fred, George ]- debug: msg: "I'm {{ item }} Weasley." with_items: - Fred - George- debug: msg: "I'm {{ item }} Weasley." with_items: "{{ twins_names }}"

ansible-playbook -i 20-hosts playbooks/20-loops.yml

Loops

32 / 47

Page 33: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 33/47

https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html#handlers-running-operations-on-change

roles/gryffindor/tasks/main.ymlroles/gryffindor/handlers/main.yml

- copy: dest: /etc/gryffindor-door/fat-lady-password.txt content: "{{ password }}" notify: fatlady reload

notify jen při změně

ansible-playbook -i 21-hosts playbooks/21-handlers.yml

Handlers

33 / 47

Page 34: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 34/47

roles/users/tasks/main.ymlroles/users/tasks/user.yml

main.yml:

- name: Process each user include: user.yml with_items: "{{ users }}"

user.yml:

- user: name: "{{ item }}"

Tasks include

34 / 47

Page 35: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 35/47

https://docs.ansible.com/ansible/latest/user_guide/playbooks_tags.html

tagovat lze:task v roliroli v playbooku

- hosts: all roles: - {role: users, tags: users} - {role: sshd, tags: sshd}

ansible-playbook example.yml --tags "users,sshd"

Tagy

35 / 47

Page 36: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 36/47

nepoužívat roli common (není jasné, co dělá)závislosti řešit na úrovni playbooku a nev rolíchjeden playbook pro jednu činnostcitlivá data dohromady separátněv playbooks žádné taskskaždá role má README.mdproměnné jsou v defaultsplaybooky neobsahují duplikátní roleproměnné obalené mezerami: {{ promenna }}proměnné s prefixem názvu role

Konvence

Obrázek: http://harrypotter.wikia.com/wiki/File:Harry_Potter_Movie_Pictures-Professors.jpg

36 / 47

Page 37: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 37/47

- apt: name=sudo state=present=>- apt: name: sudo state: present

state: latest nebo stable zajistí aktualizaci(i nežádoucí)

Syntaxe

Obrázek: http://harrypotter.wikia.com/wiki/File:Wingardium_leviosa.jpg

37 / 47

Page 38: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 38/47

verzovánímerge requestypodepisování commitů, tagů, ...deploy jenom z masterCI pro kontrolu konvencí

Git, git, git

Obrázek: https://medium.com/qbits/managing-github-project-boards-with-ansible-79139b7bb9d1

38 / 47

Page 39: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 39/47

ansible-galaxy: https://galaxy.ansible.com/(spíš inspirace, pozor na bezpečnost)git submoduly s tagovanými čísly verzí

ansible.cfg:

roles_path = roles:companyroles:galaxy-roles

Sdílime role!

Obrázek: http://www.harrypotterpartyideas.com/the-props/monster-book-of-monsters-and-other-books

39 / 47

Page 40: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 40/47

[weasly]ginny

[twins]fredgeorge

[prefects]billcharliepercyron

[weasly:children]twinsprefects

[finishedschoolbeforefirstbook]billcharlielupin

[hogwartsteacher]lupindumbledore

[werewolf]lupin

proměnné dle pohledu skupiny

Vícenasobná hiearchie skupin

40 / 47

Page 41: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 41/47

[servers]......

[behind_proxy]omina.example.com

[behind_proxy:vars]ansible_ssh_common_args='-o ProxyCommand=\ "ssh -W %h:%p -q [email protected]"'

SSH Proxy

41 / 47

Page 42: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 42/47

ansible.cfg:

vault_password_file = vault.sh

#!/bin/shDN="$(dirname "$0")"gpg2 --batch --use-agent --decrypt "$DN"/pass.gpg \ 2> /dev/null

ansible-vault [create|edit||view] file

group_vars/all/secure.ymlhost_vars/harry/diary.yml

Ansible vault

42 / 47

Page 43: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 43/47

- hosts: localhost tasks: - name: gitlab projects git: repo: "ssh://[email protected]/project" dest: "/home/{{ ansible_env['USER'] }}/project" become: no

ansible-playbook playbooks/gitproject.yml --become \ --ask-become-pass

Become

43 / 47

Page 44: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 44/47

- include: 'lxchost.yml' delegate_to: '{{ run_on }}'

aplikováno na celé lxchost.ymlrun_on musí byt v inventorypoužití: virtualizace, kontejnerizace

Delegate

Obrázek: https://deskgram.org/p/1679187689125359923_6773086394

44 / 47

Page 45: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 45/47

Pozitiva:

webové GUI pro ansiblesnadné spouštění na velkém množství severůintuitivní přehled stavů

Negativa:

ansible na serveru pro automatickéspouštěníansible-vault

https://youtu.be/ToXoDdUOzj8

Ansible Tower

45 / 47

Page 46: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 46/47

Otázky?

Obrázek: www.quora.com

46 / 47

Page 47: Martin Vicián • martin.vician@nic.cz • /ptvician • vician ... · 10/7/2018 Presentation  2/47 Motivace Video: youtu.be/dvqNFTqu57s, Gif: gph.is/2N4va7l

10/7/2018 Presentation

http://localhost:37423/?print=no&theme=cznic_cs&ratio=16:9&source=slides.md#1 47/47

47 / 47


Recommended