LINUX.ORG.RU

Передача параметров из файла при выполнении playbook

 ,


1

1

Здравствуйте.

Помогите пожалуйста новичку с ansible. Досталась в наследство настроена структура с ansible. Есть такого рода плейбук, привожу часть кода:

...
    - name: Update nginx conf_1 proxy
      lineinfile:
        path: /etc/nginx/conf.d/proxy1.conf
        regexp: 'ssl_server1'
        line: "         proxy_pass https://{{ PROXY_PASS }}:443;"

    - name: Update nginx conf_1 proxy
      lineinfile:
        path: /etc/nginx/conf.d/proxy1.conf
        regexp: 'server1'
        line: "         proxy_pass http://{{ PROXY_PASS }}:80;"


    - name: Update nginx conf_2 proxy
      lineinfile:
        path: /etc/nginx/conf.d/proxy2.conf
        regexp: 'ssl_server1'
        line: "         proxy_pass http://{{ PROXY_PASS }}:80;"

    - name: Update nginx conf_2 proxy
      lineinfile:
        path: /etc/nginx/conf.d/proxy2.conf
        regexp: 'server1'
        line: "         proxy_pass https://{{ PROXY_PASS }}:443;"
...

в hosts

...
[proxy_servers]
proxy-server1 ansible_host=192.168.1.1
proxy-server2 ansible_host=192.168.1.2
proxy-server3 ansible_host=192.168.1.3
proxy-server4 ansible_host=192.168.1.4
...

и соответственно есть файлы

host_vars/proxy-server1.yml
host_vars/proxy-server2.yml
host_vars/proxy-server3.yml
host_vars/proxy-server4.yml

с кодом по типу

cat host_vars/proxy-server1.yml
---
PROXY_PASS: "192.168.1.101"
cat host_vars/proxy-server2.yml
PROXY_PASS: "192.168.1.102"

Как это все склеить? Как нужно запустить команду ansibl’a, для определенного сервера, если я хочу что бы изменения произошли на proxy-server1 с подставлением переменой «PROXY_PASS» что задана в файле host_vars/proxy-server1.yml ? Или возможно выполнить сразу для всех 4х серверов с подставлением «PROXY_PASS» для конкретного сервер из конкретного файла?

Вопрос наверное простой, но к сожалению изучение информации из документации, и тестовые попытки не дали результата.


Вы показали роль, инвентарный список и конфигурацию. Самой же плейбуки здесь нет - вот как только она появится, тогда и вопрос отпадёт.

Рекомендую все же почитать лучшие практики и глянуть какое нибудь видео обучающее.

изучение информации из документации, и тестовые попытки не дали результата

Не верится, что этот шаг был выполнен.

WoozyMasta ()

Как нужно запустить команду ansibl’a, для определенного сервера

Ключик -l при запуске ansible-playbook. Он ограничивает выполнение группой или хостом.

stave ★★★★★ ()
Ответ на: комментарий от FireFighter

Представлен только набор тасков (tasks), ни hosts: ни tasks: там не фигурируют, ТС же пытается эти таски выполнить на перечне хостов и не понимает как.

Таски есть, как это запускать ТС не знает:

Как это все склеить? Как нужно запустить команду ansibl’a, для определенного сервера

Я же просто пытаюсь подтолкнуть автора к решению.

WoozyMasta ()