ansible 好用的地方在于 , 他无需在被控的服务器上安装任何软件 . 走的就是普通的 ssh,
今天来教大家最简单的用法 . 批量在多台机子上执行命令 .
第一步 , 安装 ansible
Centos
1
|
yum install ansible –y
|
Ubuntu
1
2
3
4
5
|
sudo apt–get update
sudo apt–get install software–properties–common
sudo apt–add–repository ppa:ansible/ansible
sudo apt–get update
sudo apt–get install ansible
|
第二步 : 配置被控机
被控的机子的配置在 /etc/ansible/hosts
1
2
3
4
|
[webserver]
206.189.72.94 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=91yun.co
104.248.77.45 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=91yun.co
104.248.77.60 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=91yun.co
|
[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
1
|
host_key_checking = False
|
原本这行是注释掉的 , 把前面的 # 去掉 .
第四步 : 执行批量命令
ok, 准备工作都已做完 . 我们来执行第一个命令 :
1
|
ansible webserver –m shell –a “ping 1.1.1.1 -c 3”
|
webserver
就是上面 hosts 里面定义的服务器组的组名 .
-m shell
指定 ansible 执行 shell 模块 ,ansible 有众多模块 , 以后会陆续写教程 , 这里以使用 shell 模块执行 shell 命令为例
-a "ping 1.1.1.1 -c 3"
-a 指定后面要执行的命令 , 这里是 ping 1.1.1.1 3 次
执行后 , 会即时返回所有服务器的执行结果 . 如下图 :
如果你有众多命令 , 可以把他写成一个脚本 . 比如
我在 /home/1.sh
里写了两行脚本
现在我们使用 ansible 的 script 模块来执行这个脚本
1
|
ansible]# ansible all -m script -a “/home/1.sh”
|
all
all 就是说明要执行 hosts 文件里面的所有服务器 .
-m script
说明使用 ansible 的 script 模块
-a "/home/1.sh"
-a 后面跟着要执行的脚本位置
这个模块本质就是把脚本传送到被控的服务器上然后执行 .
执行后就可以看到执行结果 :
学会了执行命令和执行脚本 , 是不是管理多台服务器的时候就方便很多拉 ?
一、如果您发现本站侵害了相关版权,请附上本站侵权链接和您的版权证明一并发送至邮箱:yehes#qq.com(#替换为@)我们将会在五天内处理并断开该文章下载地址。
二、本站所有资源来自互联网整理收集,全部内容采用撰写共用版权协议,要求署名、非商业用途和相同方式共享,如转载请也遵循撰写共用协议。
三、根据署名-非商业性使用-相同方式共享 (by-nc-sa) 许可协议规定,只要他人在以原作品为基础创作的新作品上适用同一类型的许可协议,并且在新作品发布的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与该作品在本网站的原发地址建立链接,他人就可基于非商业目的对原作品重新编排、修改、节选或者本人的作品为基础进行创作和发布。
四、基于原作品创作的所有新作品都要适用同一类型的许可协议,因此适用该项协议, 对任何以他人原作为基础创作的作品自然同样都不得商业性用途。
五、根据二〇〇二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可不经软件著作权人许可,无需向其支付报酬!
六、鉴此,也望大家按此说明转载和分享资源!本站提供的所有信息、教程、软件版权归原公司所有,仅供日常使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!