一、ansible简介
Ansible是2013年推出的一款IT自动化和DevOps软件,目前由Redhat已签署Ansible收购协议。其是基于Python研发,糅合了很多老运维工具的优点实现了批量操作系统配置,批量程序的部署,批量运行命令等功能
ansible可以让我们实现:
- 自动化部署APP
- 自动化管理配置项
- 自动化的持续交付
- 自动化的(AWS)于服务管理
为什么要选择ansible
选择一款配置管理软件总的来说,无外乎从以下几点来权衡利弊:
- 学习成本
- 使用成本
- 编码诧言
- 性能
- 使用是否广泛
ansible优点:
仅需要ssh和Python即可使用,无客户端;ansible功能强大,模块丰富,上手容易门槛低,基于python 开发,做二次开发更容易,使用公司比较多,社区活跃。
ansible缺点:
对于几千台、上万台机器的操作,还丌清楚性能、效率情况如何,需要迚一步了解。
ansible特性:
1> 模块化设计,调用特定的模块来完成特定任务
2> 基于python语言实现
- paramiko
- PyYAML (半结构化语言)
- jinja2
3> 其模块支持JSON等标准输出格式,可采用任何编程语言重写,部署简单,主从模式工作,支持自定义模块,支持playbook,易于使用,支持多层部署,支持异构IT环境
ansible大体执行过程 :
二、ansible安装
软件依赖关系 :
对管理主机要求Python 2.6 或 Python 2.7;ansible 使用了以下模块,都需要安装
- paramiko
- PyYAML
- Jinja2
- httplib2
- six
对于被托管主机
- Ansible默认通过 SSH 协议管理机器
- 被管理主机要开启 ssh 服务,允许 ansible 主机登录
- 在托管节点上也需要安装 Python 2.5 戒以上的版本
- 如果托管节点上开启了SElinux,需要安装libselinux-python
ansible 可以基于源码运行;源码安装:
1> pip:需要配置扩展软件包源 extras
2> git:
yum install epel-release
yum install git python2-pip
3> pip安装依赖模块
pip install paramiko PyYAML Jinja2 httplib2 six
小插曲===>
初始化虚拟机的方法:
# cd /var/lib/libvirt/images/
# rm -rf node?.img //删除原有的虚拟机镜像
# for i in node{1..9};do qemu-img create -b source.qcow2 -f qcow ${i};done //创建几台虚拟机
# virsh -c qemu:///system
virsh # start node1
virsh # console node1
localhost login:root
密码:____
# sed -i 's,192.168.4.253,192.168.4.1,' /etc/sysconfig/network-scripts/ifcfg-eth0
# cd /etc/yum.repos.d/
# cat rhel7.repo
[epel_mirror]
name=epel
baseurl=http://mirrors.sohu.com/fedora-epel/7/x86_64/
enabled=1
gpgcheck=0
# cat 163.repo
[163_mirror]
name=epel
baseurl=http://mirrors.163.com/centos/7/os/x86_64/
enabled=1
gpgcheck=0
<==小插曲
#########
####