Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ansible 101

Ansible 101

Avatar for Tomáš Kukrál

Tomáš Kukrál

March 07, 2015
Tweet

More Decks by Tomáš Kukrál

Other Decks in Technology

Transcript

  1. Jak si ochoˇ cit Ansible Tom´ aˇ s Kukr´ al

    klub tech@SU - Studentsk´ a unie ˇ CVUT SDN labs - ˇ CVUT FEL 7.3.2015 Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 1 / 11
  2. Automatizace v IT Opakovat jednoduch´ e ´ ukoly dok´ aˇ

    ze i vycviˇ cen´ a opice, opici je tˇ reba nejdˇ r´ ıve ochoˇ cit a vycviˇ cit. V´ yhody ˇ z´ adn´ e pˇ reklepy a chyby rychlejˇ s´ ı spr´ ava opakov´ an´ ı definovan´ e prostˇ red´ ı centralizovan´ a spr´ ava Nev´ yhody lavinov´ e chyby SSH pˇ r´ ıstup obt´ ıˇ znˇ e dohledateln´ e a skl´ aˇ ri nebudou m´ ıt co j´ ıst Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 3 / 11
  3. Agenti pˇ ristupujeme pˇ res SSH, takˇ ze nen´ ı

    tˇ reba instalovat ˇ z´ adn´ e agenty (SSH kl´ ıˇ ce hesla) && (root sudo) Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 5 / 11
  4. Agenti pˇ ristupujeme pˇ res SSH, takˇ ze nen´ ı

    tˇ reba instalovat ˇ z´ adn´ e agenty (SSH kl´ ıˇ ce hesla) && (root sudo) Moduly apt, authorized key, copy, synchronize, cron, docker, gem, pip, group, hostname, stat, sysctl, user, shell, git, template, win * 200 pˇ ripraven´ ych modul˚ u Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 5 / 11
  5. Agenti pˇ ristupujeme pˇ res SSH, takˇ ze nen´ ı

    tˇ reba instalovat ˇ z´ adn´ e agenty (SSH kl´ ıˇ ce hesla) && (root sudo) Moduly apt, authorized key, copy, synchronize, cron, docker, gem, pip, group, hostname, stat, sysctl, user, shell, git, template, win * 200 pˇ ripraven´ ych modul˚ u Akce spuˇ stˇ en´ ı pˇ r´ ıkazu na v´ ıce stroj´ ıch ˇ z´ adn´ e dalˇ s´ ı n´ astroje Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 5 / 11
  6. Invent´ aˇ r seznam adres stroje, skupiny, promˇ enn´ e

    dynamick´ y invent´ aˇ r (JSON) Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 6 / 11
  7. Invent´ aˇ r seznam adres stroje, skupiny, promˇ enn´ e

    dynamick´ y invent´ aˇ r (JSON) Playbook skupina akc´ ı/stav˚ u vyuˇ z´ ıvaj´ ı moduly YAML form´ at Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 6 / 11
  8. Invent´ aˇ r seznam adres stroje, skupiny, promˇ enn´ e

    dynamick´ y invent´ aˇ r (JSON) Playbook skupina akc´ ı/stav˚ u vyuˇ z´ ıvaj´ ı moduly YAML form´ at Role spojuj´ ı dohromady playbooky a jejich nastaven´ ı pˇ riˇ rad´ ıme invent´ aˇ ri role Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 6 / 11
  9. Pˇ r´ ıklady - pˇ r´ ıkazy Odpovˇ ed’ od

    vˇ sech stroj˚ u ansible all -m ping Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 7 / 11
  10. Pˇ r´ ıklady - pˇ r´ ıkazy Odpovˇ ed’ od

    vˇ sech stroj˚ u ansible all -m ping Informace o stroj´ ıch ansible all -m setup Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 7 / 11
  11. Pˇ r´ ıklady - pˇ r´ ıkazy Odpovˇ ed’ od

    vˇ sech stroj˚ u ansible all -m ping Informace o stroj´ ıch ansible all -m setup Spustit ansible all -m shell -a "uptime" ansible all -m command -a "uptime" ansible all -a "uptime" Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 7 / 11
  12. Pˇ r´ ıklady - pˇ r´ ıkazy Odpovˇ ed’ od

    vˇ sech stroj˚ u ansible all -m ping Informace o stroj´ ıch ansible all -m setup Spustit ansible all -m shell -a "uptime" ansible all -m command -a "uptime" ansible all -a "uptime" Zjistit eth0 MAC adresu ansible all -m shell -a "ip a show eth0 | grep ether" Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 7 / 11
  13. Pˇ r´ ıklady - instalace Instalujeme vim ansible all -m

    apt -a "name=vim state=present" name: install vim apt: name=vim state=present Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 8 / 11
  14. Pˇ r´ ıklady - instalace Instalujeme vim ansible all -m

    apt -a "name=vim state=present" name: install vim apt: name=vim state=present Instalujeme hromadnˇ e name: install handy packages apt: name={{item}} state=present with_items: - htop - tmux - nmap - iptraf - toilet Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 8 / 11
  15. Pˇ r´ ıklady - nastaven´ ı NTP server apt: name=ntp

    state=present copy: src=ntp.conf dest=/etc/ntp.conf owner=root mode=0644 service: name=ntp state=restarted enabled=yes Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 9 / 11
  16. Pˇ r´ ıklady - nastaven´ ı NTP server apt: name=ntp

    state=present copy: src=ntp.conf dest=/etc/ntp.conf owner=root mode=0644 service: name=ntp state=restarted enabled=yes Nehashovat known hosts lineinfile: dest=/etc/ssh/ssh_config \ regexp=’^[\s]*HashKnownHosts’ \ line=’HashKnownHosts no’ Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 9 / 11
  17. Pˇ r´ ıklady - nastaven´ ı NTP server apt: name=ntp

    state=present copy: src=ntp.conf dest=/etc/ntp.conf owner=root mode=0644 service: name=ntp state=restarted enabled=yes Nehashovat known hosts lineinfile: dest=/etc/ssh/ssh_config \ regexp=’^[\s]*HashKnownHosts’ \ line=’HashKnownHosts no’ Nastaven´ ı hesla uˇ zivatele root user: name=root groups=root state=present \ password="nejaky hash hesla" Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 9 / 11
  18. Best practises Nedˇ el´ ame v´ yjimky Na servery nesah´

    ame Dokumentujeme a komentujeme Tagujeme Verzujeme P´ ıˇ seme KISS Dejte si pozor Sdruˇ zov´ an´ ı akc´ ı a spuˇ stˇ en´ ı skriptu Jin´ e prostˇ red´ ı (PATH ...) Bezstavov´ e spuˇ stˇ en´ ı (notify) Pˇ r´ ıliˇ s specifick´ a pravidla Zmˇ en´ ıme si heslo roota nebo smaˇ zeme kl´ ıˇ c Omezen´ ı poˇ ctu SSH spojen´ ı Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 10 / 11
  19. Dˇ ekuji za pozornost jdˇ ete na workshop - dnes

    15:00 http://docs.ansible.com/playbooks_best_practices.html Tom´ aˇ s Kukr´ al (tech@SU) Ansible 7.3.2015 11 / 11