利用ansbile部署lamp并部署Discuz(非分布式)

news2025/1/12 3:49:40

目录

一、实验准备

二、设置ansbile的hosts文件

三、在192.168.115.148上完成相关准备

上传Discuz_X3.3_SC_UTF8.zip

配置本地源、确保我们的sr0挂载后可以使用

四、编写roles

创建目录

编写http的main.yml

编写mysql的main.yml

编写phpmain.yml

编写Discuz的main.yml

编写playbook

五、执行


一、实验准备

192.168.115.148:ansbile

192.168.115.149

192.168.115.151

设置防火墙、selinux

systemctl stop firewalld

setenforce 0

二、设置ansbile的hosts文件

[group]
192.168.115.148
192.168.115.149
192.168.115.151

三、在192.168.115.148上完成相关准备

上传Discuz_X3.3_SC_UTF8.zip

配置本地源、确保我们的sr0挂载后可以使用

vim /etc/local.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0

四、编写roles

创建目录

cd /etc/ansible/roles/
mkdir -p {httpd,mysql,php,Discuz}/{files,tasks,handlers,templates,vars,meta}
touch {httpd,mysql,php,Discuz}/{tasks,handlers,vars,meta}/main.yml
tree
.
├── Discuz
│   ├── files
│   ├── handlers
│   │   └── main.yml
│   ├── meta
│   ├── tasks
│   │   └── main.yml
│   ├── templates
│   └── vars
├── http
│   ├── files
│   ├── handlers
│   ├── meta
│   ├── tasks
│   │   └── main.yml
│   ├── templates
│   └── vars
├── mysql
│   ├── files
│   ├── handlers
│   ├── meta
│   ├── tasks
│   │   └── main.yml
│   ├── templates
│   └── vars
└── php
    ├── files
    ├── handlers
    ├── meta
    ├── tasks
    │   └── main.yml
    ├── templates
    └── vars

编写http的main.yml

