查看某个模块的帮助
ansible-doc -s 模块名称,例如:
1 | ansible-doc -s group |
1 | ansible -i命令用于指定自定义的外部hosts文件 |
command: 这个是默认模块,命令不加 -m xx模块的时候,默认会使用command模块来执行指令
1
ansible local -a 'whoami'
cron: 定时任务模块,可以指定一个世界去执行某个任务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19- name: Manage cron.d and crontab entries.
action: cron
backup # 如果设置,在修改之前会创建crontab的备份。 备份的位置由此模块在`backup_file'变量中返回。
cron_file # 如果指定,则使用此文件而不是单个用户的crontab。 如果这是一个相对路径,它将被解释为/etc/cron.d。 (如果是绝对的,它通常是/etc/crontab)。 要使用`cron_file'参数,你也必须指定'user'。
day # 每个月中的某天 ( 1-31, *, */2, etc )
disabled # 当state = present的时候,可以在cron中禁用当前job。
env # 管理crontab的环境变量,新变量会从crontab顶部添加
hour # 任务执行时间:时 ( 0-23, *, */2, etc )
insertafter # 与'state = present'和'env'一起使用。 如果指定,新的环境变量将在声明指定的环境变量后插入。
insertbefore # 与'state = present'和'env'一起使用。 如果指定,新的环境变量将在声明指定的环境变量前插入
job # 要执行的命令,或者如果设置了env,则为环境变量的值。 state =present则为必需声明job。
minute # 任务执行时间:分钟( 0-59, *, */2, etc )
month # 任务执行时间:月 ( 1-12, *, */2, etc )
name # crontab条目的描述,或者如果设置了env,则为环境变量的名称。 如果state=absent则必配置。 请注意,如果名称未设置且state=present,则将放弃已有条目,始终创建一个新的crontab条目。
reboot # 弃用了,使用special_time更好,表示重启后执行
special_time # 特殊时间规格昵称。
state # 是否确保工作或环境变量存在或不存在。
user # crontab应该修改的具体用户。
weekday # 任务执行时间:周几 ( 0-6 for Sunday-Saturday, *, etc )举个例子:
每10分钟输出一次 hello
1
2
3
4
5ansible 127.0.0.1 -m cron -a 'minute="*/10" job="/bin/echo My Name Is Garywu. >>/root/echo.txt" name="test ansible-cron"'
crontab -l 查看
tailf /var/log/cron 查看cron任务运行情况
tailf /root/echo.txt 查看内容实时输出1
2
3
4
5# 移除定时任务
ansible local -m cron -a 'minute="*/10" job="/bin/echo My Name Is Garywu. >>/root/echo.txt" name="test ansible-cron" state=absent'
absent翻译:缺席不存在的
present翻译:出现的,存在的查看某个模块的帮助
ansible-doc -s 模块名称,例如:
1
2
3
4
5
6
7
8ansible-doc -s group
- name: Add or remove groups
action: group
gid # Optional `GID' to set for the group.
name= # Name of the group to manage.
state # Whether the group should be present or not on the remote host.
system # If `yes', indicates that the group created is a system group.user操作用户
1
2
3
4
5# 创建用户
ansible local -m user -a 'name="garywu" shell="/bin/bash" groups="test" append=yes'
# 强制删除用户
ansible local -m user -a 'name="zing1" state=absent remove=yes'1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20参数说明:
action: user
comment # 用户的描述信息
createhom # 是否创建家目录
force # 在使用`state=absent'是, 行为与`userdel --force'一致.
group # 指定基本组
groups # 指定附加组,如果指定为('groups=')表示删除所有组
home # 指定用户家目录
login_class #可以设置用户的登录类 FreeBSD, OpenBSD and NetBSD系统.
move_home # 如果设置为`home='时, 试图将用户主目录移动到指定的目录
name= # 指定用户名
non_unique # 该选项允许改变非唯一的用户ID值
password # 指定用户密码
remove # 在使用 `state=absent'时, 行为是与 `userdel --remove'一致.
shell # 指定默认shell
state #设置帐号状态,不指定为创建,指定值为absent表示删除
system # 当创建一个用户,设置这个用户是系统用户。这个设置不能更改现有用户。
uid #指定用户的uid
update_password # 更新用户密码
expires #指明密码的过期时间group操作用户组
1
2
3
4
5# 创建组
ansible local -m group -a 'name="mysql" gid=306 system=yes'
# 删除组
ansible 127.0.0.1 -m group -a 'name="test" state=absent system=no'copy复制文件
1
2
3
4
5
6
7# 将本地源文件 拷贝到远程主机上
ansible 127.0.0.1 -m copy -a 'src=/home/源.txt dest=/opt/目的.txt owner="root" mode=640'
src=本地目标(可以是文件夹)
dest=远程目标(可以是文件夹)
owner=远程文件所有者
mode=指定远程文件权限Ping 检测主机存活
1
ansible -i hosts hue -m ping # ping所有主机
setup模块
1
# 获取指定主机的facts, facts就是变量,内建变量 。每个主机的各种信息,cpu颗数、内存大小等。会存在facts中的某个变量中。
管理selinux
1
2#关闭selinux
ansible -i hosts all -m selinux -a 'state=disabled'script模块
1
ansible -i hosts all -m script -a '/etc/init.d/zabbix'
shell 模块
1
2#运行命令
ansible -i lf_host hue -m shell -a "yum install -y ganglia-gmond" -s
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2017/07/11/Ansible常用模块/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!