这是我的设置。我创建了一个scm类型的git项目,并在那里有我的代码。我的剧本也在该存储库中,它包含docker build和run命令。为了构建我的docker,我应该执行我的docker文件所在的构建命令(在这种情况下,ansible项目克隆/ var / lib / awx / project)。我希望通过我的ansible剧本。
我的剧本看起来像这样:
---
- 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
我怎样才能做到这一点?
答案 0 :(得分:0)
您可以使用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}}”
答案 1 :(得分:0)
执行ansible-playbook
命令时,可以将变量发送到playbook。这就是你能做的:
ansible-playbook my-playbook.yml -e"path='/var/lib/awx/project'"
然后只需在剧本中使用它作为正常变量:{{ path }}
如果您决定更改路径,这将非常有用。如果您对此有任何疑问,请随时在评论中提问