Tag: ansible

使用Ansible在OS X上运行docker任务的问题

我只是想告诉Ansible在我的OS X机器上build立一个docker镜像,这是我得到的错误: $ ansible-playbook main.yml PLAY [localhost] ************************************************************** GATHERING FACTS *************************************************************** ok: [localhost] TASK: [Build docker image from dockerfiles] *********************************** failed: [localhost] => {"changed": false, "failed": true} msg: ConnectionError(ProtocolError('Connection aborted.', error(2, 'No such file or directory')),) FATAL: all hosts have already failed — aborting PLAY RECAP ******************************************************************** to retry, use: –limit @/Users/ronny/main.retry localhost : ok=1 […]

为什么ansible总是用模板中的单引号replace双引号?

我正在尝试使用Ansible模板生成Dockerfiles – 请参阅Ansible Galaxy和Github中的angular色源和模板 我需要genarate像标准的Dockerfile行: … VOLUME ["/etc/postgresql/9.4"] … 但是,当我把这个在input文件中: … instruction: CMD value: "[\"/etc/postgresql/{{postgresql_version}}\"]" … 它最终呈现为: … VOLUME ['/etc/postgresql/9.4'] … 我失去了“(这使得Dockerfiles无用) 任何帮助? 我怎样才能说服Jinja不能替代“with”?我试过了, “ 安全filter,甚至是{%raw%} – 它只是继续这样做! 更新:这里是如何重现这个问题: 从galaxy.ansible.com或Github获取peruncs.dockerangular色(链接在上面给出)用下面的内容编写一个简单的手册(说demo.yml )并运行: ansible-playbook -v demo.yml 。 -v选项将允许您查看生成的Dockerfile与破碎的内容所在的临时目录,因此您可以检查它。 生成Docker镜像对于成功并不重要,只要尝试获取Dockerfile即可。 – name: Build docker image hosts: localhost vars: – somevar: whatever – image_tag: "blabla/booboo" – docker_copy_files: [] – […]

Ansible,只有在用户存在的情况下才能将用户添加到组中

我正在编写一个剧本来设置开发环境并为项目build立pipe道。 我希望尽可能保持playbook与实际基础设施的分离,并且只依赖组,所以我可以使用不同的组限制器,在相同的命令下在本地虚拟机和裸机上设置pipe道。 现在的问题是,用本地的stream浪者箱子,我需要添加用户stream浪者到docker组,在那里裸机服务器一些任意的用户。 在剧本中处理这种变化的最佳做法是什么,尽量保持抽象? 我应该使用行为参数,主机variables,组variables,条件或事实收集这种东西? 保持剧本是完全抽象的,甚至是可能的或合理的,没有任何硬编码的价值和对任何环境的适应性?