2017-02-08 2 views
1

Ниже моя структура каталогов для ansibel роли под названием веб-серверанзибля - включает в себя статический файл сценарий в роли

локального роли # дерева

. 
├── readme.md 
├── site.yml 
└── webserver 
    ├── files 
    │   ├── createswap.sh 
    │   └── nginxkeyadd.sh 
    ├── handlers 
    │   └── main.yml 
    ├── tasks 
    │   └── main.yml 
    ├── templates 
    │   ├── helloworld.conf.j2 
    │   └── index.html.j2 
    └── vars 
     └── main.yml 

мои задачи/main.yml выглядит

- name: Create swap file 50MB 
    script: /etc/ansible/roles/webserver/files/createswap.sh 
- name: add GPG key for nginx 
    script: /etc/ansible/roles/webserver/files/nginxkeyadd.sh 
- name: Install nginx on target 
    apt: name={{ item }} state=latest 
    with_items: 
    - rsync 
    - git 
    - nginx 

в задаче/main.yml im, определяющем абсолютный путь к локальному файлу сценария, например

script: /etc/ansible/roles/webserver/files/nginxkeyadd.sh и script: /etc/ansible/roles/webserver/files/createswap.sh. В сценариях нет никаких переменных. Это хорошая практика в недоступном?

ответ

1

Действительно ли это хорошая практика в незатронутой?

No. Отрывок из docs:

Любая копия, скрипт, шаблон или включают задачи (в роли) можно ссылаться файлы в роли/х/{файлы, шаблоны, задачи}/(dir зависит от задачи), не требуя их относительно или абсолютно.

Также использование shell-скриптов вместо естественных модулей Ansible является антипаттерном.

Смежные вопросы