首页 > 编程 > Python > 正文

python ansible服务及剧本编写

2020-02-16 11:22:06
字体:
来源:转载
供稿:网友

第1章 ansible软件概念说明

python语言是运维人员必会的语言,而ansible是一个基于Python开发的自动化运维工具 (saltstack)。其功能实现基于SSH远程连接服务;ansible可以实现批量系统配置、批量软件部署、批量文件拷贝、批量运行命令等功能

ansible软件相关参考链接信息:

http://docs.ansible.com/ansible/intro_installation.htmlhttp://www.ansible.com.cn/http://docs.ansible.com/modules_by_category.htmlhttp://www.ansible.cn/docs/

1.1 软件特点概述

01.不需要单独安装客户端(no agents),基于系统自带的sshd服务,sshd就相当于ansible的客户端

02.不需要服务端(no servers)

03.需要依靠大量的模块实现批量管理

04.配置文件/etc/ansible/ansible.cfg(无需配置)

1.2 企业级生产场景批量管理-自动化管理方案

01.最简单/最常用/最强大的选择是ssh key+shell/pssh方案,一般中小型企业会用(50-100台以下规模企业)

a.利用ssh key执行命令,并将命令放在脚本里面

b.利用ssh key执行命令,将命令放在脚本里面,并加上相应循环语句或判断语句

02.sina cfengine/puppet较早的批量管理工具(现在基本上没有企业用)

03.门户级别比较流行的,puppet批量管理工具(复杂/笨重)

04.saltstack批量管理工具;特点:简单,功能强大(配置复杂)---赶集网/小米/ CDN公司

批量管理路线:ssh key-->cfengine-->puppet-->saltstack/ansible

注意:使用ansible软件的前提是ssh key公钥分发完成

1.3 实现集群规模架构一键部署自动化-步骤说明

01.5台服务器先配置好(kickstart,cobbler无人值守安装),高级实现云计算(按需分配,动态调整)-openstack,kvm

02.linux基本优化,包括ssh服务(可以自动化实现)

03.创建密钥信息(自动化免交互创建)

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1

04.进行批量分发密钥(sshpass,expect自动化实现)

05.ansible软件安装(自动化实现)

06.网络服务自动化安装(ansible实现)

搭建yum仓库,定制rpm包

第2章 ansible软件实践部署

ansible软件部署安装需求

01. 需要有epel源

系统yum源(base epel--pip gem)

sshpass---epel

02. ssh+key免密码环境必须部署完成

2.1 ansible地址规划

服务器名称

网卡eth0

网卡eth1

用途说明

m01

10.0.0.61

172.16.1.61

批量管理服务器

nfs01

10.0.0.31

172.16.1.31

nfs共享存储服务器

backup

10.0.0.41

172.16.1.41

rsync备份服务器

web01

10.0.0.8

172.16.1.8

web服务器

说明:无特殊说明,子网掩码均为255.255.255.0,一个C类网段254台机器规模

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表