Quay(0) - 安装一个单实例 Quay 环境
《OpenShift / RHEL / DevSecOps 汇总目录》
说明:本文使用 mirror-registry 开源项目安装一个单实例 RedHat Quay 环境。mirror-registry 开源项目是作为安装离线 OpenShift 使用的 Mirror Registry。
文章目录
- 安装 Quay
- 对 Quay 进行镜像操作
- 处理问题
- “unauthorized” 错误
- hosts 文件 IP 地址被修改
- 参考
安装 Quay
注意:安装环境需要至少有 podman 3.0 以上软件,可以使用 root 用户运行以下命令安装 Quay 环境。
- 访问 https://github.com/quay/mirror-registry/releases 查看当前最新版本。
- 执行命令下载离线安装包。
$ QUAY_VERSION=1.1.0
$ curl -OL https://github.com/quay/mirror-registry/releases/download/${QUAY_VERSION}/mirror-registry-offline.tar.gz
$ tar -xvf mirror-registry-offline.tar.gz
- 由于安装使用的缺省 --quayHostname 参数会使用 “$(hostname -f)”,因此要不需要将 “$(hostname -f)” 和对应的 IP 加到 /etc/hosts 中,要不需要为 --quayHostname 参数设置可解析的主机名。本文将主机名 “quay.local” 和对应的 IP 加入到 /etc/hosts 中。
- 执行命令安装 mirror-registry。缺省会在 Quay 中创建名为 “init” 的用户,也可通过 --initUser 参数指定需要创建的用户。
$ QUAY_HOSTNAME=quay.local
$ ./mirror-registry install --initPassword r3dh4t1! --targetHostname ${QUAY_HOSTNAME} --targetUsername root -v__ __/ \ / \ ______ _ _ __ __ __/ /\ / /\ \ / __ \ | | | | / \ \ \ / /
/ / / / \ \ | | | | | | | | / /\ \ \ /
\ \ \ \ / / | |__| | | |__| | / ____ \ | |\ \/ \ \/ / \_ ___/ \____/ /_/ \_\ |_|\__/ \__/ \ \__\___\ by Red HatBuild, Store, and Distribute your ContainersINFO[2022-04-10 08:13:13] Install has begun
DEBU[2022-04-10 08:13:13] Ansible Execution Environment Image: quay.io/quay/mirror-registry-ee:latest
DEBU[2022-04-10 08:13:13] Pause Image: registry.access.redhat.com/ubi8/pause:latest
DEBU[2022-04-10 08:13:13] Quay Image: registry.redhat.io/quay/quay-rhel8:v3.6.4
DEBU[2022-04-10 08:13:13] Redis Image: registry.redhat.io/rhel8/redis-6:1-25
DEBU[2022-04-10 08:13:13] Postgres Image: registry.redhat.io/rhel8/postgresql-10:1-161
INFO[2022-04-10 08:13:13] Found execution environment at /root/execution-environment.tar
INFO[2022-04-10 08:13:13] Loading execution environment from execution-environment.tar
DEBU[2022-04-10 08:13:13] Importing execution enviornment with command: /bin/bash -c sudo /usr/bin/podman image import \--change 'ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' \--change 'ENV HOME=/home/runner' \--change 'ENV container=oci' \--change 'ENTRYPOINT=["entrypoint"]' \--change 'WORKDIR=/runner' \--change 'EXPOSE=6379' \--change 'VOLUME=/runner' \--change 'CMD ["ansible-runner", "run", "/runner"]' \- quay.io/quay/mirror-registry-ee:latest < /root/execution-environment.tar
。。。
。。。
FAILED_EVENTS=False -e ANSIBLE_HOST_KEY_CHECKING=False -e ANSIBLE_CONFIG=/runner/project/ansible.cfg --quiet --name ansible_runner_instance quay.io/quay/mirror-registry-ee:latest ansible-playbook -i root@quay.local, --private-key /runner/env/ssh_key -e "init_user=init init_password=r3dh4t1! quay_image=registry.redhat.io/quay/quay-rhel8:v3.6.4 redis_image=registry.redhat.io/rhel8/redis-6:1-25 postgres_image=registry.redhat.io/rhel8/postgresql-10:1-161 pause_image=registry.access.redhat.com/ubi8/pause:latest quay_hostname=quay.local:8443 local_install=true quay_root=/etc/quay-install" install_mirror_appliance.yml PLAY [Install Mirror Appliance] ******************************************************************************************************************************************************************************************************************************************TASK [Gathering Facts] ***************************************************************************************************************************************************************************************************************************************************
ok: [root@quay.local]TASK [mirror_appliance : Install Dependencies] ***************************************************************************************************************************************************************************************************************************
included: /runner/project/roles/mirror_appliance/tasks/install-deps.yaml for root@quay
。。。
。。。
PLAY RECAP ***************************************************************************************************************************************************************************************************************************************************************
root@quay.local : ok=47 changed=31 unreachable=0 failed=0 skipped=12 rescued=0 ignored=0
- 查看本地运行的的 container、pod 和系统服务。
$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3fbcdc27aead registry.access.redhat.com/ubi8/pause:latest 8 minutes ago Up 8 minutes ago 0.0.0.0:8443->8443/tcp ee29d638c8e6-infra
666800d74583 registry.redhat.io/rhel8/postgresql-10:1-161 run-postgresql 8 minutes ago Up 8 minutes ago 0.0.0.0:8443->8443/tcp quay-postgres
99d38cb14db1 registry.redhat.io/rhel8/redis-6:1-25 run-redis 8 minutes ago Up 8 minutes ago 0.0.0.0:8443->8443/tcp quay-redis
2ba875a1edd9 registry.redhat.io/quay/quay-rhel8:v3.6.4 registry 8 minutes ago Up 8 minutes ago 0.0.0.0:8443->8443/tcp quay-app$ podman pod ps
POD ID NAME STATUS CREATED INFRA ID # OF CONTAINERS
ee29d638c8e6 quay-pod Running 7 minutes ago 3fbcdc27aead 4$ systemctl list-units --type service | grep quay
quay-app.service loaded active running Quay Container
quay-pod.service loaded active exited Infra Container for Quay
quay-postgres.service loaded active running PostgreSQL Podman Container for Quay
quay-redis.service loaded active running Redis Podman Container for Quay
对 Quay 进行镜像操作
- 用浏览器访问 https://${QUAY_HOSTNAME}:8443/,然后登录进入 Quay 的控制台。
- 创建一个名为 busybox 的 Repository,可以是 Public 或 Private 类型。
- 如果是 Private 类型的 Repository 则需要登录 Quay。
$ podman login -u init -p r3dh4t1! ${QUAY_HOSTNAME}:8443 --tls-verify=false
Login Succeeded!
- 先从 docker 下载 busybox 镜像,然后推送到 Quay上,最后验证可以使用。
$ podman pull docker.io/library/busybox:latest
$ podman tag docker.io/library/busybox:latest ${QUAY_HOSTNAME}:8443/init/busybox:latest
$ podman push ${QUAY_HOSTNAME}:8443/init/busybox:latest --tls-verify=false
$ podman pull ${QUAY_HOSTNAME}:8443/init/busybox:latest --tls-verify=false
处理问题
“unauthorized” 错误
在向 Quay 推送 Image 的时候如果出现以下错误,可以用后面操作尝试解决。
Error uploading manifest latest to quay.local:8443/init/busybox: unauthorized: access to the requested resource is not authorized
或
Error initiating layer upload to /v2/init/busybox/blobs/uploads/ in quay.local:8443: unauthorized: access to the requested resource is not authorized
- 用前面在 Quay 中创建的 init 用户和对应密码创建用来认证的字符串。
$ REGISTRY_AUTH=$(echo -n init:r3dh4t1! | base64)
$ echo ${REGISTRY_AUTH}
aW5pdDpyM2RoNHQxIQ==
- 如果还没有 ~/.docker/config.json 文件,则执行以下命令。
$ cat > ~/.docker/config.json << EOF
{"auths": {"${QUAY_HOSTNAME}:8443": {"auth": "${REGISTRY_AUTH}","email": "you@example.com"}
}
EOF
- 如果已经有 ~/.docker/config.json 文件,则执行以下命令:
$ echo \"${QUAY_HOSTNAME}:8443\":\{\"auth\":\"${REGISTRY_AUTH}\",\"email\":\"you@example.com\"},
"quay.local:8443":{"auth":"aW5pdDpyM2RoNHQxIQ==","email":"you@example.com"},
然后将返回结果加入到 ~/.docker/config.json 文件中 “auths”: { 的后面。完成后 ~/.docker/config.json 内容前面应该如下:
{"auths": {"quay.local:8443": {"auth": "aW5pdDpyM2RoNHQxIQ==","email": "you@example.com"},。。。
}
hosts 文件 IP 地址被修改
当使用 /etc/hosts 文件解析主机名和 IP 地址的时候,发现 Quay 的安装过程会将 /etc/hosts 文件中主机名对应的 IP 修改为 127.0.0.1。目前还不太清楚具体原因,不过可以在安装后再将 /etc/hosts 文件中的内容回复回来。
参考
https://github.com/quay/openshift-mirror-registry
https://docs.openshift.com/container-platform/4.10/installing/disconnected_install/installing-mirroring-creating-registry.html
Quay(0) - 安装一个单实例 Quay 环境相关推荐
- Oracle11.2.0.4数据库单实例补丁安装
Oracle11.2.0.4数据库单实例补丁安装 1.解压p6880880_112000_Linux-x86-64.zip 生成OPatch文件夹,覆盖原有OPatch文件夹 2.解压p2881387 ...
- linux dump命令 异机,Oracle 11.2.0.4 从单实例,使用RMAN 异机恢复到RAC
Oracle 11.2.0.4从单实例,使用RMAN异机恢复到RAC 注意: (1)迁移的2个db版本版本要一致.包括小版本. (2)RMAN异机恢复的时候,db_name必须相同.如果说要想改成其他 ...
- Oracle 11.2.4.0 ACTIVE DATAGUARD 单实例安装(COPY创建备库)
Oracle 11.2.4.0 ADG 单实例安装(COPY创建备库) 规划: 主: OS: Linux Centos 6.5 X64 hostname:ORA11G-DG1 ipaddress:19 ...
- oracle安装卡在create inventory_滴滴云服务器上安装Oracle12cR2单实例数据库
一.相关说明 Oracle数据库是由美国甲骨文公司推出的一款优秀的关系型数据库.当前最新版为Database 19c.本文简述Oracle Database 12cR2在滴滴云主机上的安装过程.如需更 ...
- 滴滴云服务器上安装Oracle12cR2单实例数据库
一.相关说明 Oracle数据库是由美国甲骨文公司推出的一款优秀的关系型数据库.当前最新版为Database 19c.本文简述Oracle Database 12cR2在滴滴云主机上的安装过程.如需更 ...
- 使用mongo shake实现从一个单实例mongo往多个mongo单实例进行数据同步
一 实验环境 二 实验步骤 2.1 确保源端mongo已开启oplog 可参考单实例MongoDB 如何开启Oplog_雅冰石的专栏-CSDN博客 2.2 安装mongoshake 在每个目标端都安装 ...
- 磁盘挂载与gcc9.3.0安装(Rocky Linux 8.5 环境)
目录 一.磁盘挂载 1.磁盘情况查看 2.对sda这块硬盘进行分区,这里只分一个区 3.磁盘格式化 4.创建挂载点 5.配置磁盘挂载信息重启后生效配置 二.gcc9.3.0安装 1.安装依赖 2.手动 ...
- MySQL8.0安装教程,在Linux环境安装MySQL8.0教程,最新教程 超详细
在Linux系统安装MySQL8.0,网上已经有很多的教程了,到自己安装的时候却发现各种各样的问题,现在把安装过程和遇到的问题都记录下来. 需要说明的一点是我使用的是SSH secure shell ...
- 安装oracle 11gR2单实例+ASM
安装oracle11gR2单实例+ASM,让新手走向数据库管理员 一.介绍 因业务需要,最近在主系统的基础上搭建一套mini系统,本文只讲ORACLE数据库+ASM磁盘管理工具的安装: 1.服务器系统 ...
最新文章
- U型管铁球或将代替现代火箭喷射装置
- mysql mtq_mysql基本操作 - osc_r3mtqivi的个人空间 - OSCHINA - 中文开源技术交流社区
- BZOJ4754 JSOI2016独特的树叶(哈希)
- 定义了浮动元素后margin-bottom失效的解决办法
- 动态规划--编辑距离问题
- nginx httpgzip模块
- 关于丢番图方程x^2-dy^2=-1
- “睡服”面试官系列第八篇之iterator(建议收藏学习)
- linux rz批量上传
- springboot_通过Actuator了解应用程序运行时的内部状况
- linux 安装 vmvare
- 要求员工自愿无偿加班 特斯拉真是拼...
- DOM基础、定时器、BOM基础
- 前端自动化构建工具之webpack入门——简单入门
- building xxx gradle project info的解决办法
- c++除法保留小数_BigDecimal 加减乘除、保留小位数
- [Andriod官方API指南]连接之蓝牙
- 【手写字母识别】基于matlab GUI模板匹配手写大写字母识别【含Matlab源码 115期】
- 如何从一个html页面调用另外一个页面的js函数,解决同一页面中两个iframe互相调用jquery,js函数的方法...
- 生产企业ERP流程是什么