ansible的roles使用
1.创建roles文件夹
mkdir roles
2.在roles文件夹里面创建文件夹
cd roles/
mkdir {nginx,uwsgi,redis,mysql}
3.cd nginx
4.mkdir tasks/
5.cd tasks/
6.vi install.yml
- name: install
yun:name=nginx
vi copyfile.yml
- name : copyfile
template:src=nginx.conf dest=/etc/nginx/nginx.conf
vi start.yml
- name: start
service:name=nginx state=started enabled=yes
vi main.yml
- import_tasks: install.yml
- import_tasks: copyfile.yml
- import_tasks: start.yml
7.在nginx目录下安装nginx yum install -y nginx
8. 创建一个templates目录,和tasks目录同级 mkdir templates
9.cd templates/
10.cp /etc/nginx/nginx.conf . 将nginx配置文件拷贝到templtes文件夹下
ansible 127.0.0.1 -m setup -a "filter=*process*" #查询cpu个数
11.vi nginx.conf
#改变两个参数
worker_processes {{ansible_processor_vapus*2}} #这里设置为cpu的个数或者cpu个数的两倍
events{
worker_connections 102400; #这是连接数,可以调大
}
server{ #介绍
listen# 第一个监听ipv4
listen #第二个监听ipv6
}
12.如果不需要传变量需要创建一个files的目录,和tasks在同一级目录下
mkdir files
以下是实例
cd files/
echo "test">>c.txt
cd ..
vi tasks/main.yml
- name :file
copy:dest=/tmp/aaa.txt src=c.txt
13.如果要是传变量的话,在tasks的同级目录下创建一个vars的目录
mkdir vars
vi vars/main.yml
{"user":alex}
vi tasks/main.yml
- name:createuser
user: name={{user}}
14.使用handler同样需要在tasks的同级目录下创建handlers目录
mkdir handlers
vi handlers/main.yml
- name: restartngnx
service: name=nginx state=restarted
vi tasks/main.yml
notify:restart #用来触发handlers
15.在roles平级的目录下
vi nginx.yml
- hosts : web
roles:
- nginx
#web是一个ip组的名称相当于一个ip
16.ansible-playbook --syntax-chek nginx.yml 测试代码没有问题
17.ansible-playbook nginx.yml 启动代码
18. vi roles/nginx/templates/nginx.conf
server{
listen 80;
listen [::]:80; #改这两个参数
}
roles - 目录结构清晰
- 可以相互调用 - import_tasks: roles/nginx/tasks/install.yml
- 备份方便 解耦 ```
roles/nginx/
├── files -- 静态文件
│ └── c.txt
├── handlers -- 触发的任务
│ └── main.yml
├── tasks -- 任务(必须的)
│ ├── copyfile.yml
│ ├── install.yml
│ ├── main.yml
│ └── start.yml
├── templates -- 动态文件,需要传递参数
│ └── nginx.conf
└── vars -- 变量
└── main.yml ``` 查找顺序 - 主文件看到roles,就回去roles目录下面找对应的目录
- 先去tasks目录里面找main.yml文件,如果遇到import_task则加载任务
- 如果遇到了template,则去templates目录里面找文件
- 如果遇到了copy,则去files目录里面找文件
- 如果遇到了变量,则去vars目录里面找main.yml文件
- 如果遇到了notify,则去handlers目录里面找main.yml文件
互相调用(uwsgi调用nginx的安装程序nginx.yml)
1.cd roles/uwsgi/
2.vi tasks/main.yml
- import_tasks:roles/nginx/tasks/install.yml
3.在roles同级目录下
vi uwsgi.yml
-hosts:web
roles:
- uwsgi
#web是一个ip组的名称相当于一个ip
4.ansible-playbook uwsgi.yml 启动文件
这样就调用成功
ansible的roles使用的更多相关文章
- Ansible的roles标准化与Jenkins持续集成(三)
Ansible的roles标准化与Jenkins持续集成(三) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打 ...
- Ansible:roles初始化系统
简介 本文介绍ansible的roles,通过roles来实现系统的初始化,其相当于将ansible的playbook拆分.本文通过Jenkins,传参,调用playbook来初始化系统. Githu ...
- Ansible之roles模块--lnmp分布式部署
Ansible之roles模块--lnmp分布式部署 目录 Ansible之roles模块--lnmp分布式部署 1. role模块的作用 2. roles的目录结构 3. roles内个目录含义解释 ...
- ansible基础-roles
一 简介 注:本文demo使用ansible2.7稳定版 在我看来,role是task文件.变量文件.handlers文件的集合体,这个集合体的显著特点是:可移植性和可重复执行性. 实践中,通常我们以 ...
- Git+Gitlab+Ansible的roles实现一键部署Nginx静态网站(一)--技术流ken
前言 截止目前已经写了<Ansible基础认识及安装使用详解(一)--技术流ken>,<Ansible常用模块介绍及使用(二)--技术流ken><Ansible剧本介绍及 ...
- Ansible playbook roles
1 概述 角色(roles):如果我们使用playbook写成一个文件,这个文件会很大,但是不方便组织,我们可以分组,把playbook根据功能,如handler,tasks等分门别类的放在在各自的 ...
- Ansible Playbook Roles and Include Statements
介绍 虽然可以在一个非常大的文件中编写一个playbook(您可能会以这种方式开始学习playbook),但最终您将需要重新使用文件并开始组织事情. 在基本级别,饱含任务的文件允许您将配置策略分解成较 ...
- Ansible之roles角色
一.roles简介 ansible自1.2版本引入的新特性,用于层次性.结构化地组织playbook.roles能够根据层次型结构自动装载变量文件.tasks以及handlers等.要使用roles只 ...
- ansible 模块 roles
setup 作用,用来查看用看内部的详细信息 ansible_all_ipv4_addresses # ipv4的所有地址 ansible_all_ipv6_addresses # ipv6的所有地址 ...
- 自动化运维工具Ansible之Roles测验详解
Ansible Roles 详解与实战案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: 3. 该用 ...
随机推荐
- ROS终端中创建功能包的常用命令
- 祖先元素transform非none时在Iphone6上引起后代fixed/absolute元素的怪异表现及解决方案
如题,祖先元素transform非none时,记录一下Iphone6中引起后代元素fixed参考视图怪异表现和解决方案. 层叠关系及参考视图 层叠上下文是HTML元素的三维概念,这些HTML元素在一条 ...
- html5的video元素学习手札
为了监控移动端视频播放的情况,研究了一下 html5 <video> 标签的属性与事件触发,及其在各系统和各个浏览器的兼容情况 属性与事件 理解清楚属性和事件,才能更好的使用 video ...
- Java/C++实现策略模式---旅游出行方式
旅游的出行方式有乘坐飞机旅行.乘火车旅行和自行车游,不同的旅游方式有不同的实现过程,客户可以根据自己的需要选择一种合适的旅行方式. 类图: Java代码: public class Person { ...
- 【Android开发】【布局】 仿微信UI
Demo地址
- JAVA处理Excel表格数据并写入数据库
package com.hncj.test; import java.io.FileInputStream; import java.sql.Connection; import java.sql.D ...
- MySQL中MyISAM和InnoDB引擎的区别
区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事 ...
- 解决vue安装时出现vue --version或vue不是内部命令的问题
1. 试图全局配置 vue 的环境变量,找到 vue.cmd 的路径,然后进行配置. 问题:在文件搜索中,没有找到 vue.cmd,失败. 1.npm i npm -g 全局 update 了 npm ...
- 微信小程序发送验证码功能,验证码倒计时
data{ timer:'', countDownNum:'发送验证码', } // 点击验证码倒计时获取验证码 Gain:function(e){ let that = this let count ...
- 模拟FCFS调度算法(先来先服务)
文章目录 一.FCFS的介绍 二.代码演示 三.代码分析 1.使用节点模拟进程 2.SimulateFCFS(核心模拟FCFS类) 3.创建一个节点为n的队列(模拟就绪队列) 4.核心计算分析 5.输 ...