1、ansible-doc命令:获取模块列表,及模块使用格式;

ansible-doc -l:获取列表

ansible-doc -s module_name:获取指定模块的使用信息

2、ansible命令格式

ansible <host-pattern> [-f forks] [-m module_name] [-a args]

<host-pattern>指明管控主机,以模式形式表示或者直接给定 IP ,必须事先定义在文件中; all 设置所有
[-f forks]    每批管控多少主机,默认为 5 个主机一批次
[-m module_name]    何种模块管理操作,所有的操作都需要通过模块来指定
[-a args]

    模块专用参数; args 一般为 key=value 格式

注意:command模块的参数非为kv格式,而是直接给出要执行的命令即可;

 注意:

 <host-pattern> 默认读取 /etc/ansible/hosts ,也可以指明自定义文件路径

-iPATH, --inventory=PATH:指明使用的host inventory文件路径;

 

常用模块 (module_name) :

1) command:默认模块 ,可省略。在远程主机上进行操作命令

    -a  'COMMAND'

注意: comand 模块的参数非 key=value 格式,直接给出要执行的命令

    [root@localhost ~]# ansible all -m command -a  'ifconfig'

2)user:

    -a 'name=  state={present ( 创建 ) |absent ( 删除 ) }  force= ( 是否强制操作删除家目录 )   system=  uid=  shell= home='

    [root@localhost ~]# ansible all -m user -a 'name=ansible state=present'

3)group:

    -a 'name= state={present|absent}  gid=  system= ( 系统组 ) '

    [root@localhost ~]# ansible all -m group -a 'name=mygroup state=presentsystem=true'

4)cron:

    -a  'name= state=  minute=  hour= day=  month=  weekday= job='

    [root@localhost ~]# ansible all -m cron -a 'name='Time' state=presentminute='*/5'     job='/usr/sbin/ntpdate 172.168.0.1 &> /dev/null''

5)ping:

    无参数

    [root@localhost ~]# ansible all -m ping

6) file: 文件管理

    -a 'path=  mode=  owner= group= state={file|directory|link|hard|touch|absent}  src= (link ,链接至何处 ) '

    [root@localhost ~]# ansible all -m file -a 'path=/tmp/testdirstate=directory'

    [root@localhost ~]# ansible all -m file -a 'path=/tmp/test.txt state=touchmod=600 owner=user1'

7)copy:

    -a 'dest= ( 远程主机上路径 )   src= ( 本地主机路径 )   content= ( 直接指明内容 )  owner=          group=  mode='

    [root@localhosttmp]# ansible web -m copy -                                                a 'src=/etc/yum.repos.d/aliyun.repodest=/etc/yum.repos.d/'

8)template

    -a  'dest= src=\'#\'" content=  owner= group=  mode='

9)yum:

    -a 'name=  conf_file= ( 指明配置文件 )  state=    {present|latest|absent} enablerepo= disablerepo='        

    [root@localhost ~]# ansible all -m yum 'name=httpd state=present'

10)service:

    -a 'name= state={started|stopped|restarted} enabled= ( 是否开机自动启动 )  runlevel='

    [root@localhost ~]# ansible all -m service -a 'name=httpd state=started'

11)shell:

    -a 'COMMAND'    运行 shell 命令

[root@localhost ~]# ansible all -m shell -a echo "123456789" |passwd --stdin user1'

12)script:

    -a '/PATH/TO/SCRIPT' 运行脚本

    [root@localhost ~]# ansible all -m script -a '/tmp/a.sh'