ansible --- 安装及主机分组

ansible 基于 python开发的 批量程序部署、批量运行命令

    自动化部署app    
    自动化管制配置
    自动化的持续交付
    自动化的(AWS)云服务管理

为什么要选择ansible

社区活跃度高(大众化)、学习成本、使用成本、编码语言、性能、使用是否广泛

自动化工具 salt、puppet、chef

ansible 优点

  • 是仅需要ssh和python既可使用
  • 无客户端
  • 功能强大,模块丰富
  • 上手容易,门槛低
  • 基于python开发,做二次开发容易

ansible 缺点

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

ansible 特性

  • 模块支持JSON等标准输出格式,可采用任何语言编程发,语言重写
  • 主从模式工作
  • 支持自定义模块
  • 支持playbook
  • 易于使用
  • 支持多层部署
  • 支持异构IT环境

ansible 软件依赖关系

服务端

  • 要求python2.6 或 2.7
  • 以下模块都要安装
  • paramiko、PyYAML、jinja2、httplib2、six

被托管主机

  • 需要开启ssh
  • 安装python2.5以上版本
  • 托管主机上若开启了SElinux,需要安装libselinux-python

ansible 安装 (python源码安装)

源码下载

yum -y install python-setupptools python-devel
python setup.py build      =   make
python setup.py install    =   make install

pip安装

pip install ansible 

ansible安装

准备六台主机,1台管理主机,5台托管主机,以实现批量程序部署,批量运行命令等功能

在这里插入图片描述

步骤一:基础环境准备

1)启动6台虚拟机

2)真机配置yum仓库

[root@room9pc01 ~]# tar -xf ansible_soft.tar.xz 
[root@room9pc01 ~]# cd ansible_soft/
[root@room9pc01 ansible_soft]# mkdir /var/ftp/ansible
[root@room9pc01 ansible_soft]# cp * /var/ftp/ansible
[root@room9pc01 ansible_soft]# createrepo  /var/ftp/ansible

3)修改主机名(容易区分,6台机器都需要修改)这里以ansible主机为例子

4)配置ip(6台机器都需要配置),这里以ansible主机为例子

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR=192.168.1.51
PREFIX=24
GATEWAY=192.168.1.254

[root@localhost ~]# systemctl restart network

5)配置yum客户端,在管理节点ansible上面配置

[root@ansible ~]# vim /etc/yum.repos.d/local.repo 
[local_repo]
name=CentOS-$releasever - Base
baseurl="ftp://192.168.1.254/system"
enabled=1
gpgcheck=1

[local]
name=local
baseurl="ftp://192.168.1.254/ansible"
enabled=1
gpgcheck=0


[root@ansible ~]# yum -y install ansible
[root@ansible ~]# ansible --version
ansible 2.4.2.0        //显示版本说明安装成功

6)请在6台主机上面配置/etc/hosts,这里以ansible主机为例子

[root@ansible ansible]# cat /etc/hosts
192.168.1.51 ansible
192.168.1.52 web1
192.168.1.53 web2
192.168.1.54 db1
192.168.1.55 db2
192.168.1.56 cache

主机定义与分组

步骤一:ansible.cfg配置文件

[root@ansible ~]# cd /etc/ansible/
[root@ansible ansible]# ls
ansible.cfg  hosts  roles
[root@ansible ansible]# vim ansible.cfg
#inventory      = /etc/ansible/hosts     //指定分组文件路径,主机的分组文件hosts

[selinux]        //组名称,selinux的相关选项在这个下面配置
...
[colors]        //组名称,colors的相关选项在这个下面配置
...

步骤二:定义主机,分组和子组
1)静态主机的定义

root@ansible ansible]# vim hosts 
[web]
web1
web2
[db]
db[1:2]                     //1:2为db1到db2两台主机,1:20为db1到db20多台主机
[other]
cache

[root@ansible ansible]# ansible web --list-host   //显示web组的主机
  hosts (2):
    web1
    web2
    
[root@ansible ansible]# ansible db --list-host        
  hosts (2):
    db1
    db2
    
[root@ansible ansible]# ansible other --list-host
  hosts (1):
    cache
    
[root@ansible ansible]# ansible all --list-host   //显示所有组的主机
  hosts (5):
    web1
    web2
    cache
    db1
    db2

2)直接测试

[root@ansible ansible]# ansible cache -m ping        
//测试是否可以连接,若失败颜色为红色

3)修改后测试

[root@ansible ansible]# vi hosts 
[other]
cache ansible_ssh_user="root" ansible_ssh_pass="a"

[root@ansible ansible]# ansible other -m ping   //测试成功,颜色为绿色

4)不检测主机的sshkey,在第一次连接的时候不用输入yes

[root@ansible ansible]# vim ansible.cfg 
61 host_key_checking = False   


[root@ansible ansible]# vim hosts
[web]
web1
web2
[web:vars]    //web组:变量(vars不改),web组的多台机器共用一个用户名和密码
ansible_ssh_user="root"
ansible_ssh_pass="a"


[root@ansible ansible]# ansible web -m ping
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值