博客园  :: 首页  :: 管理

关于ansible常用模块-之服务端本地-script模块的使用

Posted on 2022-08-28 21:16  520_1351  阅读(403)  评论(0编辑  收藏  举报

背景:因为今天需要对一些的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