目录
ansible基础
ansible简介
什么是ansible
ansible是一款批量管理服务器的工具
2015年被红帽公司收购
使用Python语言编写的
基于ssh进行管理,所以不需要在被管端安装任何软件
ansible在管理远程主机的时候,主要是通过各种模块进行操作的
ansible可以做什么
批量修改服务器密码
批量安装软件包
批量修改配置
…
ansible产品特色
基于SSH架构
模块丰富
社区活跃
可以自定义模块
支持异构IT架构
部署简单容易上手
环境部署
所需软件包:ansible源码包
主机名 | IP地址 | 角色 |
---|---|---|
node1 | 192.168.88.11 | 被控制节点(test) |
node2 | 192.168.88.12 | 被控制节点(proxy) |
node3 | 192.168.88.13 | 被控制节点(web1) |
node4 | 192.168.88.14 | 被控制节点(web2) |
node5 | 192.168.88.15 | 被控制节点(database) |
control | 192.168.88.253 | 控制节点(manager) |
- 6台主机,需要配置主机名、IP地址、YUM。关闭SELINUX和防火墙
- control节点要求:
- 配置名称解析,能够通过名字访问所有节点
- 配置可以通过ssh到所有节点免密登陆
- 拷贝
ansible_soft.tar.gz
到control,并解压安装
ansible部署
ansible基础环境准备
1. 配置名称解析
[root@control ~]# echo -e "192.168.88.253\tcontrol" >> /etc/hosts
[root@control ~]# for i in {1..5}
> do
> echo -e "192.168.88.1$i\tnode$i" >> /etc/hosts
> done
[root@control ~]# tail -6 /etc/hosts
192.168.88.253 control
192.168.88.11 node1
192.168.88.12 node2
192.168.88.13 node3
192.168.88.14 node4
192.168.88.15 node5
2.配置免密登陆
[root@control ~]# ssh-keygen # 三个问题都直接回车,使用默认值
[root@control ~]# for i in node{1..5} # 回答yes和密码
> do
> ssh-copy-id $i
> done
3.装包
[root@control ~]# yum install -y tar
[root@control ~]# tar xf ansible_soft.tar.gz
[root@control ~]# cd ansible_soft/
[root@control ansible_soft]# yum install -y *.rpm
配置ansible管理环境
- 因为要管理的远程主机可能不一样。所以具有相同管理方式的配置放到一个目录下。
# 创建ansible工作目录,目录名自己定义,不是固定的。
[root@control ~]# mkdir ansible
[root@control ~]# cd ansible
# 创建配置文件。默认的配置文件是/etc/ansible/ansible.cfg,但是一般不使用它,而是在工作目录下创建自己的配置文件
[root@control ansible]# vim ansible.cfg # 文件名必须是ansible.cfg
[defaults]
inventory = hosts # 管理的主机,配置在当前目录的hosts文件中,hosts名是自定义的。=号两边空格可有可无。
# 创建主机清单文件。写在[]里的是组名,[]下面的是组内的主机名
[root@control ansible]# vim hosts
[test]
node1
[proxy]
node2
[webservers]
node[3:4] # node3和node4的简化写法,表示从3到4
[database]
node5
# cluster是组名,自定义的;:children是固定写法,表示下面的组名是cluster的子组。
[cluster:children]
webservers
database
# 查看被管理的所有的主机。注意,一定在工作目录下执行命令。
[root@control ansible]# ansible all --list-hosts
hosts (5):
node1
node2
node3
node4
node5
# 查看webservers组中所有的主机
[root@control ansible]# ansible webservers --list-hosts
hosts (2):
node3
node4
- 至此ansible已经部署完毕,后期使用时务必保证处于工作目录
ansible
下边才能正常使用