Ansible роли

Чтобы сгенерировать роль, можно просто использовать команду

ansible-galaxy init -p roles web

 

Сруктура ролей должна быть такой:

/ -
  roles
    - tasks        задачи
        main.yml
    - vars         переменные которые не дожны переопределяться
        main.yml
    - handlers     обработчики
        main.yml
    - defaults     переменные, которые могут переопределяться
    - temlates     шаблоны
    - files        файлы выгружаемые на хост
    - meta         информация о зависимостях данной роли

Структура

---
- name: deploy mezzanine on vagrant
  hosts: web
  vars_files:
    - secrets.yml
  pre_tasks:
      - name: update the apt cache
        apt: update_cache=yes
  roles:
    - role: mezzanine
      database_host: "{{ hostvars.db.ansivle_eth1.ipv4.address }}"
      live_hostname: 192.168.33.10.xip.io
      domains:
          - 192.168.33.10.xip.io
          - www.192.168.33.10.xip.io
  post_tasks:
    - name: notify Slack channel
      local_action: >
           slack
           domain=acme.slack.com
           token={{ stack_token }}
           msg="web server {{ inventory_hostname }} done"

Переменные определенные в роли будут доступны и в других ролях, надо следить чтобы переменные не пересекались

Чтобы указать что роль зависит от другой, т.е. должна быть выполнена первой

dependencies:
    - {role: web}
    - {role: memcached}

 

Ansible

Related Articles

0 Comment

Leave a Comment

Ваш адрес email не будет опубликован.