###### Ansible总结
##### 运维工作: 系统安装(物理机、虚拟机)-->程序包安装、配置、服务启动 --> 对主机批量操作 --> 程序版本更新 -->监控
OS Provisioning:
物理机:PXE、Cobbler
虚拟机:Image、Templates
Configuration:
puppet工具(ruby开发)
Saltstack(python开发)
chef
Command and Concrol:
fabric
预发布环境验证:
新版本的代码先发布到内网测试服务器(跟线上环境配置完全相同,只是未介入到调度器);
程序发布:
不能影响用户体验;
系统不能停机;
不能导致系统故障或造成系统完全不可用;
灰度发布:
一种发布模式;在调度器上下线一批主机 --> 关闭服务 --> 部署新版本的应用程序 --> 启动服务 --> 在调度器上启用这一批主机;
自动化灰度发布机制:可通过脚本或公司自己的发布平台发布;
###### 运维工具的分类 :
agent:代理工具:puppet,func
agentless:无代理工具:ansible,fabric;agentless类工具必须依赖ssh服务;
###### ansible的模块化:
模块化:调用特定的模块来完成特定的任务;
基于python语言实现,由paramaiko、pyYAML和jinja2三个关键模块
部署简单:agentless类工具
主从模式:
支持自定义模块:
支持playbook:
###### ansible密钥登陆
ansible是通过ssh实现配置管理、应用部署、任务执行等功能,因此,需要事先配置ansible端能基于密钥认证的方式联系各个被管理节点;
ansible管理端做密钥:ssh-keygen -t rsa -P ‘’
将密钥拷贝到各个被控节点:ssh-copy-id root@192.168.4.41
ssh远程连接测试:ssh root@192.168.4.41 ##应该不需要密码就可以直接远程进被控端
###### ansible安装
## wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
## yum -y install ansible
配置文件:/etc/ansible/ansible.cfg
主机清单:/etc/ansible/hosts
###### ansible的简单使用
1、修改/etc/ansible/hosts文件,添加ansible被控主机或被控组;
##必须先在hosts文件添加主机ip,不然远程控制被控端时会报错: [WARNING]: No hosts matched, nothing to do
2、执行一个简单的ansible命令:
在ansible控制端执行:
ansible 192.168.4.41 -m command -a 'ifconfig'会显示被控端的网卡信息
###### ansible常用模块
###### 可以使用‘ansible-doc -s 模块名 ’来查看模块的详细用法
ansible用法:ansible [-f forks] [-m module_name] [-a args]
user模块:
示例:ansible test -m user -a 'name=wuyongfeng state=present system=yes'
在test组包含的被控端上创建用户,name为wuyongfeng;
state=present表示创建用户,state=absent时表示删除用户;
system=yes表示创建系统用户;
group模块:
示例:ansible test -m group -a 'name =t
网友评论