Ansible 学习记录 (一)基础安装
获取ansible的方法:
ansible 官网下载
epel源
ansible 介绍:
Ansible 是一个配置管理和应用部署工具,功能类似于目前业界的配置管理工具 Chef,Puppet,Saltstack。Ansible 是通过 Python 语言开发。Ansible 平台由 Michael DeHaan 创建,他同时也是知名软件 Cobbler 与 Func 的作者。Ansible 的第一个版本发布于 2012 年 2 月。
Ansible 默认通过 SSH 协议管理机器,所以 Ansible 不需要安装客户端程序在服务器上。您只需要将 Ansible 安装在一台服务器,在 Ansible 安装完后,您就可以去管理控制其它服务器。不需要为它配置数据库,Ansible 不会以 daemons 方式来启动或保持运行状态。
Ansible 的目标有如下:
• 自动化部署应用
• 自动化管理配置
• 自动化的持续交付
解决ansible的依赖关系:
安装python环境
# yum -y install python
检查环境版本
# python --version
安装ansible软件:
# yum -y install ansible
验证软件:
# ansible --version
ansible工作机制:
ansible工作流程:
Ansible组建调用关系,使用者使用Ansible或Ansible-playbooks时,在服务器终端输入Ansible的Ad-Hoc命令集或palybook后,Ansible会遵循预先编排的规则将Playbooks逐条拆解为Play,再将paly组织成Ansible可识别的任务(Task),随后调用任务涉及的所有模块(modules)和插件(plugins),根据Inventory中定义的主机列表通过SSH将任务集以临时文件或命令的形式传输到远程客户端执行并返回执行结果,如果是临时文件,则执行完毕后自动删除。
向客户端分发公钥:
免手工输入yes:
Are you sure you want to continue connecting (yes/no)?
root@192.168.134.201's password:
# vim /etc/ssh/ssh_config
StrictHostKeyChecking no
免输入密码:
第一种方法:【配置hosts变量】
[server]
pop-s-1 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_host=192.168.134.202 ansible_ssh_pass=redhat
第二种方法:【分发公钥到远程主机】
expect脚本 + ssh连接
第三种方法:
ansible_hosts加密码 + sh推送公钥 + ansible-script模块执行脚本
ansible 资源:
官方文档: http://docs.ansible.com/
中文文档: http://www.ansible.com.cn/ http://ansible-tran.readthedocs.io/
Jinja2 中文文档: http://docs.jinkan.org/docs/jinja2/
yaml语法: http://www.yaml.org/
ansible examples :https://github.com/ansible/ansible-examples
ansible-vim: https://github.com/pearofducks/ansible-vim (可以高亮显示,语法检查)