jenkins 执行 ansible 命令

1 安装 Jenkins

IP 地址安装工具系统版本
192.168.31.80jenkins + ansibleUbuntu 18.04
192.168.31.81mysqlUbuntu 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 }}"

查看构建结果

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值