首页 文章

将变量从项目传递到剧本ansible

提问于
浏览
1

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

我怎样才能做到这一点?

2 回答

  • 0

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

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

    然后只需在剧本中使用它作为正常变量: {{ path }}

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

  • 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
    

    并在您的命令中访问该变量,如“{}”

相关问题