Ansible Ad-Hoc常用命令

Ansible可以通过命令行形式使用它的模块,Ansible自带了很多模块,可以直接使用这些模块。目前Ansible已经自带了259个模块,可以通过ansible-doc -l 显示所有自带的模块,也可以通过ansible-doc -s 模块名 查看模块的介绍及使用示例。

Ansible命令行的基本格式如下:

ansible <host-pattern> [-m modult_name] [-a agrs]

基本语法说明:

<host-pattern> :主机
[-m modult_name] :模块名
[-a agrs]:模块的参数

列出可使用的模块名称:

ansible-doc -l

列出某个模块的描述信息和使用示例:

ansible-doc -s yum

command模块(默认)

Ansible管理工具使用-m选项来指定使用模块,默认使用command模块,即-m选项省略时会运行此选项,用于在被管理节点上运行命令

1.对所有被管节点连通性进行测试

ansible all -m ping

2.查询被管节点的系统时间

ansible webserver -m command -a 'date'

cron模块 计划性任务 (两种状态state: present:添加,absent:移除)

Ansible中的cron模块用于定义计划性任务。其中有两种状态(state):present表示添加(省略状态时默认使用),absent表示移除

1.添加计划性任务

ansible webserver -m cron -a 'minute="*/10" job="/usr/bin/echo hello" name="test cron job"'

2.查询系统计划性任务

ansible webserver -a 'crontab -l'

3.移除该计划性任务

ansible webserver -m cron -a 'minute="*/10" job="/usr/bin/echo hello" name="test cron job" state=absent'

user模块

Ansible中的user模块用于创建新用户和更改、删除已存在的用户。

1.创建用户user1

ansible webserver -m user -a 'name="user1"'

2.删除用户mysql

ansible webserver -m user -a 'name="user1" state=absent'

group模块

Ansible中的group模块用于对用户组进行管理

1.创建mysql组

ansible webserver -m group -a 'name=mysql gid=306 system=yes'

2.新建mysql组的user2用户

ansible webserver -m user -a 'name=user2 uid=306 system=yes group=mysql'

copy模块

Ansible中的copy模块用于实现文件复制和批量下发文件,其中使用src定义本地源文件路径,dest定义被管理主机文件路径,使用content则是通过指定信息内容来生成目标文件

1.复制文件

ansible webserver -m copy -a 'src=/etc/fstab dest=/tmp/fstab.txt owner=root mode=600'

2.查看复制后的文件

ansible webserver -a 'cat /tmp/fstab.txt'

file模块

在Ansible中使用file模块来设置文件属性,其中path指定文件路径,src指定源文件路径,使用name和dest来替换创建文件的符号链接

1.修改文件的属性

ansible webserver -m file -a 'owner=mysql group=mysql mode=644 path=/tmp/fstab.txt'

2.创建连接文件

ansible webserver -m file -a 'path=/tmp/fstab.link src=/tmp/fstab.txt state=link'

3.创建空问文件/tmp/test1.txt

ansible webserver -m file -a 'path=/tmp/test1.txt state=touch'

ping模块

Ansible中使用ping模块来检测指定主机的连通性

ansible all -m ping

shell模块

Ansible中的shell模块可以在被管理节点上运行命令,并支持像管道符等功能的复杂命令。

1.创建user3用户

ansible webserver -m user -a 'name=user3'

2.设置user3用户的密码

ansible webserver -m shell -a 'echo abc123|passwd --stdin user3'

script模块

Ansible中的script模块可以将本地脚本文件复制到被管理节点上进行运行(需使用相对路径来指定脚本)。

yum模块

Ansible中的yum模块负责在被管理节点上安装与卸载软件包,但是需要提前在每个节点配置自己的yum仓库。其中name指定要安装的软件包名(可以指定版本号,不指定则安装最新版),state指定安装软件包的状态,present表示安装,absent表示卸载。

1.安装httpd软件包

ansible webserver -m yum -a 'name=httpd'

2.被控节点查询

rpm -q httpd

3.卸载httpd软件包

ansible webserver -m yum -a 'name=httpd state=absent'

service模块

在Ansible中使用service模块来控制管理服务的运行状态,其中enabled表示是否开启自启动(true或false),name定义服务名称,state指定服务状态(started、stoped、restarted)。

1.启动httpd服务并添加系统管理

ansible webserver -m service -a 'enable=true name=httpd state=started'

2.查看httpd启动状态信息

ansible webserver -a 'service httpd status'