草庐IT

linux - Ansible:没有密码的sudo

我想在没有sudo密码的情况下使用用户sa1运行ansible:第一次成功:[root@centos1cp]#ansiblecent2-mshell-a"sudoyum-yinstallhttpd"cent2|SUCCESS|rc=0>>第二次失败:[root@centos1cp]#ansiblecent2-s-myum-a"name=httpdstate=absent"cent2|FAILED!=>{"changed":false,"failed":true,"module_stderr":"","module_stdout":"sudo:apasswordisrequired\r\

arrays - 如何将命令输出存储到 Ansible 中的数组中?

本质上,我希望能够使用ansible在Linux中处理“通配rune件名”。本质上,这意味着使用ls命令加上文件名的一部分后跟一个“*”,这样它将只列出某些文件。但是,我无法将输出正确地存储在一个变量中,因为可能会返回多个文件名。因此,我希望能够存储这些结果,而不管在一项任务期间数组中可能有多少。然后我希望能够在以后的任务中从数组中检索所有结果。此外,由于我不知道可能会返回多少文件,我无法为每个文件名执行任务,而数组更有意义。这背后的原因是随机存储位置中的文件经常更改,但它们总是具有相同的前半部分。他们名字的后半部分是随机的,我根本不想将其硬编码到ansible中。我完全不确定如何在a

linux - 如何使用 Ansible 添加 PPA 存储库?

我正在尝试向服务器添加一个新的存储库,以便我可以通过Ansible安装Java。不幸的是,每当我尝试运行剧本时,它都会因为GPG错误而失败。有人可以解释这里出了什么问题以及我需要做什么才能解决这个问题吗?我正在使用Ansible1.7.2,目前只连接到本地主机。我有一个非常简单的Playbook,如下所示:-hosts:hometasks:-name:Addrepositoriesapt_repository:repo='ppa:webupd8team/java'state=present当我尝试执行它时,出现以下错误:sal@bobnit:~/Workspace$ansible-pl

ansible常见概念总结

目录1、play和playbook和role2、幂等性3、清单4、配置文件(ansible.cfg)5、变量5.1在playbook中使用变量:5.2在playbook中使用变量文件: 6、事实7、循环8、处理程序9、块10、动态清单文件11、角色1、play和playbook和rolerole由多个playbook组成,playbook由多个play组成,play由多个task组成。play是由yaml格式的文本文件。playbook中play和任务列出的顺序很重要,因为ansible会按照相同的顺序运行它们简单的playbook(一个play):简单的playbook(两个play):pl

linux - ansible 重启 2.1.1.0 失败

我一直在尝试创建一个非常简单的Ansible剧本,它将重启服务器并等待它恢复。我过去在Ansible1.9上有过一个有效的,但我最近升级到2.1.1.0但失败了。我正在重启的主机名为idm,IP为192.168.200.23。剧本正在使用命令从我的主机192.168.200.1运行$ansible-playbookreboot.yml-vvvv这是我正在使用的剧本----hosts:idmtasks:-name:Restartserverbecome:yesshell:sleep2&&/sbin/shutdown-rnow"Ansiblesystempackageupgraded"-n

linux - Ansible权限问题

我正在尝试将当前用户添加到系统中的一个组,然后执行一个需要该组权限的命令。我的剧本是这样的:-name:AddthisusertoRVMgroupsudo:trueuser:state=presentname=vagrantappend=yesgroups=rvmgroup=rvm-name:InstallRuby1.9.3command:rvminstallruby-1.9.3-p448creates=/usr/local/rvm/bin/ruby-1.9.3-p448问题是所有这些都发生在同一个shell中。vagrant的shell还没有用新的组更新。是否有一种干净的方法来刷新用

linux - 如何创建 Ansible 剧本来获取远程主机的操作系统版本?

我是ansible的新手。我有一个要求,要求我为AWS中托管的450多个Linux服务器提取操作系统版本。AWS不提供此功能——它建议我们从puppet或chef那里获取它。我创建了一些无法运行的简单剧本----hosts:testmachineuser:ec2-usersudo:yestasks:-name:Updateallpackagestolatestyum:name=*state=latesttask:-name:obtainOSversionshell:Redhat-release剧本应该输出一个包含主机名和操作系统版本的文本文件。对此的任何见解将不胜感激。

linux - 这是在 ansible 的 conf 文件中进行配置更改的最佳方法

最初我使用makefile在linux中部署我的应用程序。我有各种sed命令来替换PHP上传文件大小、帖子大小、日志文件位置等变量。现在我正在转向ansible。我知道我可以复制文件,但我如何更改conf文件?就像我只想更改upload_filesize=50M参数一样。我不想复制整个conf文件,然后用我的文件替换。有时它只是一行的改变。有没有更好的方法来编辑ansible中的配置文件? 最佳答案 如果它是一个INI文件,那么ini_file模块(http://docs.ansible.com/ini_file_module.ht

linux - 使用 Ansible provisioner 重启 Vagrant 机器时同步文件夹丢失

Vagrant使用VirtualBox创建一个开发环境,然后使用ansible提供它。作为配置的一部分,ansible运行重启,然后等待SSH恢复。这按预期工作,但因为vagrant机器不是从“vagrantup”命令启动的,所以当盒子从重启中恢复时,同步文件夹没有正确安装。运行“vagrantreload”修复机器并再次挂载共享。有没有办法告诉vagrant重新加载服务器或执行手动重启后vagrant会做的所有事情?当SSH-ed进入vagrantbox时简单地运行“sudoreboot”也会产生同样的问题。 最佳答案 Vagra

linux - Ansible:检查服务是否正在监听特定端口

您将如何使用Ansible确认服务是否在特定端口上运行?例如:Apache是否在端口80上运行?MySQL是否正在监听端口3912?Tomcat是否正在监听端口8080?我知道有service和wait_for命令,它们分别检查服务是否正在运行以及端口是否正在使用-但我没有找到到目前为止检查特定服务是否正在监听特定端口的任何内容。service和wait_for将指示有一个服务和一个端口,但不能保证该端口被该特定服务占用——它可能被任何东西占用。wait_for,据我理解,只是检查它是否被使用。wait_for上有一个regex_search参数,它提到在套接字连接中搜索特定字符串,但