DEV Community

Lâm
Lâm

Posted on

Ansible Cheat Sheet

References

[Roles] Env vars

    vars:
      local_home: "{{ lookup('env','HOME') }}"
Enter fullscreen mode Exit fullscreen mode

[Roles] Task: Failures

    - name: my task
      command: ...
      register: result
      failed_when: "'FAILED' in result.stderr"

      ignore_errors: yes

      changed_when: "result.rc != 2"
Enter fullscreen mode Exit fullscreen mode

Roles

    - host: xxx
      roles:
        - db
        - { role:ruby, sudo_user:$user }
        - web

    # Uses:
    # roles/db/tasks/*.yml
    # roles/db/handlers/*.yml
Enter fullscreen mode Exit fullscreen mode

Vars

    - host: lol
      vars_files:
        - vars.yml
      vars:
        project_root: /etc/xyz
      tasks:
        - name: Create the SSH directory.
          file: state=directory path=${project_root}/home/.ssh/
          only_if: "$vm == 0"
Enter fullscreen mode Exit fullscreen mode

Handlers

    handlers:
      - name: start apache2
        action: service name=apache2 state=started

    tasks:
      - name: install apache
        action: apt pkg=apache2 state=latest
        notify:
          - start apache2
Enter fullscreen mode Exit fullscreen mode

[Tasks] Includes

    tasks:
      - include: db.yml
    handlers:
      - include: db.yml user=timmy
Enter fullscreen mode Exit fullscreen mode

Tasks

    - hosts: all
      user: root
      sudo: no
      vars:
        aaa: bbb
      tasks:
        - ...
      handlers:
        - ...
Enter fullscreen mode Exit fullscreen mode

[Getting started] Running a playbook

    $ ansible-playbook playbook.yml
Enter fullscreen mode Exit fullscreen mode

[Getting started] Hosts

    $ sudo mkdir /etc/ansible
    $ sudo vim /etc/ansible/hosts

    [example]
    192.0.2.101
    192.0.2.102
Enter fullscreen mode Exit fullscreen mode

Discussion (0)