自动化运维Ansible安装篇
Ansible自动化工具之--部署篇
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
如何安装Ansible
环境介绍
官网安装Ansible的几种方式参考一下 ,接下来给大家的介绍的是通过pip的方式安装ansible的2.3.2版本.
本次使用的是Centos6.7版本操作系统,所以在安装ansible之前需要把默认的python2.6.6版本升级至python2.7.5版本
Python升级
安装python2.7.5版本
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel gcc-c++
tar xf Python-2.7.5.tar.gz
编译与安装Python
cd Python-2.7.5
./configure –prefix=/usr/local
make && make install
make clean
make distclean
将系统python命令指向Python 2.7
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
将yum需要执行的python指定为2.6.6
vi /usr/bin/yum
将文件头部的
#!/usr/bin/python
改成
#!/usr/bin/python2.6.6
pip安装Ansible
更换镜像源:OPSX源站
根据系统版本选择合适的源:{centos,epel,pip}
下载get-pip.py文件: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
安装pip: python get-pip.py
安装ansible:
创建pip软连接: ln -s /usr/local/bin/pip /usr/bin/pip
制定版本安装ansible: pip install ansible==2.3.2.0
查看ansible版本: ansible --version
Ansible基本配置
ansible是轻量级的自动化批量管理工具,无需客户端安装agent就可以操作远程主机,下面介绍两种hosts配置方式,在介绍之前pip安装的ansible是没有配置文件的,需要手动创建配置文件目录。
创建ansible目录,默认是在/etc/目录下
mkdir /etc/ansible
创建配置文件
touch /etc/ansible/ansible.conf
基本配置信息:
[defaults]
inventory = /etc/ansible/hosts
forks = 5
log_path=/var/log/ansible.log
host_key_checking = False
[accelerate]
accelerate_port = 5099
accelerate_timeout = 30
accelerate_connect_timeout = 5.0
基础配置,根据需求自行添加配置文件
Ansible运行前的最后一次配置hosts
hosts配置参数
ansible_ssh_host #用于指定被管理的主机的真实IP
ansible_ssh_port #用于指定连接到被管理主机的ssh端口号,默认是22
ansible_ssh_user #ssh连接时默认使用的用户名
ansible_ssh_pass #ssh连接时的密码
ansible_sudo_pass #使用sudo连接用户时的密码
ansible_sudo_exec #如果sudo命令不在默认路径,需要指定sudo命令路径 ansible_ssh_private_key_file #秘钥文件路径,秘钥文件如果不想使用ssh-agent管理时可以使用此选项
ansible_shell_type #目标系统的shell的类型,默认sh
ansible_connection #SSH 连接的类型: local , ssh , paramiko,在 ansible 1.2 之前默认是 paramiko ,后来智能选择,优先使用基于 ControlPersist 的 ssh (支持的前提)
ansible_python_interpreter #用来指定python解释器的路径,默认为/usr/bin/python 同样可以指定ruby 、perl 的路径
ansible_*_interpreter #其他解释器路径,用法和ansible_python_interpreter类似,这里"*"可以是ruby或才perl等其他语言
hosts配置文件可用两种方式配置:
1、ssh
2、密钥
本次介绍使用ssh的方式配置hosts文件来控制主机
vim /etc/ansible/hosts
[web-202]
10.244.78.202 ansible_ssh_user=root ansible_ssh_pass=qwe`123
[web-204]
10.244.78.204 ansible_ssh_user=root ansible_ssh_pass=qwe`123
[web-206]
10.244.78.206 ansible_ssh_user=root ansible_ssh_pass=qwe`123
[webserver:children]
web-202
web-204
web-206
Just Do It