linux cpu占用率如何看
229
2022-10-19
#云原生征文# 持续集成CI/CD之工具快速搭建
下一章:持续集成CI/CD之配置管理最佳实践
jenkins快速搭建与配置
安装文档:network create jenkins
2.增加daemon.json配置
设置insecure-registrie是因为,后续使用docker编译时,需要docker镜像仓库存储镜像的。
sudo mkdir /data/jenkins
cat < 3.部署运行docker docker run --name jenkins-docker --privileged \
--network jenkins --network-alias docker \
-e DOCKER_TLS_CERTDIR=/certs \
-e TZ=Asia/Shanghai \
-v /etc/localtime:/etc/localtime:ro \
-v /data/jenkins/jenkins-docker-certs:/certs/client \
-v /data/jenkins/jenkins-data:/var/jenkins_home \
-v /data/jenkins/daemon.json:/etc/docker/daemon.json \
-p 2376:2376 --restart=always -m 4GB --cpus 2 -d docker:dind \
--storage-driver overlay2 修改jenkins-data目录权限 docker run --rm --privileged -u root --name jenkins-test \
-v /data/jenkins/jenkins-data:/var/jenkins-data \
jenkins/jenkins:2.332.2-lts mkdir .m2 && chown -R jenkins:jenkins /var/jenkins-data jenkins部署(docker) 1.自定义jenkins的docker镜像 (注意编译的 jenkins插件版本号问题) #生成dockerfile文件
cat <<\EOF | tee Dockerfile
FROM jenkins/jenkins:2.332.2-lts
USER root
RUN sed -e 's/deb.debian.org/mirrors.aliyun.com/g' -i /etc/apt/sources.list; \
apt-get update && apt-get install -y lsb-release && rm -rf /var/lib/apt/lists/*
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \
https://mirrors.aliyun.com/docker-ce/linux/debian/gpg
RUN echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \
\
$(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
RUN apt-get update && apt-get install -y docker-ce-cli && rm -rf /var/lib/apt/lists/*;
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean:1.25.3 docker-workflow:1.28"
EOF
#编译
docker build -t my-jenkins-blueocean:1.1 . 2.部署运行jenkins容器 默认本地映射目录在/data/jenkins中 docker run --name jenkins-blueocean \
--network jenkins --env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
--env TZ=Asia/Shanghai \
--publish 8080:8080 --publish 50000:50000 \
--volume /data/jenkins/jenkins-data:/var/jenkins_home \
--volume /data/jenkins/jenkins-docker-certs:/certs/client:ro \
--volume /etc/localtime:/etc/localtime:ro \
--restart=always -m 4GB --cpus 2 -d my-jenkins-blueocean:1.1 jenkins插件安装 1.标准推荐安装 访问: --> 选择标准推荐安装 2.设置账号、pwd 标准插件安装完成后,进入到账号设置阶段 账号:admin pwd: xxx 3.选择安装权限、git参数、参数多选插件 安装权限控制插件
Role-based Authorization Strategy
安装git参数插件
Git Parameter
安装参数多选(Active Choices)插件
Active Choices jenkins修改授权策略 1.选择Role-Based Strategy授权策略 系统管理 -> 全局安全配置 -> 授权策略 -> Role-Based Strategy -> 保存 2.增加角色 (管理角色设置可读read,创建执行任务create_job角色) 系统管理 -> Manage and Assign Roles -> Manage Roles
Global roles中增加:build-job【权限:全部read、任务build】 create-job【权限:任务 create】 3.用户分组权限配置 以开放平台为例前缀为ssop-开头 1.系统管理 -> Manage and Assign Roles -> Manage Roles
Item roles中增加:安装到maven仓库【Role to add: 开发平台 Pattern: ssop-.+】【权限:凭据:create、update、view, 任务:全选】
2.系统管理 -> Manage and Assign Roles -> Assign Roles
User/group to add:输入用户名 --> 勾选read create-job
Item roles:输入用户名 -->开放平台 jenkins-LDAP认证配置 系统管理 -> 全局安全配置 -> 安全域 -> LDAP ####LDAP 服务器
Server:ldap://[IP地址]:489
User search base:dc=XXX
User search filter:cuuid={0}
Group membership attribute:[ldap组的属性]
Manager DN: [ldap管理DN]
Manager Password: [ldap管理DN的pwd]
Display Name LDAP attribute:displayname
Email Address LDAP attribute:mail 当ldap服务挂调用,需要在后台的配置文件中去掉ldap认证,才能访问
<!-- 修改../jenkins-data/config.xml的securityRealm如下:-->
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
<disableSignup>true</disableSignup>
<enableCaptcha>false</enableCaptcha>
</securityRealm>
当ldap使用ssl私有证书情况,需要增加以下操作,才能正常访问ldap服务
# 生成证书cacerts,复制ldap的证书到/data/jenkins/ldapserver.crt
jdk_sec_dir=/opt/java/openjdk/lib/security
docker run --rm -u root --name test-jenkins -w ${jdk_sec_dir} -v /data/jenkins/ldapserver.crt:${jdk_sec_dir}/ldapserver.crt -d jenkins/jenkins:2.332.2-lts
docker exec test-jenkins keytool -import -trustcacerts -alias ldap.talkweb.com.cn -file ldapserver.crt -keystore cacerts -storepass changeit -noprompt
docker cp test-jenkins:/opt/java/openjdk/lib/security/cacerts /data/jenkins
docker stop test-jenkins
# 重新启动jenkins
docker stop jenkins-blueocean
docker rm jenkins-blueocean
docker run --name jenkins-blueocean \
--network jenkins --env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
--env TZ=Asia/Shanghai \
--publish 8080:8080 --publish 50000:50000 \
--volume /data/jenkins/jenkins-data:/var/jenkins_home \
--volume /data/jenkins/jenkins-docker-certs:/certs/client:ro \
--volume /etc/localtime:/etc/localtime:ro \
--volume /data/jenkins/cacerts:/opt/java/openjdk/lib/security/cacerts:ro \
--restart=always -m 4GB --cpus 2 -d my-jenkins-blueocean:1.1 docker镜像仓库registry快速搭建 1.生成登录password mkdir -p /data/docker-registry/{auth,certs,registry};
docker run --rm --entrypoint htpasswd -Bbn [user] [password] > /data/docker-registry/auth/htpasswd 2.生成证书 自己生成证书 cd /data/docker-registry/certs
########生成发布机构的证书######
#1、创建ca.key
openssl genrsa -out ca.key 4096
#2、生成ca.crt
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Huna/L=Changsha/O=XXX/OU=manager/CN=XXX.XXX.com" \
-key ca.key \
-out ca.crt
########生成服务端证书######
#1、生成服务的domain.key
openssl genrsa -out domain.key 4096
#2、生服务的domain.csr
openssl req -sha512 -new \
-subj "/C=CN/ST=Huna/L=Changsha/O=mqm/OU=manager/CN=XXX.XXX.com" \
-key domain.key \
-out domain.csr
#3、生成V3.ext文件
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=XXX.XXX.com
IP.1=192.168.XXX.XXX
IP.2=127.0.0.1
EOF
#4、使用v3.ext文件生成证书domain.crt
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in domain.csr \
-out domain.crt 3.启动registry服务 #!/bin/bash
docker run -d -p 5000:5000 --restart=always \
--name registry \
-v /data/docker-registry/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v /data/docker-registry/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
-v /data/docker-registry/registry:/var/lib/registry \
registry:2 4.验证 #登录
docker login 192.168.XXX.XXX:5000 --username=[user] --password=[password] gitlab快速搭建 假设安装目录在 /data/gitlab 1.初始化 # 数据目录
export GITLAB_HOME=/data/gitlab
# 版本号依次改变
export GITLAB_VERSION=latest # 可以是具体的版本号:如14.8.2-ce.0
# 创建数据目录
mkdir -p ${GITLAB_HOME}/{config,logs,data}
# 复制配置文件
docker run --rm --detach \
--hostname gitlab.example.com \
--name gitlab-test \
--shm-size 256m \
gitlab/gitlab-ce:$GITLAB_VERSION
docker cp gitlab-test:/etc/gitlab/gitlab.rb /data/gitlab/config
# 根据具体的需求修改gitlab.rb 2.使用docker部署gitlab # 数据目录
export GITLAB_HOME=/data/gitlab
# 版本号依次改变
export GITLAB_VERSION=latest # 可以是具体的版本号:如14.8.2-ce.0
# 运行服务
docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab --restart always -e TZ=Asia/Shanghai \
--volume /etc/localtime:/etc/localtime:ro \
--volume $GITLAB_HOME/config:/etc/gitlab:Z \
--volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
--volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
--shm-size 256m \
gitlab/gitlab-ce:$GITLAB_VERSION gitlab-runner快速搭建 1.gitlab-runner运行 # 数据目录
export GITLAB_RUNNER_HOME=/data/gitlab-runner
# 版本号依次改变
export GITLAB_RUNNER_VERSION=latest # 可以是具体的版本号:如v14.8.2
#运行
docker run -d --name gitlab-runner --restart always \
-e TZ=Asia/Shanghai \
-v /etc/localtime:/etc/localtime:ro \
-v $GITLAB_RUNNER_HOME/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:$GITLAB_RUNNER_VERSION 2.gitlab-runner注册 docker exec -i gitlab-runner gitlab-runner register rancher快速搭建 githup官网:run --privileged -d --restart=unless-stopped \
--name=rancher -p 80:80 -p 443:443 \
-v /etc/localtime:/etc/localtime:ro \
-v /data/rancher/db:/var/lib/rancher \
-e TZ=Asia/Shanghai \
-m 4GB --cpus 2 rancher/rancher:v2.6.4 2.rancher配置 # 访问https://127.0.0.1
设置账号:admin,
password:XXX
创建开发环境可读用户:dev,password:XXX portainer快速搭建 官网:服务端运行容器
docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
--restart=always --env TZ=Asia/Shanghai \
-v /etc/localtime:/etc/localtime:ro \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /data/portainer/portainer_data:/data \
portainer/portainer-ce:2.11.0 访问配置 # 访问
https://localhost:9443/
#设置账号
账号:admin
password:XXX 2.portainer代理端安装 # 代理端运行容器
docker run -d -p 9001:9001 --name portainer_agent \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
portainer/agent:2.11.0 【本文正在参加云原生有奖征文活动】,活动链接:https://ost./posts/12598
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~