目录
声明:这里服务器里jenkins和ansible在同一台192.168.158.36主机上
注意 :在生成环境下,jenkins是一台手机,ansible是一台,客户端是一台
选择 Invode Ansible Ad-Hoc Command
构建连接
通过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,密码为空
设置密码