具有环境变量的 Ansible 剧本
Ansible playbook with environment variable
我试图设置一个 gitlab 管道来创建一个 rabbitmq 独立机器,我使用 rockandska/ansible-role-rabbitmq 来做到这一点。但是在 defaults/main.yaml 中需要创建一些带密码的用户,但我不想在我的 git 存储库中提交密码。所以我需要从 gitlab ci/cd 环境变量中获取传递值。
但我没有得到这个,我试图在
中创建一个文件
vars/main.yml
---
rabbitmq_admin_pass: ${RABBITMQ_PASSWORD}
在 defaults/main.yml 中我使用
rabbitmq_users_to_create:
- user: admin
password: "{{ rabbitmq_admin_pass }}"
vhost: /
configure_priv: .*
read_priv: .*
write_priv: .*
tags: administrator
但不起作用,它创建用户但使用“${RABBITMQ_PASSWORD}”传递 :D
ps。
我已经输入了 .gitlab-ci.yml 变量指令,就像这样:
variables:
ANSIBLE_BECOME_PASSWORD: ${ANSIBLE_BECOME_PASSWORD}
RABBITMQ_PASSWORD: ${RABBITMQ_PASSWORD}
有人知道这样做吗?
谢谢!
当 运行 ansible-playbook
.
时,您可以将环境变量作为“extra_vars”传递
ansible-playbook ... --extra-vars "rabbitmq_admin_pass=${RABBITMQ_PASSWORD}"
虽然这会在命令行上打印出秘密。
另一种可能性是使用 lookup plugin。
password: "{{ lookup('env','RABBITMQ_PASSWORD') }}
我试图设置一个 gitlab 管道来创建一个 rabbitmq 独立机器,我使用 rockandska/ansible-role-rabbitmq 来做到这一点。但是在 defaults/main.yaml 中需要创建一些带密码的用户,但我不想在我的 git 存储库中提交密码。所以我需要从 gitlab ci/cd 环境变量中获取传递值。
但我没有得到这个,我试图在
中创建一个文件vars/main.yml
---
rabbitmq_admin_pass: ${RABBITMQ_PASSWORD}
在 defaults/main.yml 中我使用
rabbitmq_users_to_create:
- user: admin
password: "{{ rabbitmq_admin_pass }}"
vhost: /
configure_priv: .*
read_priv: .*
write_priv: .*
tags: administrator
但不起作用,它创建用户但使用“${RABBITMQ_PASSWORD}”传递 :D
ps。 我已经输入了 .gitlab-ci.yml 变量指令,就像这样:
variables:
ANSIBLE_BECOME_PASSWORD: ${ANSIBLE_BECOME_PASSWORD}
RABBITMQ_PASSWORD: ${RABBITMQ_PASSWORD}
有人知道这样做吗?
谢谢!
当 运行 ansible-playbook
.
ansible-playbook ... --extra-vars "rabbitmq_admin_pass=${RABBITMQ_PASSWORD}"
虽然这会在命令行上打印出秘密。
另一种可能性是使用 lookup plugin。
password: "{{ lookup('env','RABBITMQ_PASSWORD') }}