jenkins调用ansible部署lnmp平台-Discuz论坛

目录

构建连接

通过SSH连接

服务器:192.168.158.36

客户端:192.168.158.37

[启用 jenkins](#启用 jenkins)

声明:这里服务器里jenkins和ansible在同一台192.168.158.36主机上

[注意 :在生成环境下,jenkins是一台手机,ansible是一台,客户端是一台](#注意 :在生成环境下,jenkins是一台手机,ansible是一台,客户端是一台)

一、jenkins主机中安装并配置密钥

[服务器下载 Ansible 服务](#服务器下载 Ansible 服务)

[在 Jenkins 服务器上生成 SSH 密钥对](#在 Jenkins 服务器上生成 SSH 密钥对)

将公钥部署到远程主机

二、连接远程主机有两种方法

方法一:

修改ansible配置文件

修改ansible配置文件

​编辑测试连接

[方法 二 :](#方法 二 :)

[修改 ansible 配置文件](#修改 ansible 配置文件)

测试

三、jenkins主机中安装ansible插件

jenkins安装ansible插件

安装好的插件都在Tools里

修改jenkins里的ansible插件

四、构建项目

新建项目

选择构建步骤

增加构建步骤:下载nginx,mysql,php服务

验证

增加构建步骤:服务开机自启

nginx服务

mysql服务

php服务

[build now 构建](#build now 构建)

测试nginx,php,mysql

新建一个项目

测试php

增加构建后操作步骤

[Build Now 构建](#Build Now 构建)

验证成功

测试mysql

[Build Now 构建](#Build Now 构建)

验证访问成功

五、部署Discuz

新建任务

[选择 Invode Ansible Ad-Hoc Command](#选择 Invode Ansible Ad-Hoc Command)

unarchive模块

[回到 jenkins 主机](#回到 jenkins 主机)

[赋予 权限](#赋予 权限)

[Build Now 构建](#Build Now 构建)

点击 #1,查看控制太输出

验证

直接访问站点


构建连接

通过SSH连接

服务器:192.168.158.36
客户端:192.168.158.37
启用 jenkins
复制代码
[root@jenkins ~]# systemctl start jenkins
声明:这里服务器里jenkins和ansible在同一台192.168.158.36主机上
注意 :在生成环境下,jenkins是一台手机,ansible是一台,客户端是一台

一、jenkins主机中安装并配置密钥

服务器下载 Ansible 服务

复制代码
[root@jenkins ~]# yum -y install ansible

在 Jenkins 服务器上生成 SSH 密钥对

复制代码
[root@jenkins ~]# su -s /bin/bash jenkins
bash-5.2$ ssh-keygen
将公钥部署到远程主机
复制代码
bash-5.2$ ssh-copy-id root@192.168.158.37

二、连接远程主机有两种方法

方法一:

修改ansible配置文件
复制代码
[root@jenkins ~]# vim /etc/ansible/hosts
添加主机组和主机ip
[webServer]
192.168.158.37
修改ansible配置文件
复制代码
[root@jenkins ~]# vim /etc/ansible/ansible.cfg 
编辑文件把下面这个打开
remote_user = root

测试连接

连接出成功

复制代码
bash-5.2$ ansible webServer -m ping

方法 二 :

修改 ansible 配置文件
复制代码
[root@jenkins ~]# vim /etc/ansible/hosts
添加主机组和主机ip,指定用户,指定密钥
[webServer]
192.168.158.37  ansible_user=root ansible_ssh_private_key_file=/var/lib/jenkins/.ssh/id_ed25519
测试
复制代码
[root@jenkins ~]# ansible webServer -m ping

三、jenkins主机中安装ansible插件

jenkins安装ansible插件

安装好的插件都在Tools里

点击 Ansible 安装这里

修改jenkins里的ansible插件

名称:ansible-hoc

命令路径:/usr/bin

再新增一个,然后保存

名称:ansible-playbook

命令路径:/usr/bin

四、构建项目

新建项目

回到 jenkins 首页,

新建 lnmp,选择 freestyle project(自由风格主机),然后就进入到通用配置里

选择构建步骤

找到构建步骤,选择ansible Hoc Commande

增加构建步骤:下载nginx,mysql,php服务

name=nginx,mysql-server,mysql,php-fpm,php,php-mysqlnd state=present

然后save保存

点击build now 构建

验证

下载执行完毕

增加构建步骤:服务开机自启

开机自启:分步骤写

调用service模块

nginx服务

增加构建步骤

选ansible hoc 的

name=nginx state=started enabled=true

mysql服务

与上面相同

增加构建步骤

name=mysqld state=started enabled=true

php服务

增加构建步骤

与上面相同

name=php-fpm state=started enabled=true

然后save保存

build now 构建

测试nginx,php,mysql

新建一个项目

lnmp-test

测试php

增加构建步骤

shell模块

shell命令

选lnmp-ansible

选配置

增加构建后操作步骤

构建稳定时触发,当构建稳定时触发 lnmp-test项目

选择lnmp-test

save保存

Build Now 构建
验证成功

http://192.168.158.37/phpinfo.php

测试mysql

lnmp-test增加构建步骤

保存退出

Build Now 构建

构建成功

验证

访问成功

五、部署Discuz

新建任务

选择 Invode Ansible Ad-Hoc Command
unarchive模块

是ansible里面的解压缩模块

回到 jenkins 主机

赋予 权限

因为zabix读不了root目录,所以移动到/data目录下,并赋予 权限

复制代码
[root@jenkins ~]# rz
rz waiting to receive.**[root@jenkins ~]# 
[root@jenkins ~]# ls
anaconda-ks.cfg  Discuz_X3.5_SC_UTF8_20250205.zip
[root@jenkins ~]# mv Discuz_X3.5_SC_UTF8_20250205.zip /data
[root@jenkins ~]# chmod 777 /data/Discuz_X3.5_SC_UTF8_20250205.zip

Build Now 构建

点击 #1,查看控制太输出
验证

之前增加构建步骤的时候,shell模块的mysql,设置主机为127.0.0.1,用户root,密码为空

设置密码

直接访问站点
相关推荐
tedcloud1232 分钟前
OpenLogi 怎么搭建?用 Rust 打造一个轻量的 Logitech 外设管理工具
linux·运维·服务器·开发语言·后端·rust·开源
七夜zippoe1 小时前
DolphinDB 运维工具实战:自动化脚本体系设计与落地(2.0.x)
运维·dolphindb·自动化脚本·体系设计·体系落地
Wang's Blog1 小时前
Vibe Coding一人即团队系列54:云服务器 Node.js 与 MySQL 9 环境搭建及配置指南
服务器·人工智能·mysql·node.js
玉&心1 小时前
在Docker中部署前端和后端的实现
运维·docker·容器
wdfk_prog1 小时前
Docker 常用语法与命令:CLI、Dockerfile 与 Compose 速查
运维·docker·容器
Zenova EdgeOS1 小时前
Linux eBPF 工业边缘性能观测实战
linux·服务器·网络
skywalk81632 小时前
通过下载Ubuntu ova文件在Virtual Box快速安装ubuntu
linux·运维·ubuntu·virtualbox
姚不倒2 小时前
HAProxy 系列(四):多中间件统一 VIP 入口 — 架构模式与最佳实践
运维·中间件·架构·haproxy
happymade2 小时前
7000 台网络设备批量纳管 & 自动拓扑生成实战——MSRM3 完整操作流程与关键要点复盘
运维·服务器·网络·zabbix·grafana·msrm3
做萤石二次开发的哈哈2 小时前
萤石蓝海 AIoT 一站式工作台:海康LCD会议平板接入,多端大屏运维应用一站生成
运维·物联网·电脑·萤石开放平台·会议室管理·蓝海aiot一站式工作台·otap物模型