文章目录
流程图
一、docker
docker 安装
1. 准备工作,需要关闭selinux和分区
1. vim /etc/selinux/config 修改SELINUX的值为disable
2. vim /etc/fstab 注释 swap的一行
2. 安装
1. 切换镜像源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
2. 查看当前镜像源中支持的docker版本
yum list docker-ce --showduplicates
3. 安装特定版本的docker-ce (必须制定--setopt=obsoletes=0,否则yum会自动安装更高版本)
yum install --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7 -y
4. 添加一个配置文件 并配置docker的仓库(目前配置aliyun仓库)
mkdir /etc/docker
cat <<EOF> /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"]
}
EOF
5. 添加linux服务并重启
systemctl enable docker & systemctl restart docker
6. docker 更新daemon.json之后,必须要更新docker仓库 并重启docekr
systemctl daemon-reload & systemctl restart docker
docker 相关文档:
二、安装gitlab
gilab安装(版本建议安装13版本,其他版本也可以)
1. 安装gitlab的依赖包
yum -y install policycoreutils openssh-server openssh-clients postfix
2. 设置ssh服务开机自启并启动ssh服务
systemctl enable sshd && sudo systemctl start sshd
3. 设置postfix开机自启并启动
systemctl enable postfix && systemctl start postfix
4. 使用wget 下载gitlab包(我用的是13版,比较好用)
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.3.0-ce.1.el7.x86_64.rpm
5. 安装
rpm -ivh gitlab-ce-13.3.0-ce.1.el7.x86_64.rpm
6. 修改gitlab配置
vim /etc/gitlab/gitlab.rb
更改
external_url 'http://服务器IP:端口'
nginx['listen_port'] = 端口
7. 配置并启动gitlab
gitlab-ctl reconfigure 加载配置
gitlab-ctl restart|stop|start|status git服务操作
gitlab-ctl tail 查看日志
8. 注意如果出了错误,解决方案,重复执行第七步
2. gitlab 彻底卸载
1. 停止gitlab服务
gitlab-ctl stop
2. 卸载gitlab
rpm -e gitlab-ce
3. 查看gitlab进程 并杀掉一个叫runsvdir的进程
ps aux | grep gitlab
4. 删除gitlab相关的文件
find / -name *gitlab*|xargs rm -rf 删除所有包含gitlab的文件及目录
find / -name gitlab | xargs rm -rf
5. 注意这样卸载之后重新安装会出现问题,但是问题不大,重复gitlab安装的第七步就好了
三、安装rancher
很简单,官网也有,但是关键在于使用
docker run --privileged -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:v2.5.7
1. 添加集群
2. 自定义安装k8s
3.选择k8s版本,然后直接点下一步
4. 然后跟着提示操作就行,其他的不用管了,会自己搞好的(记住,记得关防火墙)
5.如果想让虚拟机也可以执行k8s指令;请看下
注意,这个只提供如何安装以及初步使用,更多知识,可以网上找;或者关注我之后,我会发布出来
四、安装harbor
1. 准备工作,先安装docker-compose
1. 登入 GitHub ,找到对应版本下载
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
2. 将下载后的文件放到 /usr/local/bin 目录下,并添加执行权限
chmod +x /usr/local/bin/docker-compose
3. 查看版本
docker-compose -version
2. 安装harbor(很简单,因为harbor默认是使用https,所以关键在于生成证书)
需要的docker-compose.yml和harbor.yml这个可以直接用我得,我回放在后面
1. 去官网下载离线包,或者用wegt 对应得包
登入官方地址下载对应版本: https://github.com/goharbor/harbor/releases
wget https://github.com/goharbor/harbor/releases/download/v2.1.1/harbor-offline-installer-v2.1.1.tgz
2. 解压并切换到home/harbor目录
tar xvf harbor-offline-installer-v2.1.1.tgz -C /home/ && cd /home/harbor/
3. 生成证书颁发机构证书
mkdir certs
1、生成 CA 证书私钥 (IP表示你的主机)
openssl genrsa -out ca.key 4096
2、生成 CA 证书。调整-subj选项中的值以反映您的组织。如果使用 FQDN 连接 Harbor 主机,则必须将其指定为公用名 ( CN) 属性。
openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=IP" -key ca.key -out ca.crt
生成服务器证书 证书通常包含一个.crt文件和一个.key文件
1、生成私钥。
openssl genrsa -out IP.key 4096
2、生成证书签名请求 (CSR)。调整-subj选项中的值以反映您的组织。如果使用 FQDN 连接 Harbor 主机,则必须将其指定为公用名 ( CN) 属性并在密钥和 CSR 文件名中使用它。
openssl req -sha512 -new -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=IP" -key IP.key -out IP.csr
3、生成 x509 v3 扩展文件。无论您是使用 FQDN 还是 IP 地址连接到您的 Harbor 主机,您都必须创建此文件,以便为您的 Harbor 主机生成符合主题备用名称 (SAN) 和 x509 v3 的证书扩展要求。替换DNS条目以反映您的域。
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=IP
DNS.2=IP
DNS.3=主机名
EOF
4、使用该v3.ext文件为您的 Harbor 主机生成证书。 将yourdomain.comCRS 和 CRT 文件名中的 替换为 Harbor 主机名。
openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in IP.csr -out IP.crt
向 Harbor 和 Docker 提供证书 生成后ca.crt,yourdomain.com.crt和yourdomain.com.key文件,必须将它们提供给港口和码头工人,和重新配置港使用它们。
2、转换yourdomain.com.crt为yourdomain.com.cert,供 Docker 使用。Docker 守护进程将.crt文件解释为 CA 证书,将.cert文件解释为客户端证书。
openssl x509 -inform PEM -in IP.crt -out IP.cert
3、将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中。您必须首先创建适当的文件夹。如果您将默认nginx端口 443映射到其他端口,请创建文件夹/etc/docker/certs.d/yourdomain.com:port或/etc/docker/certs.d/harbor_IP:port。
mkdir -p /etc/docker/certs.d/IP:harbor端口
cp IP.cert /etc/docker/certs.d/IP:harbor端口/
cp IP.key /etc/docker/certs.d/IP:harbor端口/
cp ca.crt /etc/docker/certs.d/IP:harbor端口/
./install.sh
4、重启 Docker 引擎。
修改 /etc/docker/daemon.json 增加 "insecure-registries": ["https://harbor端口"], 解决 because it doesn't contain any IP SANs
修改 /etc/hosts 添加 主机ip harbor域名 解决 connect: connection refuesd
systemctl restart docker
docker 得证书结构
/etc/docker/certs.d/
└── harborxiaohu.com:port
├── IP.cert <-- Server certificate signed by CA
├── IP.key <-- Server key signed by CA
└── ca.crt
5. 添加docker-compose 和修改harbor.yml
https默认端口是443 可以手动修改,如果修改端口则需要修改docker-compose得nginx得端口
hostname 域名 建议使用当前主机得IP作为域名,如果想自定义得域名到流水线会出问题,
harbor_admin_password harbor密码,
自定义生成得证书
certificate: /home/harbor/certs/ip.crt
private_key: /home/harbor/certs/ip.key
6. 安装harbor
./prepare 这个是当你已经安装harbor之后,更新配置文件的指令
./install.sh 这个是第一次或者你已经删除harbor相关的文件之后执行
docker-compose down -v 停止并删除容器(推荐)
docker-compose up -d 启动harbor
- 生成证书你还可以借鉴官网提供的生成方式,我也是通过这个生成
- docker-compose的指令可以去菜鸟上看
五、安装drone(很简单,可以根据官网安装)
1. 注意目前建议不要安装drone-server的2的版本,因为会一下问题
1. 流水线不会去gitlabc,clone的代码
2. 如果用了1以上2以下的版本会出现 Error response from daemon: client version 1.40 is too new. Maximum supported API version is 1.39
解决方案 官网有提供解决
https://discourse.drone.io/t/error-response-from-daemon-client-version-is-too-new/7882
2.安装指令
openssl rand -hex 16 生成共享密钥
docker run --volume=/var/lib/drone:/data --volume=/var/run/docker.sock:/var/run/docker.sock --env=DRONE_AGENTS_ENABLED=true --env=DRONE_GITLAB_SERVER=http://gitlab ip:端口 --env=DRONE_GITLAB_CLIENT_ID=gitlab应用的id --env=DRONE_GITLAB_CLIENT_SECRET=gitlab应用的密钥 --env=DRONE_SERVER_HOST=drone ip:端口 --env=DRONE_SERVER_PROTO=http --env=DRONE_TLS_AUTOCERT=false --env=DRONE_LOGS_DEBUG=true -e DRONE_RPC_SECRET=共享密钥 -e TZ="Asia/Shanghai" --publish=6533:80 --publish=2443:443 -e DRONE_USER_CREATE=username:root,admin:true --restart=always --detach=true --name=drone drone/drone:1.6.5
docker run -d -v /var/run/docker.sock:/var/run/docker.sock -e DRONE_RPC_PROTO=http -e DRONE_RPC_HOST=drone ip:端口 -e DRONE_RPC_SECRET=共享密钥 -e DRONE_RUNNER_CAPACITY=2 -e DRONE_RUNNER_NAME=my-first-runner -e TZ="Asia/Shanghai" -p 3000:3000 --restart always --env=DOCKER_API_VERSION=1.38 --name runner drone/drone-runner-docker:1
遇到问题,可以找我,互相学习
总结
写这个的原因是因为,花了很长时间搞这个,然后才搭建这个自动化部署安装需要的资料
- harbor配置文件 :链接:https://pan.baidu.com/s/1QgciN3XS4uF-ROe9YO-jbA?pwd=qkfi
提取码:qkfi