Ansible常用模块介绍
Posted liming-linux-python
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ansible常用模块介绍相关的知识,希望对你有一定的参考价值。
ansible < HOST-PATTERN > [ -f FORKS ] [ -m MOUDULE ] [ -a "ARGS" ] [ -o ]
MOUDULE:
ping:获取ping状态
no args,默认返回pong
-a "data=STRING":返回指定字符串,但当STRING为crash时,会引起模块异常
cron:管理计划任务
-a "name=STRING minute= hour= day= month= weekday= special_time={reboot|yearly|annually|monthly|weekly|daily|hourly} job={CMD|SCRIPT} user=USER state={present|absent} backup={yes|no}"
删除:指定 name=STRING、state=absent 即可
special_time={reboot|yearly|annually|monthly|weekly|daily|hourly}:指定特殊时间
shell:执行SHELL命令,完美支持
-a "COMMAND"
script:在远程主机执行本地脚本
-a ‘/PATH/TO/SCRIPT_FILE‘
command:执行简单命令,不支持管道、变量等
-a "COMMAND"
user:管理用户
-a "name=NAME state={present|absent} system={yes|no} uid=UID create_home={yes|no} home=HOME group=GROUP remove={yes|no} shell=SHELL"
remove:当 state=absent、remove=yes 时,等价于userdel -r
group:管理用户组
-a "name=NAME gid=GID state={present|absent} system={yes|no}"
pip:Python包管理
-a "name=PKG_NAME state={absent|forcereinstall|latest|present}"
apt:Ubuntu包管理
-a "update_cache={yes|no} name=PKG_NAME state={absent|build-dep|latest|present}"
yum:CentOS包管理
-a "name=NAME1[,NAME2,...] state={present|absent}"
sysvinit:管理 SysV init 服务
-a "name=NAME state={started|stopped|running|restarted|reloaded} enabled={yes|no}"
service:管理软件服务状态
-a "name=NAME state={started|stopped|running|restarted|reloaded} enabled={yes|no}"
file:管理文件
-a "state={file|link|hard|touch|absent|directory} dest=/PATH/TO/SOMEFILE mode=MODE owner=USER group=GROUP src=/PATH/FROM/SOMEFILE dest=/PATH/TO/SOMEFILE force={yes|no}"
state={file|link|hard|touch|absent|directory}:
file:即使文件不存在,也不会创建该文件
link:创建软链接
hard:创建硬链接
touch:如果文件不存在,则创建该文件;如果文件已存在,则更新该文件的最后访问、修改时间
absent:删除文件
directory:如果目录不存在,就创建目录
src=/PATH/FROM/SOMEFILE:指定链接源文件,仅用于state=link情况
dest=/PATH/TO/SOMEFILE:指定链接文件,仅用于state=link情况
force={yes|no}:强制创建链接文件(如:源文件不存在),仅用于state=link情况
fetch:获取文件
-a ‘src=/PATH/FROM/SOMEFILE dest=/PATH/TO/[SOMEFILE]‘
copy:分发文件
-a "src=/PATH/FTOM/SOMEFILE content="CONTENT" dest=/PATH/TO/[SOMEFILE] mode=MODE owner=USER group=GROUP backup={yes|no} force={yes|no} follow={yes|no}"
content="CONTENT":直接指定文件内容,不能与src参数同时使用
force={yes|no}:
yes:如果目标主机包含该文件,但内容不同,则强制覆盖(默认为yes)
no:只有当目标主机的目标位置不存在该文件时,才复制
follow={yes|no}:
yes:如果源文件为链接文件的话,则复制链接文件指向的源文件
no:默认为no
setup:获取facts
no args
example:
-a ‘filter=ansible_eth[0-2]‘
-a ‘filter=ansible_*_mb‘
-a ‘filter=ansible_distribution_*‘
Extra:
将主机facts输出到指定目录下的以主机命名的文件中:ansible HOST -m setup --tree /PATH/TO/SOME_DIR/
template:模板文件管理
-a ‘src=/PATH/FROM/SOMEFILE.j2 dest=/PATH/TO/[SOMEFILE] owner=USER group=GROUP mode=MODE backup=yes‘
以上是关于Ansible常用模块介绍的主要内容,如果未能解决你的问题,请参考以下文章