Ansible安装配置管理Ansible优势和应用场景Ansible:开源部署工具 开发语言:Python 特点:ssh协议通讯,全平台,无需编译,模块化部署管理 作用:推送playbook进行远程节点快速部署 优势: 轻量级无客户端(Agentless) 开源免费,学习成本低,快速上手 使用playbook作用核心配置架构,统一脚本格式,批量化部署 完善的模块化扩展,支持目前主流的开发场景 强大的稳定性和兼容性 Ansible安装配置Ansible的两种安装模式(cenOS7) 1.yum包管理安装 1# yum –y install ansible 2.Git源码码安装(推荐) Ansible2.5+Python3.6安装步骤: 1)预先安装py3.6 1# wget https://www./ftp/python/3.6.5/Python-3.6.5.tar.xz 遇到错误:configure: error: no acceptable C compiler found in $PATH 解决:yum install -y gcc # make && make altinstall 遇到错误:make: *** [altinstall] Error 1 解决:yum install zlib-devel bzip2-devel sqlite sqlite-devel openssl-devel https:///questions/40355611/python-3-4-installation-error-1-oserror-errno-22-invalid-argument 2)安装virtualenv 1#查看pip路径 3)创建ansible账号并安装py3.6版本和virtualenv实例 1# useradd deploy 4)git源代码安装Ansible2.5 1#查看deploy用户是否安装git 5)加载py3.6 virtualenv环境 1# source /home/deploy/.py3-a2.5-env/bin/activate 6)安装Ansible依赖包 1#安装paramiko pyYAML jinja2依赖包 7)在py3.6虚拟环境下加载ansible2.5 1# source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q 8)验证ansible2.5 1# ansible --version 到此ansible2.5版本已经成功的在py3.6虚拟环境下完成安装; CentOS6.7下Ansible部署:http://www.showerlee.com/archives/1649 Ansible中文权威指南:http://www.ansible.com.cn/index.html https://blog.csdn.net/wating_jx/article/details/71084592 Ansible常用模块操作和编写规范playbook框架与格式 Test playbook 文件结构清单: inventory/ ---->server详细清单目录 testenv/ ---->具体清单与变量声明文件 roles/ ---->roles任务列表 testbox/ tasks/ main.yml ---->testbox主任务文件 deploy.yml ---->playbook任务入口文件 详细目录testenv [testservers] ---->server组列表 test.example.com ---->目标部署服务器主机名 [testservers:vars] ---->server组列表参数 server_name= test.example.com user=root ---->目标主机key/value参数 output=/root/test.txt 主任务文件main.yml 任务入口文件deploy.yml 远程ansible主机,编写playbook框架 1# ssh root@47.98.198.241 #查看树形文件夹 1# tree . #创建目标主机DNS主机记录 1# su - root #切换deploy用户,创建ssl秘钥认证 # ssh-keygen -t rsa #指定deploy用户公钥 1# ssh-copy-id -i /home/deploy/.ssh/id_rsa root@report.example.com(test.example.com是ansible本机DNS) 遇到错误:bad permissions: ignore key: /home/deploy/.ssh/id_rsa 解决: 1chmod 755 ~/.ssh/ #测试目标主机 1# ssh root@report.example.com authorized_key是目标主机.ssh的秘钥 此系列会在我们TestOps公众号定期更新,请随时关注哟~ |
|