我正在尝试使用 Gitlab CI 和 Ansible 实现“无密码”部署工作流程。 有些步骤确实需要密码(我已经尽可能使用 SSH key ),因此我将这些密码存储在 Ansible Vault 中。 。接下来,我只需要在运行 playbook 时提供 Vault 密码。
但是我怎样才能将其与 Gitlab CI 完美集成呢?
我可以注册一个 gitlab-ci 作业(或者作业仅适合构建?),它只是运行以某种方式提供保管库密码的剧本?!如果没有纯文本密码,这可以实现吗?!
此外,如果有人能给我提供一些 Material 来展示我们如何使用 Ansible 部署构建,我会非常高兴。正如您所注意到的,我确实没有发现任何相关内容。
最佳答案
您可以在 GitLab CI 中设置一个环境变量来保存 Ansible Vault 密码。在我的示例中,我将其称为 $ANSIBLE_VAULT_PASSWORD
这是 .gitlab-ci.yml 的示例:
deploy:
only:
- master
script:
- echo $ANSIBLE_VAULT_PASSWORD > .vault_password.txt
- ansible-playbook -i ansible/staging.yml --vault-password-file .vault_password.txt
希望这个技巧能帮到你。
关于ansible - 使用 Gitlab CI 中的 Ansible 进行部署,处理密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32588927/