1

这是我的设置。我已经创建了一个 scm 类型的 git 项目,并在那里有我的代码。我的剧本也在那个存储库中,它包含 docker build 和 run 命令。为了构建我的 docker,我应该在我的 docker 文件所在的位置执行构建命令(在这种情况下,ansible 项目克隆 /var/lib/awx/project)。我想找到通往我的 ansible playbook 的路径。

我的剧本如下所示:

---
- 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

我怎样才能做到这一点?

4

2 回答 2

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 }}”

于 2018-05-20T11:25:40.130 回答
0

您可以在执行ansible-playbook命令时将变量发送到 playbook。这是你可以做的:

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

然后在剧本中将其用作普通变量:{{ path }}

如果您决定更改路径,这将很有用。如果您对此有任何疑问,请随时在评论中提问

于 2018-05-20T14:01:34.503 回答