ansible可以使用命令行方式进行自动化管理,基本语法如下:
ansible 主机名 -m 模块名称 -a 模块特有参数
ansible的命令行管理工具都是由一系列模块、参数所支持的,可以在命令后面加上-h或--help获取帮助。如使用ansible-doc -h或者ansible-doc --help查看其帮助信息
ansible-doc是用来查看模块帮助信息的工具,最主要的选项 -l用来列出可使用的模块, -s用来列出某个模块的描述信息和使用示例。
以下是我列出yum模块的描述信息和操作动作:
[root@promote ~]# ansible-doc -s yum
- name: Manages packages with the `yum' package manager
yum:
allow_downgrade: # Specify if the named package and version is
allowed to
downgrade a maybe
already installed
higher version of
that package.
Note that setting
allow_downgrade=T
rue can make this
module behave in
a non-idempotent
way.
Ansible自带了很多模块,能够下发执行Ansible的各种管理任务。下面我列出一些较为常用的模块。
1 command模块
ansible管理工具使用-m选项来指定使用模块,默认使用command模块,即-m选项省略时会运行次模块,用于在被管理主机上运行命令
[root@promote ~]# ansible-doc -s command
- name: Executes a command on a remote node
command:
argv: # Allows the user to provide the command as a list
vs. a string.
Only the string
or the list form
can be provided,
not both. One or
the other must be
provided.
chdir: # Change into this directory before running the
command.
creates: # A filename or (since 2.0) glob pattern. If it
already exists,
this step *won't*
be run.
ansible-doc -l #列出所有已安装的模块 注:按q退出
ansible-doc -s yum #-s列出yum模块描述信息和操作动作
ansible 192.168.199.130 -m command -a 'date' #指定IP执行date
ansible web -m command -a 'date' #指定分类执行date
ansible all -m command -a 'date' #所有hosts主机执行date
ansible all -a 'ls /' #如果不加-m模块,则默认运行command模块
下面我在ansible服务器上执行‘date’命令来查看被管理主机的时间:
[root@promote ~]# ansible all -a 'date'
192.168.199.131 | CHANGED | rc=0 >>
2018年 10月 22日 星期一 22:35:53 CST
192.168.199.130 | CHANGED | rc=0 >>
2018年 10月 22日 星期一 22:35:53 CST
2 cron 模块
Ansible中的cron模块用于定义计划任务。其中两种状态(state):present表示添加(省略状态时默认使用),absent表示移除