批量搞机(一):ansible简介、ansible安装

一、ansible简介

Ansible是2013年推出的一款IT自动化和DevOps软件,目前由Redhat已签署Ansible收购协议。其是基于Python研发,糅合了很多老运维工具的优点实现了批量操作系统配置,批量程序的部署,批量运行命令等功能

ansible可以让我们实现:

  1. 自动化部署APP
  2. 自动化管理配置项
  3. 自动化的持续交付
  4. 自动化的(AWS)于服务管理

为什么要选择ansible 

选择一款配置管理软件总的来说,无外乎从以下几点来权衡利弊:

  1.  学习成本
  2. 使用成本
  3. 编码诧言
  4. 性能
  5. 使用是否广泛

 

ansible优点:

仅需要ssh和Python即可使用,无客户端;ansible功能强大,模块丰富,上手容易门槛低,基于python 开发,做二次开发更容易,使用公司比较多,社区活跃。

ansible缺点: 

对于几千台、上万台机器的操作,还丌清楚性能、效率情况如何,需要迚一步了解。 

ansible特性:

1> 模块化设计,调用特定的模块来完成特定任务

2> 基于python语言实现

  1. paramiko
  2. PyYAML (半结构化语言)
  3. 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 

 <==小插曲

#########

####

原文地址:https://www.cnblogs.com/baichuanhuihai/p/8474699.html