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

Ansible 101

Ansible 101

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