Articles of ansible

总是触发Ansible中的处理程序执行

我使用Ansible来configuration我的开发服务器。 我希望它总是为我开始一些服务。 我有这样的处理程序,但触发处理程序执行没有条件的最好方法是什么,例如使其始终工作? 像这样的东西: tasks: – name: Trigger handler run_handler: name=nginx-restart

Ansible坚持收集事实

我有一些奇怪的问题,我的可能的盒子(stream浪汉)。 一切工作昨天和我的手册工作正常。 今天,“收集事实”真的很难说吗? 这里是详细的输出: <5.xxx.xxx.xxx> ESTABLISH CONNECTION FOR USER: deploy <5.xxx.xxx.xxx> REMOTE_MODULE setup <5.xxx.xxx.xxx> EXEC ['ssh', '-C', '-tt', '-vvv', '-o', 'ControlMaster=auto', '- o', 'ControlPersist=60s', '-o', 'ControlPath=/home/vagrant/.ansible/cp/ansible-s sh-%h-%p-%r', '-o', 'Port=2221', '-o', 'KbdInteractiveAuthentication=no', '-o', 'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', '-o ', 'PasswordAuthentication=no', '-o', 'User=deploy', '-o', 'ConnectTimeout=10', '5.xxx.xxx.xxx', "/bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1411372677 .18-251130781588968 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1411372677.18-2 51130781588968 && echo $HOME/.ansible/tmp/ansible-tmp-1411372677.18-251130781588 […]

如何使用Ansible访问不同主机的主机variables?

假设有一个收集一些数据的主机,它在一个组[collectors] 。 [reporters]团里也有主持人。 所以我想为记者设置一个variablesgroups['collectors'][0] ip地址。 但是设立记者的手册不在[collectors]团体中运行,所以不收集这位主持人的事实。 有没有办法不硬编码的IP地址?

使用ansible将用户添加到其他组

如何将用户添加到额外的组中? 我不想要现有的组被replace,只能将用户添加到sudo组。

Ansible:仅在目标文件不存在时复制模板

我正在使用Ansible 1.6.6来configuration我的机器。 我的手册中有一个模板任务 ,用于从Jinja2模板创build目标文件: tasks: – template: src=somefile.j2 dest=/etc/somefile.conf 如果它已经存在,我不想取代somefile.conf 。 Ansible有可能吗? 如果是这样,怎么样?

Ansible:仅在指定标签时才执行任务

Ansible标签可以用来只运行任务/angular色的一个子集。 这意味着默认情况下所有的任务都被执行,我们只能阻止一些任务的执行。 我们是否可以限制只有在指定了“foo”标签时才能执行的任务? 我们可以在任务部分使用当前标签吗?

我怎样才能安全地使用每个主机密码来实现?

我想用pipe理一组现有的服务器。 我创build了一个ansible_hosts文件,并使用仅针对单个主机的命令成功(使用-K选项)进行了testing ansible -i ansible_hosts host1 –sudo -K # + commands … 我现在的问题是,每个主机上的用户密码是不同的,但我找不到在Ansible中处理这个问题的方法。 使用-K ,我只提示一个单一的sudo密码,然后似乎在没有提示的情况下尝试所有后续的主机: host1 | … host2 | FAILED => Incorrect sudo password host3 | FAILED => Incorrect sudo password host4 | FAILED => Incorrect sudo password host5 | FAILED => Incorrect sudo password 迄今为止的研究: 一个StackOverflow问题与一个不正确的答案(“使用-K ”)和作者说“发现我需要无密码的sudo” Ansible文档中提到 “使用无密码sudo使事情更容易自动化,但不是必需的” 。 (重点是我的) 这个安全的StackExchange问​​题 ,它把它看作NOPASSWD是必需的 […]

如何看到命令的标准输出?

我如何看到标准输出剧本命令? -v只显示可靠的输出,而不是单个命令。 如果我能够立即想出如何做到这一点,那将是非常好的,所以如果某件事失败或挂起,我可以看出原因。 例如 – name: print to stdout action: command echo "hello" 会打印 TASK: [print variable] ******************************************************** hello