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

Automation Made Simple with Ansible

Automation Made Simple with Ansible

Short talk presented at the first DigitalOcean Berlin meetup

Erika Heidi

April 20, 2016
Tweet

More Decks by Erika Heidi

Other Decks in Programming

Transcript

  1. View Slide

  2. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    ANSIBLE OVERVIEW

    View Slide

  3. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    Ansible

    Simple and straightforward
    language (YAML)

    Agentless Architecture

    Huge collection of built-in modules

    Great community, very popular on
    Github

    View Slide

  4. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    Inventories
    #/etc/ansible/hosts
    [dev]
    192.168.30.33
    [prod]
    myserver.com
    otherserver.com

    View Slide

  5. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    Playbook Example
    ---
    - hosts: all
    become: true
    tasks:
    - name: Update apt-cache
    apt: update_cache=yes
    - name: Install Nginx
    apt: name=nginx state=latest

    View Slide

  6. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    Playbook Resources

    Variables

    Loops

    Conditionals

    Templates

    Ansible Vault

    View Slide

  7. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    HANDS ON

    View Slide

  8. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    Playbook
    ---
    - hosts: all
    become: true
    vars:
    packages: ["nginx", "vim"]
    message: "1st DigitalOcean Berlin Meetup, YAY!"
    tasks:
    - name: Update apt-cache
    apt: update_cache=yes
    - name: Install Packages
    apt: name={{ item }} state=latest
    with_items: packages
    - name: Change Nginx index file
    template: src=index.tpl dest=/usr/share/nginx/html/index.html
    notify: restart nginx
    handlers:
    - name: restart nginx
    service: name=nginx enabled=yes state=restarted

    View Slide

  9. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    Playbook
    ---
    - hosts: all
    become: true
    vars:
    packages: ["nginx", "vim"]
    message: "1st DigitalOcean Berlin Meetup, YAY!"
    tasks:
    - name: Update apt-cache
    apt: update_cache=yes
    - name: Install Packages
    apt: name={{ item }} state=latest
    with_items: packages
    - name: Change Nginx index file
    template: src=index.tpl dest=/usr/share/nginx/html/index.html
    notify: restart nginx
    handlers:
    - name: restart nginx
    service: name=nginx enabled=yes state=restarted

    View Slide

  10. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    Playbook
    ---
    - hosts: all
    become: true
    vars:
    packages: ["nginx", "vim"]
    message: "1st DigitalOcean Berlin Meetup, YAY!"
    tasks:
    - name: Update apt-cache
    apt: update_cache=yes
    - name: Install Packages
    apt: name={{ item }} state=latest
    with_items: packages
    - name: Change Nginx index file
    template: src=index.tpl dest=/usr/share/nginx/html/index.html
    notify: restart nginx
    handlers:
    - name: restart nginx
    service: name=nginx enabled=yes state=restarted

    View Slide

  11. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    Playbook
    ---
    - hosts: all
    become: true
    vars:
    packages: ["nginx", "vim"]
    message: "1st DigitalOcean Berlin Meetup, YAY!"
    tasks:
    - name: Update apt-cache
    apt: update_cache=yes
    - name: Install Packages
    apt: name={{ item }} state=latest
    with_items: packages
    - name: Change Nginx index file
    template: src=index.tpl dest=/usr/share/nginx/html/index.html
    notify: restart nginx
    handlers:
    - name: restart nginx
    service: name=nginx enabled=yes state=restarted

    View Slide

  12. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    Playbook
    ---
    - hosts: all
    become: true
    vars:
    packages: ["nginx", "vim"]
    message: "1st DigitalOcean Berlin Meetup, YAY!"
    tasks:
    - name: Update apt-cache
    apt: update_cache=yes
    - name: Install Packages
    apt: name={{ item }} state=latest
    with_items: packages
    - name: Change Nginx index file
    template: src=index.tpl dest=/usr/share/nginx/html/index.html
    notify: restart nginx
    handlers:
    - name: restart nginx
    service: name=nginx enabled=yes state=restarted

    View Slide

  13. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    Playbook
    ---
    - hosts: all
    become: true
    vars:
    packages: ["nginx", "vim"]
    message: "1st DigitalOcean Berlin Meetup, YAY!"
    tasks:
    - name: Update apt-cache
    apt: update_cache=yes
    - name: Install Packages
    apt: name={{ item }} state=latest
    with_items: packages
    - name: Change Nginx index file
    template: src=index.tpl dest=/usr/share/nginx/html/index.html
    notify: restart nginx
    handlers:
    - name: restart nginx
    service: name=nginx enabled=yes state=restarted

    View Slide

  14. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    DEMO TIME!

    View Slide

  15. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    QUESTIONS?

    View Slide

  16. Automation Made Simple with Ansible
    @erikaheidi / DigitalOcean Meetup Berlin
    THANKS!
    @erikaheidi
    [email protected]

    View Slide