ansible命令应用基础

ansible命令应用基础:
Usage: ansible <host-pattern> [-f forks] [-m module_name][-a args]
        -f forks:启动的并发线程数
        -m module_name:要使用的模块
        -a args:模块特有的参数

常见模块:
ansible-doc -s 模块 --查看模块使用参数

command:命令模块,默认模块,用于在远程执行命令:
# ansible all -a ‘ping‘

  cron: 定时模块
    state:
        present,latest表示安装,absent表示卸载
# ansible web -m cron -a ‘minute="*/2" job="/bin/echo hello" name="test cron job"‘

minute表示分钟,hour表示小时,day表示日期,month表示月份,weekday表示周,如果没写则默认为 *

删除cron计划

ansible testhost -m cron -a "name=‘test cron‘ state=absent"

user: 定义用户模块
    name=: 指明创建的用户的名字
# ansible web -m user -a ‘name=mysql uid=306 system=yes group=mysql‘
    group=:    创建组
# ansible web -m group -a ‘name=mysql gid=306 system=yes‘

copy: 复制模块
    src=:定义本地源文件
    dest=:定义远程目标文件路径
    content=:取代src=,表示直接用此处指定的信息生成为目标文件内容:
# ansible all -m copy -a ‘src=/etc/fstab dest=/tmp/fstab.ansible owner=root mode=640‘

file:设定文件属性
path=:指定文件路径,可以使用name取dest来替换
创建文件的符号链接:
    src=:指明源文件
    path=:指明符号链接文件路径
# ansible all -m file -a ‘path=/tmp/fstab.link src=/tmp/fstab.ansible state=link‘

ping:测试指定主机是否能连接
# ansible all -m ‘ping‘

service:指定运行状态:
    enabled=:是否开机自动启动,取值为true或者false
    name=:服务名称
    state=:状态  取值有started,stopped,restarted

shell:在远程主机上运行命令
    尤其是用到管道等功能的复杂命令

script:将本地脚本复制到远程主机并运行之:
    注意:要适用相对路径指定脚本
# vim ansible.sh
# chmod +x ansible.sh 
# ansible all -m script -a ‘/root/ansible.sh‘

yum:安装程序包
    name=:指明要安装的程序包,可以带上版本号
    state=:present,latest表示安装,absent表示卸载
# ansible all -m yum -a "name=lrzsz "

setup:收集远程主机的facts
    每个被管理节点在接受并运行管理命令之前,会将自己主机相关信息,如操作系统版本,IP地址等报告给远程的ansible主机。
# ansible all -m setup

相关推荐