码迷,mamicode.com
首页 > 其他好文 > 详细

ansible

时间:2019-10-12 13:18:01      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:批量操作   编程   PyYAML   使用   选择   扩展   部署   python语言   linu   

大型架构及配置技术

一.环境准备 (六台机器)

 技术图片

1.ansible 简介

 ansible是2013年推出的一款IT自动化和DevOps软件,基于python开发,糅合了很多老运维工具的特点,可以实现批量操作系统配置,批量程序部署,批量运行命令等功能

2.ansible可以实现:

自动化部署app

自动化管理配置项

自动化持续交付

自动化(AWS)云服务管理

3.为什么选择ansible

活跃度(社区) ----看用的人多不多

学习成本---简单易学

使用成本----节约大量时间和经历

编码语言------内置Python

性能

使用是否广泛

ansible优点

只需要SSH和Python即可使用

无客户端

ansible功能强大,模块丰富

上手容易,门槛低

基于Python 开发,做二次开发更容易

使用公司较多,社区活跃

ansible 特性

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

基于Python语言实现

PyYAML(半结构化语言)

Jinja2

其模块支持JSON(基于文本的轻量级数据交换格式)等标准输出格式,可以采用任何编程语言重写

技术图片

 

 软件依赖关系

1.对管理主机

要求python2.6 python2.74

ansible 使用以下模块,都需要安装

paramiko PyYAML JInja2 httplib2 six

2.对于被托管主机

ansible默认通过ssh协议管理机器

被管理主机要开启ssh服务,允许ansible主机登录

在托管节点上也需要安装python2.5或以上版本

如果托管节点上开启了SELINUX,需要安装libselinux-python

4.安装ansible

真机上 mkdier /var/ftp/ansible

cd /linux-soft/04/ansible

cp * /var/ftp/ansible

createrepo    /var/ftp/ansible #生成repodata的目录

ansible虚拟机:

vim /etc/yum.repo.d/local.repo

[local]
name=local
baseurl="ftp://192.168.1.254/ansible"
enabled=1
gpgcheck=0
]#yum -y install ansible

]#ansible --version

主机定义与分组

1.首先检测环境变量ANSIBE_CONFIG变量定义的配置文件

其次检查当前目录下 ~/ansible.cfg 文件

再次检查当前 目录

 

 

 

 

 

1.改ansible配置文件

vim /etc/ansible/ansible.cnf

14 host_key_checking = False

61  host_key_checking = False

97  host_key_checking = False

2.修改主机集合配置文件

vim /etc/ansible/hosts

在最下面添加

[web]
web1
web2
[db]
db1
db2
[other]
cache

如果主机较多的话

db-[001:100] 批量添加

显示添加的主机

ansible web --list-hosts

  hosts (2):
    web1
    web2
ansible all --list-hosts

列出所有主机

批量部署认证文件

ssh-keygen -t rsa -b 2048 -N ‘‘ -f key

ssh-copy-id -i key.pub web1   #依次传给所有机器

ssh -i key web1    #依次尝试登录,无需密码

inventory 扩展参数

 rm -rf /root/.ansible/cp/*  清除缓存

ansible all ping -m    #列出ping通的主机

[all:vars]  #变量定义
ansible_ssh_private_key_file="/root/.ssh/key"

[app:children] # 给子组定义   

web

db

[all:vars]
ansible_ssh_private_key_file="/root/.ssh/key"

单独定义 (如果改了web1的ssh端口为222)

ansible all  -m ping   只有web1 不通

[web]

web1         ansible_ssh_port=222   #单独定义
web2

配置文件加载顺序

ansibl  可以自定义配置文件

mkdir myansbile   文件夹

创建配置文件 ansible.cfg  #必须在文件夹里执行

 

ansible

标签:批量操作   编程   PyYAML   使用   选择   扩展   部署   python语言   linu   

原文地址:https://www.cnblogs.com/jeffzhao/p/11660763.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!