roles安装wordpress
debug模块
1.如何查看ansible-playbook执行过程中产生的具体信息
vim test3.yaml
---
- hosts: allremote_user: roottasks:- name: lsshell: ls /rootregister: var_stdout # register:将var_stdout注册为变量- name: debugdebug:var: var_stdout # 查看所有的输出信息#var: var_stdout["stdout"] #只看想看的信息
wait_for模块
[root@control roles]# vim /opt/roles/db/tasks/main.yaml
# 判断数据库启动后才能建库
# 代码见/opt/roles/db/tasks/main.yaml
角色role
执行ansible的方式:
ad-hoc模式(点对点模式):使用单个模块,支持批量执行单条命令,相当于bash中的一句话shell
playbook模式(剧本):将多个任务集中在一个剧本中执行,类似于shell脚本
以上两种方式的缺陷:无法实现复用性
role模式(角色):类似于多个脚本导入。roles就是通过分别将变量(vars)、文件(file)、任务(tasks)、模块(modules)及处理器(handlers)放置于单独的目录中,并可以便捷地include它们的一种机制。
1.创建角色
ansible-galaxy init 角色名字
[root@control ~]# mkdir /opt/roles
[root@control ~]# cd /opt/roles
[root@control roles]# ansible-galaxy init nginx # 创建角色
- Role nginx was created successfully
[root@control roles]# ansible-galaxy init php # 创建角色
- Role php was created successfully
[root@control roles]# ansible-galaxy init wordpress # 创建角色
- Role wordpress was created successfully
[root@control roles]# ansible-galaxy init db # 创建角色
- Role db was created successfully
[root@control roles]# tree nginx/
nginx/
├── README.md
├── defaults # 默认
│ └── main.yml
├── files # 存放需要使用的文件
├── handlers # 处理器,触发器 需要触发的任务 # tasks里面定义的notify除法handlers里面的任务
│ └── main.yml
├── meta
│ └── main.yml
├── tasks # 写一些任务
│ └── main.yml
├── templates # 存放需要渲染传递的文件
├── tests
│ ├── inventory
│ └── test.yml
└── vars # 变量└── main.yml8 directories, 8 files
role部署wordpress
1.角色的使用
1.1 写数据库
[root@control roles]# ls
db nginx php wordpress
[root@control roles]# cd db
[root@control db]# ls
README.md defaults files handlers meta tasks templates tests vars
[root@control db]# cd tasks
[root@control tasks]# ls
main.yml
[root@control tasks]# vim main.yml
---
# tasks file for db
- name: Install MySQLyum:name: mysql-serverstate: present- name: Start and enable MySQLservice:name: mysqldstate: startedenabled: yes- name: 等待数据库启动wait_for:hosts: localhost # 本机访问port: 3306timeout: 10 # 等待超时10秒
- name: INIT MySQL passwdshell: mysqladmin -p"`awk '/temporary password /{print $NF}' /var/log/mysqld.log`" password "Qq111111."- name: Create MySQL databaseshell: mysql -p'Qq111111.' -e "CREATE DATABASE if not exists {{ MYSQL_DB_NAME }};create user '{{ MYSQL_USER }}'@'{{ MYSQL_HOST }}' identified by '{{ MYSQL_PASSWORD }}';grant all privileges on {{ MYSQL_DB_NAME }}.* to '{{ MYSQL_USER }}'@'{{ MYSQL_HOST }}';flush privileges;"[root@control tasks]# vim ../vars/main.yml
---
# vars file for db
MYSQL_DB_NAME: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: "Qwertyuiop@123"
MYSQL_HOST: "%"[root@control tasks]# cd /opt/roles/
[root@control roles]# ls
db nginx php wordpress
[root@control roles]# vim roles.yaml
- hosts: databasesremote_user: rootgather_facts: noroles:- db[root@control roles]# ansible-playbook roles.yaml --syntax-checkplaybook: roles.yaml
[root@control roles]# ansible-playbook roles.yaml --list-tasksplaybook: roles.yamlplay #1 (databases): databases TAGS: []tasks:db : Install MySQL TAGS: []db : Start and enable MySQL TAGS: []db : INIT MySQL passwd TAGS: []db : Create MySQL database TAGS: [create]
[root@control roles]# ansible-playbook roles.yamlPLAY [databases] **************************************************************************TASK [db : Install MySQL] *****************************************************************
changed: [node1]TASK [db : Start and enable MySQL] ********************************************************
changed: [node1]TASK [db : INIT MySQL passwd] *************************************************************
changed: [node1]TASK [db : Create MySQL database] *********************************************************
changed: [node1]PLAY RECAP ********************************************************************************
node1 : ok=4 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
1.2 nginx
# 准备配置文件
[root@control tasks]# cp /root/nginx.conf /opt/roles/nginx/templates/
[root@control tasks]# vim /opt/roles/nginx/tasks/main.yml
---
# tasks file for nginx
#- name: Install PHP packages and epel-release
# yum: name={{ item }} state=present disable_gpg_check=yes##with_items:##- epel-release##- http://rpms.remirepo.net/enterprise/remi-release-9.rpm##when: name == "web"
- name: Install nginxyum:name: nginxstate: present- name: Config Nginxtemplate:src: nginx.confdest: /etc/nginx/nginx.conf- name: Start nginxservice:name: nginxstate: started[root@control ~]# vim /opt/roles/nginx/templates/nginx.conf
user {{ NGINX_USER | default("nginx") }};
#{{ NGINX_USER | default(nginx) }}; 是错的,应该加""
worker_processes {{ NGINX_FORKS | default("auto") }};
。。。。。server {listen {{ NGINX_PORT | default(80) }};listen [::]:{{ NGINX_PORT | default(80) }};server_name _;root {{ BASE_DIR }}/wordpress; # /usr/share/nginx/html;# {{ BASE_DIR | default(/usr/share/nginx) }}有问题# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;
# 添加内容location / {root {{ BASE_DIR }}/wordpress;index index.php;}location ~ \.php$ {root {{ BASE_DIR }}/wordpress; #/usr/share/nginx/html; #指定网站目录fastcgi_pass unix:///var/opt/remi/php80/run/php-fpm/www.sock; #指定访问地址(>旧版为:127.0.0.1:9000)fastcgi_index index.php; #指定默认文件fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #站点根目录
,取决于root配置项include fastcgi_params; #包含nginx常量定义}error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}# 变量
[root@control ~]# vim /opt/roles/nginx/vars/main.yml
---
# vars file for nginx
NGINX_USER: nginx
NGINX_FORKS: auto
NGINX_PORT: 80
1.3 php
[root@control ~]# vim /opt/roles/php/tasks/main.yml
---
# tasks file for php
#- name: Install PHP repository
# yum:
# name: http://rpms.remirepo.net/enterprise/remi-release-9.rpm
# state: present
# disable_gpg_check: yes- name: Install PHPyum:name: "{{ package }}"state: present- name: Start phpservice:name: php80-php-fpmstate: started# listen默认监听sock文件
- name: modefile:path: /var/opt/remi/php80/run/php-fpm/www.sockmode: "777"[root@control ~]# vim /opt/roles/php/vars/main.yml
---
# vars file for php
package: php80-php-xsl,php80-php,php80-php-cli,php80-php-devel,php80-php-gd,php80-php-pdo,php80-php-mysql,php80-php-fpm
1.4 上传包
[root@control ~]# cp /opt/latest-zh_CN.zip /opt/roles/wordpress/files/[root@control ~]# vim /opt/roles/wordpress/tasks/main.yml
---
# tasks file for wordpress
- name: Cp Wordpress to webunarchive:src: latest-zh_CN.zipdest: "{{ BASE_DIR }}" # 解压之后直接在BASE_DIR下产生wordpress目录mode: "777"[root@control ~]# vim /etc/ansible/hosts
[databases]
node1 name="db"
[webserver]
node2 name="web" BASE_DIR=/usr/share/nginx # BASE_DIR定义
1.5 运行
[root@control ~]# vim /opt/roles/roles.yaml
- hosts: "{{ host }}"remote_user: rootgather_facts: noroles:- "{{ role }}"
[root@control ~]# ansible-playbook -e host=databases -e role=db roles.yaml
[root@control ~]# ansible-playbook -e host=webserver -e role=php roles.yaml
[root@control ~]# ansible-playbook -e host=webserver -e role=nginx roles.yaml
[root@control ~]# ansible-playbook -e host=webserver -e role=wordpress roles.yaml
相关文章:
roles安装wordpress
debug模块 1.如何查看ansible-playbook执行过程中产生的具体信息 vim test3.yaml --- - hosts: allremote_user: roottasks:- name: lsshell: ls /rootregister: var_stdout # register:将var_stdout注册为变量- name: debugdebug:var: var_stdout # 查看所有的输出信息#var…...
【Python高级编程】饼状图中autopct和startangle用来做什么的
autopct 设置饼状图中每个扇区的百分比标签。接受一个格式字符串,用于指定如何格式化标签。默认值为 %.1f%%,表示保留一位小数的百分比格式。可以设置为 None 以禁用百分比标签。 startangle 设置饼状图中第一个扇区的起始角度。角度以顺时针方向从 3…...
【ARM Coresight Debug 系列 -- ARMv8/v9 Watchpoint 软件实现地址监控详细介绍】
请阅读【嵌入式开发学习必备专栏 】 文章目录 ARMv8/v9 Watchpoint exceptionsWatchpoint 配置信息读取Execution conditionsWatchpoint data address comparisonsSize of the data accessWatchpoint 软件配置流程Watchpoint Type 使用介绍WT, Bit [20]: Watchpoint TypeLBN, B…...
jvm工具-jps、jstat、jmap、jstack
一、jps jps -v 【输出进程启动参数】 [rootVM-8-2-centos ~]# jps -v 12401 Jps -Dapplication.home/usr/local/jdk1.8.0_241 -Xms8m 16964 jar 其他参考 Java八股文必看,入门到深入理解jvm虚拟机之基础故障指令【jps,jstate...】-CSDN博客 二、j…...
LVS负载均衡群集+NAT部署
目录 一、企业群集应用概述 1.1 群集的含义 1.2 企业群集分类 二、负载均衡群集架构和工作模式 2.1负载均衡的结构 2.2负载均衡群集工作模式分析 三、LVS虚拟服务器 3.1Linux Virtual Server 3.2LVS必要的工具 3.3LVS的负载调度算法 一、企业群集应用概述 1.1 群集的…...
使用 Oracle SQL Developer 导入数据
使用 Oracle SQL Developer 导入数据 1. 导入过程 1. 导入过程 选择要导入数据的表, 然后单击右键,选择"导入数据", 浏览本地文件,选择正确的工作表, 按默认, 按默认, 根据情况修改&…...
品质主管的面试题目
在品质主管的面试中,面试官可能会提出一系列问题来评估应聘者的经验、技能和专业知识。以下是一些常见的品质主管面试题,你可以提前准备,以更好地展示自己的能力和适应性。 一、自我介绍与背景了解 请简单介绍一下自己,包括教育背景、工作经验等。你在过去的工作经历中,主…...
算法专题总结链接地址
刷力扣的时候会遇到一些总结类型的题解,在此记录,方便自己以后找 前缀和 前缀和https://leetcode.cn/problems/unique-substrings-in-wraparound-string/solutions/432752/xi-fa-dai-ni-xue-suan-fa-yi-ci-gao-ding-qian-zhui-/ 单调栈 单调栈https:…...
Oracle--存储结构
总览 一、逻辑存储结构 二、物理存储结构 1.数据文件 2.控制文件 3.日志文件 4.服务器参数文件 5.密码文件 总览 一、逻辑存储结构 数据块是Oracle逻辑存储结构中的最小的逻辑单位,一个数据库块对应一个或者多个物理块,大小由参数DB_BLOCK_SIZE决…...
【计算机毕业设计】259基于微信小程序的医院综合服务平台
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板ÿ…...
HP惠普暗影精灵10 OMEN Gaming Laptop 16-wf1xxx原厂Win11系统镜像下载
惠普hp暗影精灵10笔记本电脑16-wf1000TX原装出厂Windows11,恢复开箱状态oem预装系统安装包,带恢复重置还原 适用型号:16-wf1xxx 16-wf1000TX,16-wf1023TX,16-wf1024TX,16-wf1025TX, 16-wf1026TX,16-wf1027TX,16-wf1028TX,16-wf1029TX, 16-wf1030TX,16-…...
[Day 9] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
區塊鏈的主要應用場景 區塊鏈技術自2008年首次由中本聰提出以來,已經迅速發展並應用於各個領域。它的去中心化、透明和不可篡改等特性使其在金融、供應鏈、醫療健康、物聯網、數字身份等多個方面展現出巨大的潛力。本文將深入探討區塊鏈的主要應用場景,…...
van-list 遇到的问题
将公司项目H5页面重构的时候,有一个类似购物车的页面,需要上拉加载,下拉刷新。使用的UI组件的是vant,其中看起来van-list 很符合基本需求,就果断进行了copy 修改。但是,在进行具体的业务交互的时候突然发现…...
DockerCompose+Jenkins+Pipeline流水线打包Vue项目(解压安装配置Node)入门
场景 DockerComposeJenkinsPipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门: DockerComposeJenkinsPipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门-CSDN博客 以上使用流水线配置和打包springboot后台项目,如果要使…...
【新课程】PICO VR 交互开发指南
从PICO开始,迈向XR跨平台开发 Unity XR Interaction Toolkit (简称XRI)是一套跨平台的 XR 交互开发工具包,随着版本的更新与完善,逐渐获得了开发者的青睐。各 XR 平台逐步推荐开发者采用 XRI 作为首选的交互开发工具为…...
天童美语:为了得体退出的那一天,你一定要好好爱孩子
父母最大的成就就是孩子可以独立,自己完成自己的人生。为了得体退出的那一天,你一定要好好爱你的小孩,因为每一天都在过去。当我们站在孩子成长的十字路口,面对那个终将到来的退出时刻,心中总会涌起一股难以言表的情感…...
什么是JWT?为什么用JWT?JWT的实战案例
JWT学习资料 1.什么是JWT?【头部(Header)、载荷(Payload)和签名(Signature)】2.为什么要用JWT?3.JWT 使用全局变量JWT 创建JWT的应用(token放在返回信息中)JWT验证 4.JWT 原理 1.什么是JWT?【头部(Header)、载荷(Payload)和签名(Signature)】 JWT(JS…...
SpringBoot+Vue小区物业管理系统 附带详细运行指导视频
文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.用户登录代码2.查询小区信息代码3.保存缴费信息代码 一、项目演示 项目演示地址: 视频地址 二、项目介绍 项目描述:这是一个基于SpringBootVue框架开发的小区物业管理系统。首先…...
在不使用js在情况下只用css实现瀑布流效果
使用到的是grid 布局,需要注意的是grid-template-rows: masonry; 目前只有Firefox 浏览器支持这个效果,而且还是一个实验性属性需要在设置里面开发实验性选项才行。 实例 <!DOCTYPE html> <html> <head><title>Document</ti…...
AMS(ActivityManagerService)源码解析2,Android应用是如何被启动的
一个Android应用是如何被启动的 前言总结1. 启动Application1.1 拉起一个新的进程1.2 启动Application1.3 AMS阶段1.4 创建Instrumentation和Application 2. 启动Activity2.1 回到AMS,启动第一个Activity 参考资料 前言 基于源码API 28,30以后的版本启动…...
数据库事务隔离级别
前几天项目上合作公司的系统出现了一次死锁,突然想到由于近几年开发设计的系统并发用户比较少,很久没有碰到过死锁了,因此对死锁的概念也比较生疏了,需要温习一下。 事务 先从最基本的概念开始,事务、及其ACID特性。…...
Pytest 记录日志输出到控制台和写入文件
目录 自定义日志记录器和内置的日志记录器 项目代码 项目目录树 自定义日志记录器 函数源代码 pytest中定义和覆盖日志记录信息 使用cli定义Logging 使用pytest.ini定义Logging 修改单个测试级别的日志 日志输出的重要性不言而喻,不仅可以观测执行过程&…...
LINUX网络FTP服务
一、FTP服务 FTP服务:file transfer protocol :文件传输协议。在网络上进行双向传输,也是一个应用程序。不同的操作系统有不同的FTP软件,但使用的协议是一样的。 FTP协议基于TCP协议,有两个端口,即20和21。 20端口&…...
10 C++11
10 C11 1、类型推导1.1 auto关键字1.2 auto类型推断本质 2、类型计算2.1 类型计算分类2.2 类型计算的四种规则2.3 返回值类型计算 3、列表初始化4、Lambda表达式4.1 前置知识4.2 Lambda表达式4.3 捕获表 5、右值引用5.1 概念5.2 左值引用和右值引用 6、移动语义 1、类型推导 1…...
java的封装
为什么要封装?在java的面向对象的思想中,封装是指将类的实现细节包装,隐藏起来的方法。封装可以防止本类的代码和数据被外部定义的代码随机访问。 如何进行封装? 在定义一个类时,将类中的属性私有化,即使…...
为什么选择海外服务器?
如何选择跨境电商服务器:详细指南 选择合适的服务器是跨境电商企业成功的基础。服务器的性能和稳定性直接影响着网站的访问速度、用户体验和安全性,进而影响着企业的销量和利润。那么,跨境电商企业该如何选择服务器呢? 1. 确定目…...
k8s+springcloud+nacos部署配置
1 k8s 部署nacos-2.1.2配置k8s-nacos-statefulSet.yaml文件 apiVersion: v1 kind: Service metadata:name: nacos-headlessnamespace: rz-dtlabels:app: nacosannotations:service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" spec:# 3个端口打开&…...
梯度提升决策树(GBDT)
GBDT(Gradient Boosting Decision Tree),全名叫梯度提升决策树,是一种迭代的决策树算法,又叫 MART(Multiple Additive Regression Tree),它通过构造一组弱的学习器(树&am…...
数据结构之B树的原理与业务场景
B树是一种自平衡的树形数据结构,它能够保持数据有序,并且可以高效地进行查找、顺序访问、插入和删除操作。B树的设计是为了优化磁盘I/O操作,因为它可以减少磁盘访问次数,这在数据库和文件系统中非常有用。 1. B树的原理 节点的出…...
【Android面试八股文】你能说一说线程池管理线程的原理吗?
面试官(Interviewer): 欢迎参加面试,今天我们会讨论一些关于 Java 线程池管理的问题。你能给我解释一下 ThreadPoolExecutor 是如何管理线程的吗? 候选人(Candidate): 当然可以,ThreadPoolExecutor 是 Java 中用于创建和管理线程池的核心类。它通过一组核心参数来控制线…...
扁平风格网站 模板免费下载/seo效果最好的是
vue-element-admin 从 mock 数据过渡到使用后台接口1. 移除 mock2. 替换 mock 为后台接口请求3. 补全请求,状态参数1. 移除 mock 修改 vue.config.js 文件 1. 首先将 before: require("./mock/mock-server.js") 注释掉 2. 添加一下内容 proxy: {// change…...
adsl 网站服务器/谷歌play商店官网
。。。。。。。。。。。。转载于:https://www.cnblogs.com/xyp666/p/9246744.html...
淄博logo设计公司/淘宝优化
详细解答与dp序列初始化请见Carl大佬:点击链接 动态规划序列含义: dp[持有股票][不持股票] 持有股票: 应该为最便宜的股票,(积累问题→\rightarrow→)或者是在上一次(不一定刚刚就是上一支就…...
滑县网站建设服务/电子商务与网络营销教案
面向对象 : 就是一种编程思想,是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 如我要造辆车: Step1. 设计画图>保时捷设计所 Step2. 原…...
烟台网站建设多少钱/刚刚传来最新消息
TAP主要安装于光纤网络中的两个或多个点之间提供实时网络信号监控报告功能。TAP一般有两种不同的类型,有源TAP和无源TAP。无源TAP是一种不需要电源的纯无源器件。它在企业数据中心中更为常见,用于创建网络可视性和增强网络安全性。无源TAP主要有两种技术…...
阿里云空间可以做网站吗/外贸网站免费推广
一、诈骗罪的起刑点以及量刑是怎么规定的 1、诈骗罪起刑点为诈骗的公私财物价值达到三千元。 2、诈骗罪的量刑标准如下所述: (1)数额较大的,处三年以下有期徒刑、拘役或者管制,并处或者单处罚金; (2&am…...