做平面设计在那个网站上找图好,北京千锋教育,制作化妆品网站,大悟网站开发目录
一、部署
1、简介
2、部署
二、配置
三、实时触发
四、自动化构建docker镜像
五、通过ssh插件交付任务
六、添加jenkins节点
七、RBAC
八、pipeline
九、jenkins结合ansible参数化构建
1、安装ansible
2、新建gitlab项目
3、jenkins新建项目playbook 一、部…目录
一、部署
1、简介
2、部署
二、配置
三、实时触发
四、自动化构建docker镜像
五、通过ssh插件交付任务
六、添加jenkins节点
七、RBAC
八、pipeline
九、jenkins结合ansible参数化构建
1、安装ansible
2、新建gitlab项目
3、jenkins新建项目playbook 一、部署
1、简介
Jenkins是开源CICD软件领导者 提供超过1000个插件来支持构建、部署、自动化 满足任何项目的需要。Jenkins用Java语言编写可在Tomcat等流行的servlet容器中运行也可独立运行。CI(Continuous integration持续集成持续集成强调开发人员提交了新代码之后立刻进行构建、单元测试。 CD(Continuous Delivery持续交付) 是在持续集成的基础上将集成后的代码部署到更贴近真实运行环境(类生产环境)中。
2、部署 软件下载Index of /jenkins/redhat/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror rpm -ivh jdk-11.0.15_linux-x64_bin.rpm
yum install -y fontconfig
rpm -ivh jenkins-2.395-1.1.noarch.rpm 启动服务 systemctl enable --now jenkins.service
netstat -antlp|grep :8080登录 http://192.168.67.22:8080/ 初始密码: cat /var/lib/ienkins/secrets/initialAdminPassword 安装推荐插件 无需新建用户直接使用admin账户 二、配置 修改密码: 新建项目: 当是这个错误时 在jenkins主机上安装git工具 yum install -y git当是这个错误时 创建密钥并上传gitlab
ssh-keygen添加gitlab认证凭据
复制私钥 当是这个错误时 配置ssh 构建触发器
构建任务
指定分支
查看控制台输出 测试
上传 三、实时触发
安装gitlab插件 配置项目触发器 配置gitlab 再回到demo项目下配置 将前面生成的token输入 测试推送 四、自动化构建docker镜像
安装docker-ce
cd /etc/yum.repos.d/
vim docker.repo[docker]
namedocker-ce
baseurlhttps://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/
gpgcheck0[update]
namecentos
baseurlhttps://mirrors.tuna.tsinghua.edu.cn/centos/7/extras/x86_64/
gpgcheck0yum install -y docker-ce修改内核参数
配置docker默认仓库 拷贝仓库证书
添加解析 测试拉取 安装CloudBees Docker Build and Publish插件 配置项目构建
高级里边 修改docker.sock权限不然jenkins无法直接执行docker命令 把主机上的docker login信息拷贝到Jenkins上
docker login reg.westos.orgcp -r /root/.docker/ /var/lib/jenkins/
cd /var/lib/jenkins/
chown -R jenkins.jenkins .docker/ 在cicd1上提交Dockerfile
vim DockerfileFROM nginx
COPY index.html /usr/share/nginx/htmlecho www.yyl.org index.htmlgit add .
git commit -m add Dockerfile
git push -u origin main此时gitlab会主动触发jenkins构建任务观察jenkins的任务输出 五、通过ssh插件交付任务 新建测试虚拟机cicd3 上安装docker-ce 同上 安装 修改内核参数 拷贝仓库证书 jenkins安装ssh插件 进入系统配置添加ssh主机 添加新的凭据 新建docker_test项目 当project项目成功运行后触发docker_test项目 构建后查看输出 测试 触发 六、添加jenkins节点 安装jdk和git rpm -ivh jdk-11.0.15_linux-x64_bin.rpm
yum install -y git配置解析 安装ssh agent 在节点管理中添加节点 关闭master节点的构建任务数 关闭git主机校验 登录 最后测试构建构建任务会在cicd3节点上运行 在cicd3节点上 七、RBAC
安装插件 修改默认授权策略 新建测试用户 新建角色 用户授权 使用不同的用户登录测试权限是否正确 八、pipeline
添加ssh 新建流水线项目 docker_image_build 配置
pipeline {agent anystages {stage(check out) {steps {git credentialsId: f3a3dc6f-e7d6-45ae-9336-43dca000fcee, url: git192.168.67.21:gitlab-instance-ae16f24d/demo.git, branch: main}}stage(docker build) {steps {sh cd $WORKSPACEdocker build -t reg.westos.org/library/webserver:${BUILD_NUMBER} .}}stage(docker push) {steps {sh REPOSITORYreg.westos.org/library/webserver:${BUILD_NUMBER}docker tag $REPOSITORY reg.westos.org/library/webserver:latestdocker login reg.westos.org -u admin -p 123456docker push $REPOSITORYdocker push reg.westos.org/library/webserver:latest}}stage(docker deploy) {steps {sshagent(credentials: [74dcb735-12f0-419f-aa0c-880ce3a763e9]) {sh ssh -o StrictHostKeyCheckingno root192.168.67.23 docker ps -a |grep myapp docker rm -f myappdocker rmi reg.westos.org/library/webserver:latestdocker run -d --name myapp -p 80:80 reg.westos.org/library/webserver:latest }}}}
} 九、jenkins结合ansible参数化构建 主机环境 主机 IP 角色 cicd1 192.168.67.21 测试机test、devops sudo cicd2192.168.67.22 jenkins、ansible cicd3 192.168.67.23 测试机prod、devops sudo 1、安装ansible
vim /etc/yum.repos.d/ansible.repo[ansible]
nameepel
baseurlhttps://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/
gpgcheck0yum install -y ansibledevops是测试机的ssh免密用户并且配置sudo useradd devops
echo westos | passwd --stdin devops
visudodevops ALL(ALL) NOPASSWD: ALL 在ansible主机上以jenkins身份配置ssh免密到所有测试机 usermod -s /bin/bash jenkins
su - jenkinsssh-copy-id devops192.168.67.21
ssh-copy-id devops192.168.67.23 2、新建gitlab项目 克隆项目 git clone git192.168.67.21:root/playbook.git
cd playbook/vim ansible.cfg[defaults]
command_warningsFalse
remote_userdevops[privilege_escalation]
becomeTrue
become_methodsudo
become_userroot
become_ask_passFalsemkdir inventory
cd inventory/vim test[test]
192.168.67.21 http_port8000vim prod[prod]
192.168.67.23 http_port8080cd ..vim playbook.yaml---
- hosts: alltasks:- name: install the latest version of Apacheyum:name: httpdstate: latest- name: configure apachetemplate:src: httpd.conf.j2dest: /etc/httpd/conf/httpd.confnotify: restart apache- name: Start service httpd, if not startedservice:name: httpdstate: startedenabled: yeshandlers:- name: restart apacheservice:name: httpdstate: restartedyum install -y httpd
cp /etc/httpd/conf/httpd.conf .
mv httpd.conf httpd.conf.j2
vim httpd.conf.j2修改端口
Listen {{ http_port }} 推送项目 git add .
git commit -m add playbook
git push -u origin main3、jenkins新建项目playbook
新建 选择参数构建: 添加首页
echo cicd1 /var/www/html/index.html
echo cicd3 /var/www/html/index.html 测试