vim /ect/ansbile/roles/http/tasks/main.yml
---
- name: 删除原来的yum源
  shell: rm -rf /etc/yum.repos.d/*
- name: 分发本地源文件
  copy: src=/etc/local.repo dest=/etc/yum.repos.d/
- name: 挂载本地sr0光盘
  shell: mount /dev/sr0 /mnt
- name: 安装http服务
  yum: name=httpd state=present
- name: 启动httpd服务,并设为开机自启
  service: name=httpd state=started enabled=yes
- name: 删除httpd默认的访问网页
  shell: rm -rf /var/www/html/*

编写mysql的main.yml

vim /etc/ansible/roles/mysql/tasks/main.yml
---
- name: 安装mysql
  shell: yum -y install mariadb mariadb-server
- name: 启动mariadb设为开机自启
  shell: systemctl start mariadb && systemctl enable mariadb
- name: 创建数据库hy
  shell: mysql -e 'create database hy;'
- name: 创建用户qzh
  shell: mysql -e 'create user"qzh"@"localhosr" identified by "123.com";'
- name: 为用户qzh授权hy库中的所有权限
  shell: mysql -e 'grant all privileges on hy.* to "qzh"@"localhost";'

编写phpmain.yml

vim /etc/ansible/roles/php/tasks/main.yml 
---
- name: 安装php环境/依赖
  yum: name=php,php-gd,php-ldap,php-odbc,php-pear,php-xml,php-xmlrpc,php-mbstring,php-snmp,php-soap,curl,curl-devel,php-bcmath,php-mysql state=present

编写Discuz的main.yml

vim /etc/ansible/roles/Discuz/tasks/main.yml
---
- name: 分发论坛文件
  copy: src=/Discuz_X3.3_SC_UTF8.zip dest=/opt
- name: 安装zip解压工具
  yum: name=unzip state=present
- name: 解压论坛
  shell: cd /opt && unzip Discuz_X3.3_SC_UTF8.zip
- name: 移动论坛文件
  shell: mv /opt/upload/* /var/www/html
- name: 修改属主为Apache
  shell: chown -R apache /var/www/html/*
  notify: restart httpd

编写playbook

vim /etc/ansible/lamp.yml
---
- hosts: group
  remote_user: root
  roles:
    - http
    - mysql
    - php
    - Discuz

五、执行

ansible-playbook /etc/ansible/lamp.yml

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/999123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

调用视频直播点播平台EasyDSS流媒体服务器上传点播文件接口的具体操作步骤

EasyDSS互联网视频云平台可提供一站式的视频转码、点播、直播、推拉流、时移回放等服务,也能支持4K视频的直播、点播等功能。EasyDSS可用于视频点播,并支持OBS、推流相机、EasyRTMP等设备的推流直播,可应用在AR、VR、无人机推流、虚拟直播、教…

JavaScript中迭代:For循环

之前我们学习过if_else这种控制结构,实际上,JavaScript中存在另一中控制结构,那就是循环,本节我们将来学习for循环: ● For循环的基本如下 for (初始值;什么条件下循环会结束;更新初始值&#…

13.Xaml Slider控件 -->滑块控件

1.运行图片 2.运行源码 a.xaml源码 <Grid Name="Grid1"><!--Maximum="100" 最大值Minimum="0" 最小值Value="50" 设定值Orientation

3.k8s dashboard设置域名登录案例(ingress版本为1.3.1)

文章目录 前言一、安装ingress1.1 下载ingress部署文件1.2 查看是否安装成功 二、配置dashboard域名映射2.1.在windows和linux添加上域名映射2.2 生成tls证书2.3 新增ingress配置2.3 验证 总结 前言 前面搭建了集群&#xff0c;配置了账号密码登录&#xff0c;现在配置k8s das…

认识 URL

基本概念 平时我们俗称的 "网址" 其实就是说的 URL (Uniform Resource Locator 统一资源定位符). 互联网上的每个文件都有一个唯一的URL&#xff0c;它包含的信息指出文件的位置以及浏览器应该怎么处理它. URL 的详细规则由 因特网标准RFC1738 进行了约定. (https://…

智能井盖:把好城市地下“安全门”

城市的井盖遍布大街小巷&#xff0c;然而&#xff0c;随着时间的推移和交通负荷的增加&#xff0c;井盖老化、损坏问题也日益凸显&#xff0c;“会跳舞的井盖”问题在各处屡有发生&#xff0c;井盖作为城市地下生命线的“守护者”&#xff0c;其安全问题也备受关注。这些问题如…

【深度学习】 Python 和 NumPy 系列教程(七):Python函数

目录 一、前言 二、实验环境 三、Python函数基础 1. 定义函数 2. 参数传递 3. 函数调用 4. 返回值 5. 函数文档字符串 四、将函数存储在模块中 1. 创建模块 2. 导入模块 a. import 模块名 b. from 模块名 import 函数名 c. from 模块名 import * 五、多种形式的…

日撸java_day66-68

文章目录 主动学习ALEC代码运行结果 主动学习ALEC 代码 package machineLearning.activelearning;import weka.core.Instances;import java.io.FileReader; import java.io.IOException; import java.util.Arrays;/*** ClassName: Alec* Package: machineLearning.activelear…

Linux中的虚拟文件系统(virtual file system)

要回答为何Linux系统能够支持多种不同类型的文件系统&#xff1f;是怎么做到的&#xff1f;这就得研究一下Linux中的虚拟文件系统&#xff08;简写为VFS&#xff09;&#xff0c;才能给出答案了。 虚拟文件系统&#xff08;VFS&#xff09; 是一个处于内核中的软件层&#xff0…

智能交叉领域的几个“为什么”?

智能是一个交叉性学科&#xff0c;涵盖了计算机科学、数学、物理、逻辑学、心理学、社会学等多个领域。它的研究和应用领域广泛&#xff0c;包括人机交互、人机融合智能、机器学习、自然语言处理、计算机视觉、智能控制等。 尽管智能在近年来发展迅速&#xff0c;但仍然有人可能…

数据库_之常用API的使用

数据库_之电商API MySQL C API 使用&#xff08;基本函数&#xff09; Mysql C API函数详解 MySQL的常用API 一个常用的程序调用MySQL数据库的时候通常都会调用以下API,下面来逐个分析. mysql_init() //函数原型 MYSQL *STDCALL mysql_init(MYSQL *mysql);这个API主要是用来分…

IP的基础知识、子网掩码、网关、CIDR

IP IP指网际互连协议&#xff0c;Internet Protocol的缩写&#xff0c;是TCP/IP体系中的网络层协议。 设计IP的目的是提高网络的可扩展性&#xff1a;一是解决互联网问题&#xff0c;实现网络的互联互通&#xff1b;二是解除顶层网络应用和底层网络技术之间的耦合。 根据端到端…

基于SpringBoot+Vue前后端分离的学校心理健康测试系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 研究背景介绍&#xf…

花粉“不讲武德”,飞行途中公然使用卫星通话,严重违反民航规定

华为Mate 60 Pro/Pro推出卫星电话功能&#xff0c;华为终端BG CTO李小龙呼吁用户遵守飞行安全规定。 近日&#xff0c;华为推出了崭新的Mate 60 Pro/Pro手机系列&#xff0c;其中的卫星电话功能引起了广泛的热议。这款智能手机的卫星电话功能可与相关运营商的服务配合使用&…

LeetCode:长度最小的子数组

题目 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 。 示例 1&#xff1a; 输入&…

AI大模型(LLM)、聊天机器人整理(持续更新)by pickmind

原文&#xff1a;https://blog.pickmind.xyz/article/3c87123f-d283-4a05-8e43-4ee8550cf22f 目录&#xff1a; 文章目录 国内获批大模型国内大模型深渊图Open-source Large Language Models Leaderboard&#xff08;国外&#xff09;lmsys发布的大模型排行榜&#xff08;国外…

Git命令拉取代码

流程 1在本地clone项目【保持与远程仓库一致】 此时已绑定远程仓库 git clone xxxx 2.添加文件 3.放到暂存区 git add 4.提交到本地仓库 git commint -m "提示信息" 5推送到远程仓库 git push origin master 其他命令 分支命令 分支就是每个人开发 互不影响…

Qt应用开发(基础篇)——组合框容器 QGroupBox

一、前言 QGroupBox继承于QWidget&#xff0c;是一个带有标题的组合框架容器控件。 QGroupBox组合框容器自带一个顶部标题&#xff0c;一个面板。面板内部展示各种各样的部件&#xff0c;标题用来解释这些部件为什么集合在一起&#xff0c;并且支持键盘快捷方式切换部件焦点。比…

中断(全网最细!)

什么是中断&#xff1f; 中断是让单片机具有处理外部和内部随机发生事件实时处理的能力&#xff1b; 中断提高了单片机处理外部或内部的能力&#xff1b; 芯片在处理某一个A事件&#xff0c;发生了一件B事件&#xff0c;请求芯片&#xff08;中断发生&#xff09;去处理B事件…

机器学习中岭回归、LASSO回归和弹性网络与损失函数

今天咱们来聊点纯技术的东西&#xff0c;这东西是基础&#xff0c;不说往后没法说&#xff0c;在机器学习领域中&#xff0c;我们可以通过正则化来防止过拟合&#xff0c;什么是正则化呢&#xff1f;常见的就是岭回归、LASSO回归和弹性网络。 先说说什么叫做过拟合&#xff1f…