ansible 自动化运维实现角色定制
来源:互联网 发布:机械制图网络课程 编辑:程序博客网 时间:2024/04/29 11:41
一、实验环境
三台centos7.3
角色集合:Nginx httpd MySQL
ansible:
172.17.250.200
Nginx:
172.17.250.201
172.17.250.211
httpd:
172.17.250.222
MySQL:
172.17.250.111
二、下载安装ansible
修改配置文件定义主机组
vim /etc/ansible/hosts
[webservers]
172.17.250.201
172.17.250.211
[MySQL]
172.17.250.111
[httpd]
172.17.250.222
三、免密登录
虽然ansible支持其他主机认证方式,但是我们最常用的的还是基于秘钥的认证:
1、首先生成秘钥
ssh-keygen -t rsa -P ‘’
2、然后向主机分发秘钥:
ssh-copy-id root@ # @后面跟主机名或者IP地址
四、ansible自动安装Nginx
1、在roles目录下生成对应的目录结构
mkdir -pv ./{nginx,mysql,httpd}/{files,templates,vars,tasks,handlers,meta,default}
2、准备Nginx的配置文件模板 后缀必须是.j2
cp /etc/nginx/nginnx.conf /temp/nginx.conf.j2
vim /temp/nginx.conf.j2
3、在各自files目录下存放用于安装的rpm包以Nginx为例。如果被安装的服务器可以链接yum仓库 这里可以不写,在tasks文件下的main.yml不用写cp段
nginx-1.10.2-1.el7.ngx.x86_64.rpm
4、定义/tasks/main.yml的配置文件
- name: cp copy: src=nginx-1.10.2-1.el7.ngx.x86_64.rpm dest=/tmp/nginx-1.10.2- 1.el7.ngx.x86_64.rpm ## 如果使用yum源安装不需要这一字段- name: install yum: name=/tmp/nginx-1.10.2-1.el7.ngx.x86_64.rpm state=latest ## 如果使用yum 源安装红色字段直接写服务名- name: conf template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf ## 模板需要写绝对路径 tags: nginxconf notify: new conf to reload ## 模板发生改变会触发动作- name: start service service: name=nginx state=started enabled=true
5、修改变量文件
vim vars/main.yml 添加变量
nginx_port: "8888" ## 模板中使用的变量
6、定义handlers文件
vim handlers/main.ym
- name: new conf to reload service: name=nginx state=restarted ##触发的动作
7、定义/etc/ansible/nginx.yml的playbook文件
- hosts: webservers ## 与ansable hosts 文件中定义的主机组名相同 remote_user: root roles: - nginx
同理配置其他role,同一角色的主机放在一个主机组8 运行
roles就是通过分别将变量(vars)、文件(file)、任务(tasks)、模块(modules)及处理器(handlers)放置于单独的目录中,并可以便捷地include它们的一种机制。
files/:存储由copy或script等模块调用的文件;
tasks/:此目录中至少应该有一个名为main.yml的文件,用于定义各task;其它的文件需要由main.yml进行“包含”调用;
handlers/:此目录中至少应该有一个名为main.yml的文件,用于定义各handler;其它的文件需要由main.yml进行“包含”调用;
vars/:此目录中至少应该有一个名为main.yml的文件,用于定义各variable;其它的文件需要由main.yml进行“包含”调用;
templates/:存储由template模块调用的模板文本;
meta/:此目录中至少应该有一个名为main.yml的文件,定义当前角色的特殊设定及其依赖关系;其它的文件需要由main.yml进行“包含”调用;
default/:此目录中至少应该有一个名为main.yml的文件,用于设定默认变量;
- ansible 自动化运维实现角色定制
- 自动化运维工具Ansible之playbooks剧本及roles角色定制
- ansible 自动化运维
- ansible运维自动化
- Ansible角色定制—roles
- Ansible - 自动化运维工具
- 运维自动化工具Ansible
- 《Ansible自动化运维》—1.(ansible与devops)
- 自动化运维工具Ansible详细部署
- [转]自动化运维工具Ansible
- 自动化运维工具Ansible详细部署
- 自动化运维工具Ansible详细部署
- 自动化运维工具之ansible
- 自动化运维工具之ansible
- 自动化运维工具Ansible详细部署
- ansible-python自动化运维框架实例
- 自动化运维工具Ansible详细部署
- 自动化运维工具Ansible详细部署
- Java--线程基础知识学习初步记录(1)
- OpenStack公共组件oslo之十五——taskflow
- PAT数据结构与算法题目
- Server Tomcat v7.0 Server at localhost failed to start解决方法
- js中作用域和上下文等问题分析
- ansible 自动化运维实现角色定制
- TCP原理 粘包分包现象
- AutoCAD .Net 程序自动加载 AutoLoader
- Sophus库练习(李群李代数)---参考SLAM十四讲4.4
- PAT (Basic Level) Practise (中文) 1078. 字符串压缩与解压 (20)
- 小结 | C++ 菱形继承、虚继承
- python_MySQL一揽子基础知识
- 数据库连接池活尿泥模拟及c3p0的使用
- 安全hash算法,sha-1的C++实现