草庐IT

$Ansible

全部标签

带有ansible等待数据库的docker

我尝试使用ansible部署docker。我有一个docker数据库容器,另一个容器中是我的Web应用程序,我尝试链接这两个容器。问题是数据库容器没有时间进行self配置,并且Web容器已经启动。我的ansible剧本看起来像:...-name:runmysqlindockercontainerdocker:image:"mysql:5.5"name:databaseenv:"MYSQL_ROOT_PASSWORD=password"state:running-name:runapplicationcontainersdocker:name:"application"image:"my

python - Ansible:维护 sudoer 列表的最佳实践

在documentation,有一个使用lineinfile模块编辑/etc/sudoers的例子。-lineinfile:"dest=/etc/sudoersstate=presentregexp='^%wheel'line='%wheelALL=(ALL)NOPASSWD:ALL'"感觉有点骇人听闻。我认为user模块中有一些东西可以处理这个问题,但似乎没有任何选项。在/etc/sudoers中添加和删除用户的最佳做法是什么? 最佳答案 该行实际上并未将用户添加到sudoers,只是确保wheel组可以为所有命令使用无密码sud

python - 在ansible中合并字典

我目前正在构建一个使用ansible安装PHP的角色,但在合并字典时遇到了一些困难。我已经尝试了几种方法来做到这一点,但我无法让它像我想要的那样工作:#Avarsfile:my_default_values:key=valuemy_values:my_key=my_value#Inaplaybook,Icreateatasktoattemptmergingthe#twodictionaries(whichdoesn'twork):-debug:msg="{{item.key}}={{item.value}}"with_dict:my_default_values+my_values#I

python - 意外异常 : name 'basestring' is not defined when invoking ansible2

我正在尝试执行ansible2commnads...当我这样做时:ansible-playbook-vvv-imy/inventorymy/playbook.yml我明白了:UnexpectedException:name'basestring'isnotdefinedthefulltracebackwas:Traceback(mostrecentcalllast):File"/usr/local/bin/ansible-playbook",line85,insys.exit(cli.run())File"/usr/local/lib/python3.4/site-packages/a

python - Ansible 创建一个 virtualenv

如何使用ansible为特定的python版本创建virtualenv。ansible标准库中有命令吗?我想要类似的东西:-virtualenv:dest=venvpython_version:/usr/bin/python3 最佳答案 在指定virtualenv_command时,我有时会遇到一些不稳定的行为。(例如:在我的virtualenv中获取python2.7可执行文件,即使我指定使用virtualenv-3.4运行命令。如果您遇到该问题,您可以使用command手动创建virtualenv模块:-name:Manuall

ansible基础使用

1简述2ansible特点2.1工作原理和架构图3anaible任务执行模式3.1ansible任务执行模式3.2ansible执行流程4安装和配置4.1安装4.2ansible程序结构4.3ansible配置文件查找顺序4.3.1配置文件常见参数4.4ansibleinventory:定义主机清单4.4.1inventory是什么4.4.2测试主机清单里面的主机列表连通性4.4.3请注意ping和ssh4.4.4在主机清单中增加用户名和密码4.4.5ansible配置公私钥5ansible常用指令5.1ansible命令详解5.2ansible命令执行过程6Ad-Hoc点对点模式6.1执行状

mysql - Ansible 幂等 MySQL 安装 Playbook

我想在AWS上设置一个MySQL服务器,使用Ansible进行配置管理。我正在使用来自Amazon(ami-3275ee5b)的默认AMI,它使用yum进行包管理。当执行下面的剧本时,一切顺利。但是当我第二次运行它时,Configuretherootcredentials任务失败,因为MySQL的旧密码不再匹配,因为它在我上次运行此Playbook时已更新。这使得Playbook不是幂等的,我不喜欢这样。我希望能够多次运行Playbook。-hosts:staging_mysqluser:ec2-usersudo:yestasks:-name:InstallMySQLaction:yu

ansible 云计算 自动化

四台服务器:ansible:管理端node01node02node03:被管理节点1)安装[root@ansible~]#yuminstallansible-y2)查看帮助[root@ansible~]#ansible-doc-l|wc-l  #查看模块数量[root@ansible~]#ansible-doc-syum    #查看yum模块的参数[root@ansible~]#ansible-docyum     #查看相关帮助信息(搜索/EXAMPLES)[root@ansible~]#ansiblenode03-msetup #获取对端节点的内置相关变量(主机名ip地址等)3)如何查看

linux - 仅当变量包含特定字符串时才运行 Ansible 任务

我有多个任务取决于variable1的值。我想检查该值是否在{{variable1}}中,但出现错误:-name:dosomethingwhenthevalueinvariable1command:when:"'value'in{{variable1}}"我正在使用ansible2.0.2 最佳答案 如果variable1是一个字符串,并且您正在其中搜索一个子字符串,这应该可以工作:when:'"value"invariable1'如果variable1是一个数组或字典,则in将搜索exact字符串作为其项目之一。

linux - 如何使用 Ansible 等待服务器重启?

我正在尝试重新启动服务器,然后等待,使用这个:-name:Restartservershell:reboot-name:Waitforservertorestartwait_for:port=22delay=1timeout=300但我收到此错误:TASK:[iptables|Waitforservertorestart]*********************************fatal:[example.com]=>failedtotransferfileto/root/.ansible/tmp/ansible-tmp-1401138291.69-2220450175627