Centos7安装Harbor1.9.0 && 升级(https)

一. docker安装
阿里云源:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装前关闭selinux和防火墙:
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/sysconfig/selinux && setenforce 0
systemctl stop firewalld
systemctl disable firewalld
2.移除旧的docker版本
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
安装管理工具
yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2
配置国内docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
查看支持的列表
yum list docker-ce --showduplicates | sort -r
#复制想要安装的版本执行以下命令安装
yum install docker-ce- docker-ce-cli- containerd.io
yum install docker-ce-18.09.9-3.el7   docker-ce-cli-18.09.9-3.el7 containerd.io

3.docker-compose安装
wget https://github.com/docker/compose/releases/download/1.24.0/docker-compose-Linux-x86_64
chmod +x docker-compose-Linux-x86_64
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
 docker-compose -v
4.命令自动补全
yum install -y bash-completion

二.自签证书生成篇
harbor访问分ip和域名
1.harbor自签名证书,创建证书存放目录:
mkdir -p /opt/harbordata/ca && cd /opt/harbordata/ca
2. 创建自签名根证书
openssl req   -newkey rsa:4096 -nodes -sha256 -keyout ca.key  -x509 -days 3650 -out ca.crt
CN  ZJ HZ IT YW harbor.abc.com  [email protected]
3. 生成harbor证书文件
假如使用类似于harbor.abc.com的FQDN(Fully Qualified Domain Name)方式来连接registry主机,
则必须使用harbor.abc.com来作为CN(Common Name)否则访问会有问题,假如使用IP地址来连接registry主机的话
,CN可以指定为任何值
openssl req     -newkey rsa:4096 -nodes -sha256 -keyout harbor.abc.com.key    -out harbor.abc.com.csr  ##使用域名
CN  ZJ HZ IT YW harbor.abc.com  [email protected]
openssl req     -newkey rsa:4096 -nodes -sha256 -keyout server.key    -out server.csr  ###ip
CN  ZJ HZ IT YW YW  [email protected]
openssl x509 -req -days 3650 -in harbor.abc.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out harbor.abc.com.crt   ##使用域名
假如你是使用ip的话, 比如使用192.168.1.101来连接registry主机的话,你需要使用如下命令:
echo subjectAltName = IP:192.168.1.101 > extfile.cnf   ###ip
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out server.crt   ##ip

 x509           签发X.509格式证书命令。
 -req           表示证书输入请求。
 -days          表示有效天数
 -extensions    表示按OpenSSL配置文件v3_req项添加扩展。
 -CA            表示CA证书,这里为ca.crt
 -CAkey         表示CA证书密钥,这里为ca.key
 -CAcreateserial表示创建CA证书序列号
 -extfile      指定文件
4. 客户端docker证书
如果如下目录不存在,请创建,如果有域名请按此格式依次创建
mkdir -p /etc/docker/certs.d/192.168.1.101
mkdir -p /etc/docker/certs.d/harbor.abc.com
# 如果端口为443,则不需要指定。如果为自定义端口,请指定端口
 /etc/docker/certs.d/harbor.abc.com:port
# 将ca根证书依次复制到上述创建的目录中
scp ca.crt /etc/docker/certs.d/192.168.1.101/            ##使用IP用此
scp ca.crt /etc/docker/certs.d/harbor.abc.com/   ###使用域名用此

