持续集成与持续交付(二)—ssh远程连接部署、 jenkins结合ansible部署apche

1、用ssh远程连接部署

重新开一台虚拟机server6

在使用ssh时需要先下载ssh插件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
d
在docker test项目上点击配置,进行配置
在这里插入图片描述
在server6上安装docker

[root@server1 yum.repos.d]# scp docker.repo server6:/etc/yum.repos.d/
[root@server1 sysctl.d]# scp docker.conf server6:/etc/sysctl.d/  
[root@server6 ~]# yum install docker-ce -y  安装docker
[root@server6 ~]# systemctl enable --now docker 
[root@server1 docker]# scp -r certs.d/ server6:/etc/docker/
[root@server1 docker]# systemctl restart docker
[root@server6 ~]# vim /etc/hosts   添加解析
172.25.50.1  server1  reg.westos.org
[root@server4 docker]# scp daemon.json server6:/etc/docker/ 
[root@server6 ~]# systemctl restart docker  重载服务	

2、jenkins结合ansible部署apche

[root@foundation50 docs]# cp  -r ansible/  /var/www/html/
[root@server4 docker]# cd /etc/yum.repos.d/
[root@server4 yum.repos.d]# vim ansible.repo
[ansible]
name=ansible
baseurl=http://172.25.50.250/ansible
gpgcheck=0
[root@server4 yum.repos.d]# yum install -y ansible  安装ansible

在gitlab上新建项目
在这里插入图片描述

[root@server3 ~]# git clone git@172.25.50.3:root/ansible.git   将项目克隆下来
[root@server3 ~]# cd ansible/
[root@server3 ansible]# vim ansible.cfg
[defaults]
remote_user = devops

[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
[root@server3 ansible]# mkdir inventry   创建inventry清单
[root@server3 ansible]# cd inventry/
[root@server3 inventry]# vim test   创建测试组
[test]
172.25.50.5    http_port=8080  指定变量
[root@server3 inventry]# vim  prod   创建生产组
[prod]
172.25.50.6    http_port=80  指定变量
[root@server3 ansible]# vim playbook.yaml   编写playbook
---
- hosts: all
  tasks:
  - name: install apache
    yum:
      name: httpd
      state: present
  - name: configure apache
    template:
      src: httpd.conf.j2
      dest: /etc/httpd/conf/httpd.conf
    notify: restart apache 
  - name: enable apache
    service:
      name: httpd
      state: started
      enabled: yes
  handlers:
    - name: restart apache
      service:
        name: httpd
        state: restarted
[root@server3 ansible]# yum install httpd -y  安装apche主要是为了获取配置文件
[root@server3 ansible]# cp /etc/httpd/conf/httpd.conf  httpd.conf.j2   将httpd配置文件拷贝到当前目录       
[root@server3 ansible]# vim httpd.conf.j2   

在这里插入图片描述

[root@server3 ansible]# git add  .   添加当前目录
[root@server3 ansible]# git commit -m "v1"  提交
[root@server3 ansible]# git push -u origin main  上传

在jenkins上新建任务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@server4 ~]# cd /var/lib/jenkins/workspace/     jenkins从gitlab拉取项目代码所存放位置
[root@server4 workspace]# ls
ansible  ansible@tmp  docker test  test  test@tmp
[root@server4 workspace]# cd ansible   
[root@server4 ansible]# ls   
ansible.cfg  httpd.conf.j2  inventry  playbook.yaml  README.md     
[root@server4 workspace]# id jenkins   jenkins拉取项目是以jenkins用户身份进行拉取的
uid=998(jenkins) gid=996(jenkins) groups=996(jenkins),994(docker)
[root@server4 ansible]# su -- jenkins    
bash-4.2$ cd /var/lib/jenkins/workspace/ansible    jenkins从gitlab拉取项目代码所存放位置
bash-4.2$ ls
ansible.cfg  httpd.conf.j2  inventry  playbook.yaml  README.md    所以要执行 playbook.yaml必须在此路经下运行才可以
bash-4.2$ cat ansible.cfg   查看ansible配置
[defaults]
remote_user = devops    并且我们设置远程登陆用户为devops,所以我们必须在远程主机上创建devops用户

[privilege_escalation]     表示配置了sudo
become=True
become_method=sudo       
become_user=root
become_ask_pass=False
[root@server5 ~]# useradd devops  在server5上创建devops用户
[root@server5 ~]# echo westos |passwd --stdin devops    设置密码
[root@server6 ~]# useradd devops  在server6上创建devops用户
[root@server6 ~]# echo westos |passwd --stdin devops  设置密码
bash-4.2$ ssh-keygen   做免密
bash-4.2$ ssh-copy-id devops@172.25.50.5    以devops用户身份免密server5
bash-4.2$ ssh-copy-id devops@172.25.50.6   以devops用户身份免密server6

由于ansible.cfg配置文件配置了sudo,所以构建主机server5、server6上必须配置sudo
[root@server5 ~]# visudo

在这里插入图片描述

[root@server5 ~]# visudo

在这里插入图片描述
在jenkins上进入ansbile项目进行配置
在这里插入图片描述
在这里插入图片描述

bash-4.2$ curl 172.25.50.5:8080    访问,出现apache测试页
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
	<head>
		<title>Test Page for the Apache HTTP Server
不完美,可以创建一个页面
[root@server3 ansible]# vim playbook.yaml   编辑yaml文件

在这里插入图片描述

[root@server3 ansible]# git commit -a -m "v3"  提交
[root@server3 ansible]# git push -u origin main   推送

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

bash-4.2$ curl 172.25.50.5:8080   访问成功
server5
bash-4.2$ curl 172.25.50.6:80    访问成功
server6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小莫细说linux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值