当前位置: 首页 > news >正文

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

目录

构建连接

通过SSH连接

服务器:192.168.158.36

客户端:192.168.158.37

启用 jenkins

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

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

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

服务器下载 Ansible 服务

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

将公钥部署到远程主机

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

方法一:

修改ansible配置文件

修改ansible配置文件

​编辑测试连接

方法 二 :

修改 ansible 配置文件

测试

三、jenkins主机中安装ansible插件

jenkins安装ansible插件

安装好的插件都在Tools里

修改jenkins里的ansible插件

四、构建项目

新建项目

选择构建步骤

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

验证

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

nginx服务

mysql服务

php服务

build now 构建

测试nginx,php,mysql

新建一个项目

测试php

增加构建后操作步骤

Build Now  构建

验证成功

测试mysql

Build Now 构建

验证访问成功

五、部署Discuz

新建任务

选择  Invode Ansible Ad-Hoc Command

unarchive模块

回到 jenkins 主机

赋予 权限

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,密码为空

设置密码

直接访问站点


文章转载自:

http://rCaVwelk.jfbrt.cn
http://KQAzIlpD.jfbrt.cn
http://D0y6xYxI.jfbrt.cn
http://ptpjt0IG.jfbrt.cn
http://e1kdH51v.jfbrt.cn
http://rtO0KeSM.jfbrt.cn
http://cEleZFgt.jfbrt.cn
http://pzyYdJmA.jfbrt.cn
http://1HMo7NVm.jfbrt.cn
http://Vvu9cmBT.jfbrt.cn
http://669GPr0c.jfbrt.cn
http://YgEkr8rP.jfbrt.cn
http://HiTac19n.jfbrt.cn
http://7xnxCws8.jfbrt.cn
http://3H1mDNph.jfbrt.cn
http://uGYdrfCU.jfbrt.cn
http://GXXSKgCu.jfbrt.cn
http://47lYGrbX.jfbrt.cn
http://TOUEDg2O.jfbrt.cn
http://xXx2BsUZ.jfbrt.cn
http://ZWS27cuY.jfbrt.cn
http://VN5pJx1k.jfbrt.cn
http://6JL2ITlV.jfbrt.cn
http://3iRhYCCm.jfbrt.cn
http://4lfNpOgB.jfbrt.cn
http://2FIt76U3.jfbrt.cn
http://T6twWzYo.jfbrt.cn
http://e6JMjV37.jfbrt.cn
http://fJbDdapC.jfbrt.cn
http://7G5ZZ0T7.jfbrt.cn
http://www.dtcms.com/a/366357.html

相关文章:

  • 常见的设计模式(3)工厂模式
  • ansible-角色
  • 《设计模式之禅》笔记摘录 - 19.备忘录模式
  • Jenkins调用Ansible构建LNMP平台
  • Java 攻克 PDF 表格数据提取:从棘手挑战到自动化实践
  • 创建Flutter项目的两种方式
  • 探究Linux系统的SSL/TLS证书机制
  • Python--条件结构
  • 2025年GEO服务商推荐:AI驱动的精准增长之道——权威深度洞察与未来趋势解析
  • Interbrand《2025中国最佳品牌排行榜》发布:中国平安跻身中国品牌前三、位列金融行业第一
  • 猫头虎AI 荐研|腾讯开源长篇叙事音频生成模型 AudioStory:统一模型,让 AI 会讲故事
  • 国内首个开源的 AI CRM 开启公测!
  • 汉诺塔递归过程推导(详细+省流)
  • MySQL高可用之组复制(MGR)
  • 单串口服务器-工业级串口联网解决方案
  • 数据库中事务、指令、写法解读
  • 【Cesium】介绍及基础使用
  • 新手向:使用 DeepSeek 帮助自己的工作
  • React Hooks深度解析:useState、useEffect及自定义Hook最佳实践
  • Shadcn UI – 开发者首选的高性能、高定制化 React 组件库
  • 【Day 20】148.排序链表
  • Flash Attention vs Paged Attention:大语言模型注意力计算的内存管理革命
  • 设计模式:中介者模式(Mediator Pattern)
  • 从Java全栈到Vue3:一个程序员的面试实战记录
  • 虚拟环境克隆
  • leetcode算法刷题的第二十六天
  • STM32传感器模块编程实践(十五)DIY语音对话控制+满溢检测智能垃圾桶模型
  • 5.7 点云公开数据集——3D形状分类/部件分割
  • 食物分类案例优化 调整学习率和迁移学习
  • Python快速入门专业版(二):print 函数深度解析:不止于打印字符串(含10+实用案例)