ansible是基于python语言开发的模块化批量管理工具。ansible无终端,基于ssh实现管理;支持主从模式,支持playbook。
实验环境:3台Centos7 、131做为主控节点、130和132做为被控节点。
一、在131上安装ansible
(1)、yum install ansible -y
(2)、查看ansible版本
ansible --version
(3)、ansible相关的文件
rpm -qc ansible
/etc/ansible/ansible.cfg #ansible配置文件
/etc/ansible/hosts #ansible主机列表
二、生成秘钥
(1)、ssh-keygen -t rsa -P ""
(2)、把秘钥分发给主机
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.70.130
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.70.131
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.70.132
(3)、测试
ssh ser132 ip addr
三、使用ansible管理其他节点
格式:ansible <host> [options]
选项:
-m: 指定模块名称
-a:指定模块的具体参数
-s:以sudo的方式运行操作
-i:指定被管理节点的主机列表
-f:一批连接几个主机进行操作(默认是5个主机)
查看ansible所支持的模块的信息
ansible-doc -l
[默认用command模块]
查看一个模块的帮助:ansible-doc -s 模块名
例如command: ansible-doc -s command
ansible被管理节点的列表文件/etc/ansible/hosts
定义被管理节点的时候:可以单独基于主机做定义,也可以将多个主机定义成一个主机组
(1)、将管理节点定义成一个主机组
vim /etc/ansible/hosts
[webserver]
192.168.70.130 info="this is first server"
192.168.70.132 info="this is second server"
例子:在管理节点通过ansible在被管理节点执行命令
ansible目标 -m command -a "命令"
说明:目标可以是一个主机组,也可以是hosts文件中的一个或者多个主机,也可是all
-m command:表示这次ansible操作是基于command模块实现
-a "命令":表示在管理节点上要执行的命令
(2)、在webserber上所有主机上执行命令显示主机名
ansible webserver -m command -a "hostname"
(3)、在所有主机上都执行命令显示主机名
ansible all -m command -a "hostname"
(4)、在指定的主机上执行命令显示主机名(132)
ansible 192.168.70.132 -m command -a "hostname"
以上就是ansible的简单安装及配置,由于时间问题,ansible的模块这里就不一一介绍。博主小白,欢迎各位指出不足和改进意见,感谢观看。
真正让你走远的是自律、积极和勤奋!
原文地址:https://blog.51cto.com/14015577/2417838