Rus*_*kar 3 ansible gitlab-ci infrastructure-as-code cicd
我想使用 Ansible playbook 在 docker 容器内设置远程环境。该剧本将从 gitlab-ci 运行,其中包含我在 Gitlab CI/CD 配置中设置的变量。我怎样才能做到这一点?
这是我想使用的模板。如何设置CI/CD 变量中的user_id
和?password
tasks:
- name: Run XYZ Container
docker_container:
name: XYZ
restart_policy: on-failure
image: xxxxxxxxxxx
container_default_behavior: "compatibility"
env:
USER_ID= $USER_ID
PASSWORD= $PASSWORD
Run Code Online (Sandbox Code Playgroud)
由于 gitlab-ci 变量只是您作业中的环境变量,并且由于您的 ansible 控制器在该作业内运行,因此您可以使用查找env
从控制器中读取它们。
请注意:
docker_container
的env
参数需要一个字典,而不是一个新行分隔的 bash 字符串,如示例中的环境变量定义。assert
orfail
任务),或者使用默认值以防未定义。我的示例使用默认值。有关提供默认值的更多信息,您可以查看ansible 文档(以及原始 jinja2 文档以了解它d
是 的别名default
)tasks:
- name: Run XYZ Container
docker_container:
name: XYZ
restart_policy: on-failure
image: xxxxxxxxxxx
container_default_behavior: "compatibility"
env:
USER_ID: "{{ lookup('env', 'USER_ID') | d('defaultuser', true) }}"
PASSWORD: "{{ lookup('env', 'PASSWORD') | d('defaultpass', true) }}"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7438 次 |
最近记录: |