ansible - 使用 Gitlab CI 中的 Ansible 进行部署,处理密码

标签 ansible gitlab-ci

我正在尝试使用 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/

相关文章:

Ansible 删除字符串中的最后一个字符(如果它是数字)

ubuntu - 无法执行 'i686-linux-gnu-gcc' : No such file or directory

templates - 如何获得 Ansible 模板以在条件后支持新行

gitlab-ci - Gitlab Runner 删除 dist 文件夹

gitlab - 更改 gitlab runner 的克隆目录

使用 DevSecOps 将基础设施即代码的 Gitlab CI/CD 管道

docker - ansible 容器 docker.errors.DockerException : Error while fetching server API version

Ansible 变量的值不一致

gitlab - 如何在 CI 构建中访问多个存储库?

docker - 如何在一个阶段 Gitlab CI 中拥有多个可用的 docker 镜像