ansible 好用的地方在于 , 他无需在被控的服务器上安装任何软件 . 走的就是普通的 ssh,

今天来教大家最简单的用法 . 批量在多台机子上执行命令 .

第一步 , 安装 ansible

Centos

Ubuntu

第二步 : 配置被控机

被控的机子的配置在 /etc/ansible/hosts

[webserver]  是服务器的组名 , 可以自定义名称 . 把相同特征的服务器放在一个组里 , 后面方便批量操作

206.189.72.94  服务器地址 , 可以是域名

ansible_ssh_user  用以登录的用户名 , 我为了图方便 , 都是用 root 登录

ansible_ssh_port   ssh 的端口 , 如果你不是用 22, 可以指定这个参数 . 如果是 22, 可以省略

ansible_ssh_pass  登录的密码

ansible_ssh_private_key_file  如果你是使用密钥登录 , 这个参数可以指定密钥文件的地址

第三步 : 允许使用密码登录

一般情况下 , 为了安全考虑 ,ansible 最好用密钥登录 , 但是如果你平时都是用密码管理服务器 , 那么这里就要修改下配置文件 , 运行密码登录 .

vi /etc/ansible/ansible.cfg

原本这行是注释掉的 , 把前面的 # 去掉 .

第四步 : 执行批量命令

ok, 准备工作都已做完 . 我们来执行第一个命令 :

webserver  就是上面 hosts 里面定义的服务器组的组名 .

-m shell  指定 ansible 执行 shell 模块 ,ansible 有众多模块 , 以后会陆续写教程 , 这里以使用 shell 模块执行 shell 命令为例

-a "ping 1.1.1.1 -c 3"   -a 指定后面要执行的命令 , 这里是 ping 1.1.1.1 3 次

执行后 , 会即时返回所有服务器的执行结果 . 如下图 :

ansible教程(1):小白都会用的自动化运维工具.方便管理多台服务器-夜河资源网

如果你有众多命令 , 可以把他写成一个脚本 . 比如

我在 /home/1.sh 里写了两行脚本

ansible教程(1):小白都会用的自动化运维工具.方便管理多台服务器-夜河资源网

现在我们使用 ansible 的 script 模块来执行这个脚本

all   all 就是说明要执行 hosts 文件里面的所有服务器 .

-m script  说明使用 ansible 的 script 模块

-a "/home/1.sh"   -a 后面跟着要执行的脚本位置

这个模块本质就是把脚本传送到被控的服务器上然后执行 .

执行后就可以看到执行结果 :ansible教程(1):小白都会用的自动化运维工具.方便管理多台服务器-夜河资源网

学会了执行命令和执行脚本 , 是不是管理多台服务器的时候就方便很多拉 ?