5. 自签证书需要在客户端机器根信任证书
cp ca.pem /etc/pki/ca-trust/source/anchors/harbor-ca.crt  ###目标机器centos
cp ca.pem  /usr/share/ca-certificates/harbor-ca.crt   ##目标机器Ubuntu
echo 'harbor-ca.crt' >>  /etc/ca-certificates.conf     ##目标机器Ubuntu
执行信任证书更新
update-ca-trust  ###cenots     
update-ca-certificates  ##ubuntu
6.(4,5)步骤可以使用ansible-playbook完成client_cert_copy.yml
- hosts: clientnode
  vars:
    - harbor_host:  ip或者域名
  tasks:
  - block:  
      - name: 创建访问harbor证书目录
        file: name=/etc/docker/certs.d/{{ harbor_host }} state=directory
  
      - name: 安装证书到客户端/etc/docker/certs.d/{{ harbor_host }}目录
        copy: src=/opt/ca/ca.crt  dest=/etc/docker/certs.d/{{ harbor_host }}/ca.crt

  - block:  
      - name: 安装证书到ubuntu客户端信任证书目录
        copy: src=/opt/ca/ca.crt  dest=/usr/share/ca-certificates/harbor-ca.crt

      - name: 更新信任证书列表
        lineinfile:
          dest: /etc/ca-certificates.conf
          state: present
          regexp: 'harbor-ca'
          line: 'harbor-ca.crt'

      - name: 执行证书更新命令
        shell: 'update-ca-certificates'

    when:
    - 'ansible_distribution == "Ubuntu"'

  - block:  
      - name: 安装证书到centos客户端信任证书目录
        copy: src=/opt/ca/ca.crt dest=/etc/pki/ca-trust/source/anchors/harbor-ca.crt

      - name:  更新信任证书列表
        shell: 'update-ca-trust'

    when:
    - 'ansible_distribution in ["CentOS","RedHat"]'
#批量执行  
ansible-playbook  client_cert_copy.yml
二.全新安装V1.9
1.​备份原/opt/harbor  /opt/harbordata (假设安装目录/opt/harbor,数据目录/opt/harbordata)
cd /opt/harbor  && docker-compose  stop
cp -rf /opt/harbor /opt/harbor_old
cp -rf /opt/harbordata /opt/harbordata_old

2.下载最新harbor离线包
cd /opt && wget  https://storage.googleapis.com/harbor-releases/release-1.9.0/harbor-offline-installer-v1.9.0.tgz

3.拉下harbor-migrator工具镜像
docker pull goharbor/harbor-migrator:[tag]   tag为要升级的版本如v1.9.0 ##如果是从1.7+升级则需要
因为之前的配置文件名为harbor.cfg需要合并升级成harbor.yml
docker pull goharbor/harbor-migrator:v1.9.0

4.解压
tar xf harbor-offline-installer-v1.9.0.tgz  && cd /opt/harbor
###harbor.yml配置以供参考v.1.9.0版本
hostname: harbor.abc.com  ##可以为域名也可以ip
http:
  port: 80
https:
  port: 443
  certificate: /opt/ca/harbor.abc.com.crt 
  private_key: /opt/ca/harbor.abc.com.key
harbor_admin_password: XXXXXX123
database:
  password: XXXXXXX123
  max_idle_conns: 50
  max_open_conns: 100
data_volume: /opt/harbordata
clair:
  updaters_interval: 12
jobservice:
  max_job_workers: 10
notification:
  webhook_job_max_retry: 10
chart:
  absolute_url: enabled
log:
  level: info
  local:
    rotate_count: 3
    rotate_size: 200M
    location: /var/log/harbor
_version: 1.9.0
proxy:
  http_proxy:
  https_proxy:
  no_proxy: 127.0.0.1,localhost,.local,.internal,log,db,redis,nginx,core,portal,postgresql,jobservice,registry,registryctl,clair
  components:
    - core
    - jobservice
    - clair
#执行命令生成docker-compose.yml文件
  ./prepare --with-clair --with-chartmuseum  ##如果不想保存helm的chart仓库就不要带这2个参数

5.更新配置
cd /opt/harbor
docker-compose stop 
docker run -it --rm -v /opt/harbor/harbor.yml:/harbor-migration/harbor-cfg/harbor.cfg -v /opt/harbor/harbor.yml:/harbor-migration/harbor-cfg-out/harbor.yml goharbor/harbor-migrator:v1.9.0 --cfg up
6. 安装新版本harbor
./install.sh --with-clair --with-chartmuseum ##如果不想保存helm的chart仓库就不要带这2个参数
使用docker-compose  ps查看容器启动状态,如果全部Up则正常
7.访问配置中设置的域名即可
 

你可能感兴趣的:(k8s)