Linux命令集锦:ansible命令

ansible 命令主要用于批量管理,来实现自动化管理。常用批量操作包括:主机分组管理、实时批量执行命令或脚本、实时批量分发文件或目录、定时同步文件等。

一、安装 ansible

yum install ansible

安装完成后 /etc/ansible/ 目录下有个 hosts 文件,对主机实现批量管理主要是通过配置 hosts 文件。

二、ansible 命令参数介绍

基本使用:

ansible -i /etc/ansible/hosts all -m shell -a  'command' -k -u root

-i 参数是指定配置的 hosts 文件位置, all 是对 hosts 文件中所有主机生效,当然也可以进行分组,下面会有介绍;

-m 参数表示运行的模块为 shell,执行脚本用 script;

-a 参数后面为具体的 shell 命令;

-k 参数表示通过输入密码来执行命令,这种方式就不需要设置 ssh 免密码登录;

-u 表示表示连接的用户名,例子中是以 root 用户运行。

主要参数如下:

-u username          指定ssh连接的用户名,即执行后面命令的用户
-i inventory_file    指定所使用的inventory文件的位置,默认为/etc/ansible/hosts
-m module            指定使用的模块,默认为command
-f 10                指定并发数,并发量大的时候,提高该值
--sudo [-k]          当需要root权限执行的化,-k参数用来输入root密码

三、ansible 批量管理常用操作

3.1 主机分组管理

(1) 编辑 /etc/ansible/hosts 文件,将主机分为两组。

[GROUP1]    #组名
10.111.17.119:22    # 主机:端口,不指定端口则默认 ssh 端口为22
10.111.17.120:22

[GROUP2]
10.111.18.119:22
10.111.18.120:22

(2) 分组执行方式

获取 GROUP1 组中主机的主机名

ansible -i /etc/ansible/hosts GROUP1 -m shell -a  'hostname' -k

出现如下结果说明执行成功:

# ansible -i /etc/ansible/hosts GROUP1 -m shell -a  'hostname' -k
SSH password: 
10.111.17.119 | SUCCESS | rc=0 >>
host-10-111-17-119
10.111.17.120 | SUCCESS | rc=0 >>
host-10-111-17-120

【参考资料】

[1] 杨云1028, 自动化运维工具ansible详细介绍.

猜你喜欢

转载自www.cnblogs.com/walker-/p/10146660.html