1 安装 Jenkins
IP 地址 | 安装工具 | 系统版本 |
---|---|---|
192.168.31.80 | jenkins + ansible | Ubuntu 18.04 |
192.168.31.81 | mysql | Ubuntu 18.04 |
# 安装 jdk 环境
apt -y install openjdk-8-jdk
# 验证 jdk 版本
java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~18.04-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
# deb 包安装 jenkins 配置
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/debian-stable/jenkins_2.289.3_all.deb
# 安装 jenkins
apt-cache madison daemon
apt install daemon
dpkg -c jenkins_2.289.3_all.deb
dpkg -i jenkins_2.289.3_all.deb
# Ubuntu 配置文件
[root@jenkins-master ~]# grep -Ev "#|^$" /etc/default/jenkins
NAME=jenkins
JAVA_ARGS="-Djava.awt.headless=true"
PIDFILE=/var/run/$NAME/$NAME.pid
JENKINS_USER=root
JENKINS_GROUP=root
JENKINS_WAR=/usr/share/$NAME/$NAME.war
JENKINS_HOME=/var/lib/$NAME
RUN_STANDALONE=true
JENKINS_LOG=/var/log/$NAME/$NAME.log
JENKINS_ENABLE_ACCESS_LOG="no"
MAXOPENFILES=8192
HTTP_PORT=8080
PREFIX=/$NAME
JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT"
[root@jenkins-master ~]#
[root@jenkins-master ~]# systemctl restart jenkins.service
[root@jenkins-master ~]# systemctl status jenkins.service
● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; generated)
Active: active (exited) since Sun 2021-08-08 17:06:26 CST; 7s ago
Docs: man:systemd-sysv-generator(8)
Process: 3887 ExecStart=/etc/init.d/jenkins start (code=exited, status=0/SUCCESS)
8月 08 17:06:25 jenkins systemd[1]: jenkins.service: Succeeded.
8月 08 17:06:25 jenkins systemd[1]: Stopped LSB: Start Jenkins at boot time.
8月 08 17:06:25 jenkins systemd[1]: Starting LSB: Start Jenkins at boot time...
8月 08 17:06:25 jenkins jenkins[3887]: Correct java version found
8月 08 17:06:25 jenkins jenkins[3887]: * Starting Jenkins Automation Server jenkins
8月 08 17:06:25 jenkins su[3920]: (to root) root on none
8月 08 17:06:25 jenkins su[3920]: pam_unix(su-l:session): session opened for user root by (uid=0)
8月 08 17:06:25 jenkins su[3920]: pam_unix(su-l:session): session closed for user root
8月 08 17:06:26 jenkins jenkins[3887]: ...done.
8月 08 17:06:26 jenkins systemd[1]: Started LSB: Start Jenkins at boot time.
[root@jenkins ~]#
# 访问
http://192.168.31.80:8080
# 登录密码
[root@jenkins-master ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
5efd0ff49fb144f0a163bd568a47d833
[root@jenkins-master ~]#
2 安装 ansible
# 安装 ansible
apt install ansible
# 生成秘钥对并将公钥拷贝到目的机器
ssh-keygen
ssh-copy-id 192.168.31.81
# 验证是否可以免密登录
ssh 192.168.31.81
# 编写 hosts 文件
grep -A 1 dbsrv /etc/ansible/hosts
[dbsrv]
192.168.31.81
# 编写 yml 文件测试
mkdir -p /data/ansible
cat /data/ansible/db.yaml
---
- hosts: dbsrv
remote_user: root
gather_facts: false
tasks:
- name: show databases
shell: "mysql -uroot -p123456 -e 'show databases;use mysql;show tables;'"
register: result
- debug: msg="{{ result }}"
# 执行 playbook
ansible-playbook /data/ansible/db.yaml
3 Jenkis 安装 ansible 插件
登录 jenkins
http://192.168.31.80:8080
Manage Jenkins — Manage Plugins
可选插件 — 搜索 ansible – 勾选 Ansible
安装成功
配置 Ansible 和 anbile-playbook 命令及命令路径
Manage Jenkins – Global Tool Configuration – Ansible 安装
4 创建项目测试 jenkins + ansible
4.1 创建 Ansible Ad-Hoc Commad 测试
在远程机器(dbsrv:192.168.31.81)上(使用 shell 模块)直接执行 anbile 命令
查看构建结果
4.2 创建 Ansible Playbook 测试
cat /data/ansible/db.yaml
---
- hosts: dbsrv
remote_user: root
gather_facts: false
tasks:
- name: show databases
shell: "mysql -uroot -p123456 -e 'show databases;use mysql;show tables;'"
register: result
- debug: msg="{{ result }}"
查看构建结果