离线环境部署awx-on-k3s:私有Galaxy NG仓库搭建指南
离线环境部署awx-on-k3s私有Galaxy NG仓库搭建指南【免费下载链接】awx-on-k3sAn example implementation of AWX on single node K3s using AWX Operator, with easy-to-use simplified configuration with ownership of data and passwords.项目地址: https://gitcode.com/gh_mirrors/aw/awx-on-k3s在离线环境中搭建awx-on-k3s时私有Galaxy NG仓库是管理Ansible Collections的关键组件。本指南将详细介绍如何在K3s集群上部署和配置属于你的私有Galaxy NG仓库实现Ansible自动化内容的本地化管理与分发。为什么需要私有Galaxy NG仓库离线环境下无法直接访问公共Ansible Galaxy资源库这会导致Ansible Collections的获取和管理变得困难。Galaxy NG作为Ansible Automation Hub的上游版本提供了以下核心功能本地化存储在内部网络中存储和管理Ansible Collections内容同步从公共Galaxy同步精选Collections到本地私有发布发布和共享内部开发的Ansible Collections访问控制管理用户和组织对Collections的访问权限通过部署私有Galaxy NG团队可以在完全隔离的环境中构建完整的Ansible自动化生态系统。部署前准备工作环境要求已安装K3s的单节点或多节点集群至少2 CPU核心和4GB内存50GB以上可用磁盘空间具备sudo权限的操作系统用户必要文件准备首先克隆项目仓库git clone https://gitcode.com/gh_mirrors/aw/awx-on-k3s cd awx-on-k3s进入Galaxy NG部署目录cd galaxy部署Galaxy OperatorGalaxy Operator是部署和管理Galaxy NG实例的关键组件。执行以下命令部署Galaxy Operatorkubectl apply -k galaxy/operator验证Operator是否成功部署kubectl -n galaxy get all成功部署后你将看到类似以下的输出NAME READY STATUS RESTARTS AGE pod/galaxy-operator-controller-manager-69bdb6886d-jz62p 2/2 Running 0 31s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/galaxy-operator-controller-manager-metrics-service ClusterIP 10.43.73.43 none 8443/TCP 31s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/galaxy-operator-controller-manager 1/1 1 1 31s NAME DESIRED CURRENT READY AGE replicaset.apps/galaxy-operator-controller-manager-69bdb6886d 1 1 1 31s配置Galaxy NG实例生成自签名证书由于是离线环境我们使用自签名证书来配置HTTPSGALAXY_HOSTgalaxy.example.com openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out ./galaxy/galaxy/tls.crt -keyout ./galaxy/galaxy/tls.key -subj /CN${GALAXY_HOST}/O${GALAXY_HOST} -addext subjectAltName DNS:${GALAXY_HOST}修改配置文件编辑galaxy/galaxy/galaxy.yaml文件设置正确的主机名... spec: ... ingress_type: ingress ingress_tls_secret: galaxy-secret-tls hostname: galaxy.example.com ...编辑galaxy/galaxy/kustomization.yaml文件设置安全密码... - name: galaxy-postgres-configuration type: Opaque literals: - hostgalaxy-postgres-15 - port5432 - databasegalaxy - usernamegalaxy - passwordGalaxy123! - sslmodeprefer - typemanaged - name: galaxy-admin-password type: Opaque literals: - passwordGalaxy123! ...创建持久化存储目录sudo mkdir -p /data/galaxy/postgres-15 sudo mkdir -p /data/galaxy/file sudo chown 1000:0 /data/galaxy/file sudo mkdir -p /data/galaxy/redis部署Galaxy NG实例执行以下命令部署Galaxy NGkubectl apply -k galaxy/galaxy监控部署进度kubectl -n galaxy logs -f deployments/galaxy-operator-controller-manager当部署成功完成时日志将以类似以下内容结束PLAY RECAP ********************************************************************* localhost : ok140 changed25 unreachable0 failed0 skipped87 rescued0 ignored0验证所有组件是否正常运行kubectl -n galaxy get galaxy,all,ingress,secrets成功部署后Galaxy NG将在你指定的主机名如https://galaxy.example.com/上可用使用admin用户和你在配置文件中设置的密码登录。配置Galaxy NG仓库同步公共Collections创建一个YAML文件列出需要同步的Collections--- collections: - name: community.general source: https://galaxy.ansible.com version: 8.0.0 - name: kubernetes.core source: https://galaxy.ansible.com version: 3.0.0 - name: community.vmware source: https://galaxy.ansible.com version: 3.10.0,4.0.0 - name: awx.awx source: https://galaxy.ansible.com version: 23.0.0 - name: ansible.utils source: https://galaxy.ansible.com version: 2.12.0在Galaxy NG界面中打开CollectionsRemotescommunity点击Edit并上传上述YAML文件打开CollectionsRepositoriescommunitySync点击Sync并等待同步完成发布私有Collections创建一个示例Collection# 创建基础结构 ansible-galaxy collection init demo.collection # 添加必要文件 mkdir -p demo/collection/meta cat EOF demo/collection/meta/runtime.yml --- requires_ansible: 2.9 EOF # 添加模块、插件和角色...构建并发布Collectionansible-galaxy collection build ansible-galaxy collection publish \ demo-collection-1.0.0.tar.gz \ --server https://galaxy.example.com/api/galaxy/ \ --token YOUR_API_TOKEN \ -c在Galaxy NG界面中批准发布的Collection打开CollectionsApproval批准待审核的Collection使其可见与AWX集成使用配置AWX使用Galaxy NG Collections在AWX中添加Galaxy NG凭据创建类型为Ansible Galaxy/Automation Hub API Token的凭据从Galaxy NG获取API URL和令牌CollectionsAPI token在组织中启用Galaxy凭据编辑组织在Galaxy Credentials中启用创建的凭据配置项目使用私有Collections创建包含collections/requirements.yml的项目在requirements.yml中指定私有Collection配置执行环境配置K3s信任私有 registrysudo tee /etc/rancher/k3s/registries.yaml EOF configs: galaxy.example.com: tls: insecure_skip_verify: true EOF sudo systemctl restart k3s在AWX中配置执行环境创建Container Registry类型的凭据注册新的执行环境指向Galaxy NG中的镜像在作业模板中使用新的执行环境常见问题解决同步失败检查网络连接和代理设置确保可以访问外部Galaxy证书问题确保自签名证书已正确生成并配置权限问题验证持久化目录的权限设置是否正确部署超时检查资源使用情况确保节点有足够的CPU和内存总结通过本指南你已经成功在离线环境中部署了awx-on-k3s的私有Galaxy NG仓库。现在你可以同步和管理公共Ansible Collections发布和共享内部开发的私有Collections与AWX集成实现自动化流程的完整闭环这个私有Galaxy NG仓库将成为你离线环境中Ansible自动化的核心组件为团队提供可靠、安全的自动化内容管理解决方案。更多高级配置和最佳实践请参考项目中的galaxy/README.md文件。【免费下载链接】awx-on-k3sAn example implementation of AWX on single node K3s using AWX Operator, with easy-to-use simplified configuration with ownership of data and passwords.项目地址: https://gitcode.com/gh_mirrors/aw/awx-on-k3s创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考