背景:因为今天需要对一些的ansible客户端主机的/etc/sudoers 文件进行更新
于是想到了最快的就是使用ansible的script模块,过程如下:
1、先在服务端,创建一个目录,分别用于创建一会需要用到的hosts文件及脚本文件
2、hosts文件内容如下,其中[xx]-格式表示用来对主机进行分组
[web-servers] 1.1.1.1 2.2.2.2 [db-servers] 3.3.3.3 4.4.4.4
3、 创建一个shell-script 文件,名称 sudo_update.sh,内容如下:
#!/bin/bash #url:https://www.cnblogs.com/5201351
# sudo sed -i "s&^.*ansible.*$&ansible ALL=(ALL) NOPASSWD: /usr/bin/passwd --stdin [A-Za-z0-9]*, /usr/bin/cat * &" /etc/sudoers
4、当ansible的环境是正常的情况下,就可以直接在ansible服务端主机上执行如下命令了
# 仅更新web-servers组的主机 ansible -i hosts web-servers -m script -a "sudo_update.sh" # 仅更新db-servers组的主机 ansible db-servers -i hosts -m script -a "sudo_update.sh" # 更新全部的主机信息 ansible -i hosts all -m script -a "sudo_update.sh"
参数说明:-i 指定 inventory-file,-m 指定模块名称, -a指定MODULE_ARGS,即指定模块的参数
注:使用-i只指定hosts文件是不行的,还需要指定参数定位到相应的主机
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/16633701.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!