我想通过对 Ansible 编排的关键服务进行功能测试来设置 CI 管道。我认为解决方案是:在 git 上,使用 Vagrant 或 Docker 推送启动目标 Linux 盒子,通过 SSH 连接到它,然后运行 Ansible playbook。
问题是一些变量是在清单中定义的,我不想有一个单独的清单来测试并在它们之间手动同步变量。同时,我必须告诉 Ansible 通过 SSH 连接到 127.0.0.1:2222(我知道这是通过 ansible_host 和 ansible_port 实现的),并且 主机组名称在 playbook 中定义我想测试。
提前致谢!
您可以简单地让 CI 运行 sed 命令来替换库存中的任何静态条目,这样您就不需要维护它的 2 个单独版本。
另一种解决方案是在运行时使用额外的变量覆盖 CI 中的变量。
这两种方法都意味着您根本不需要更改库存,并且还允许您传递秘密而不将它们存储在 git 中。