Передача переменных из проекта в playbooks ansible - PullRequest
0 голосов
/ 20 мая 2018

Это мои настройки.Я создал проект git типа scm и у меня там есть мой код.Мой playbook также находится в этом репозитории и содержит команду сборки и запуска docker.Для того, чтобы собрать мой докер, я должен выполнить мою команду сборки, где находится мой файл докера (в данном случае, где клонируемый проект клонируется / var / lib / awx / project).Я хочу проложить этот путь к моей сборной пьесе.

Моя пьеса выглядит следующим образом:

---
- hosts: all
  sudo: yes
  remote_user: ubuntu
  gather_facts: no

  tasks:
    - name : build docker
      become: yes
      become_user: root
      command : docker build -t "test-api" .
    - name: run docker
      become: yes
      become_user: root
      command : docker run -it -p 80:9001 --name api test-api

Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

Вы можете отправить переменную в playbook при выполнении команды ansible-playbook.Это то, что вы могли бы сделать:

 ansible-playbook my-playbook.yml -e"path='/var/lib/awx/project'"

Затем просто используйте его в плейбуке как обычную переменную: {{ path }}

Это полезно, если вы решитеизменить путь.Если у вас есть какие-либо вопросы по этому поводу, не стесняйтесь спрашивать в комментариях

0 голосов
/ 20 мая 2018

Вы можете использовать vars для определения переменных:

---
- hosts: all
  sudo: yes
  remote_user: ubuntu
  gather_facts: no
  vars:
    file_path: "<your file path>" 

  tasks:
    - name : build docker
      become: yes
      become_user: root
      command : docker build -t "test-api" .
    - name: run docker
      become: yes
      become_user: root
      command : docker run -it -p 80:9001 --name api test-api

И в вашей команде получите доступ к такой переменной, как "{{file_path}}"

...