首页 > 解决方案 > 将变量从项目传递到剧本 ansible

问题描述

这是我的设置。我已经创建了一个 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

我怎样才能做到这一点?

标签: ansibleansible-tower

解决方案


您可以使用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 }}”


推荐阅读