我正在使用 Gitlab CI 运行程序来执行 Ansible playbook,但在将 Gitlab 中定义的变量推送到 Ansible 中时遇到问题。我知道我可以用来lookup('env','var')
获取变量,但这似乎在 yml 库存文件中不起作用。例如:
# List everything in vCenter
- ansible-inventory --list -i vSphere/vxrail.vmware.yml
Run Code Online (Sandbox Code Playgroud)
vxrail.vmware.yml
plugin: vmware_vm_inventory
strict: False
hostname: XXX.XXX.XXX.XXX
username: administrator@vsphere.local
# This isn't working
password: lookup('env','vCenterAdminPass')
validate_certs: False
with_tags: True
Run Code Online (Sandbox Code Playgroud)
如何获取传入的变量?
小智 6
让使用--extra-vars
(或-e
) 传递变量,请参阅https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#passing-variables-on-the-command-line
下面的代码片段显示了如何将额外的变量传递到我的 Gitlab CI 脚本部分。
deploy_ec2:
stage: deploy_ec2
script:
- ansible-playbook cuong-conf/main.yml --limit="${CI_COMMIT_REF_NAME}" -e "env=${CI_COMMIT_REF_NAME} app=${CI_PROJECT_NAME} method=${CI_JOB_STAGE} app_path=${APPLICATION_PATH}"
only:
- staging
- demo
- production
tags:
- gitlab_runner
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7132 次 |
最近记录: |