diff --git a/ansible/filter_plugins/to_socket.py b/ansible/filter_plugins/to_socket.py index a1de9220..6db91e45 100644 --- a/ansible/filter_plugins/to_socket.py +++ b/ansible/filter_plugins/to_socket.py @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +import os + from kubez_ansible.to_socket import to_socket from kubez_ansible.get_runtime_type import get_runtime_type @@ -20,11 +22,26 @@ ''' +def find_custom_repo(ctx, *args, **kwargs): + dest = kwargs.get('dest') + repo_dir = kwargs.get('repo_dir') + + parts = dest.split('/') + repo_name = parts[len(parts) - 1] + + custom_repo = os.path.join(repo_dir, repo_name) + if os.path.exists(custom_repo): + return custom_repo + else: + return ctx + + class FilterModule(object): '''Kubez-ansible custom jinja2 filters ''' def filters(self): return { 'to_socket': to_socket, - 'get_runtime_type': get_runtime_type + 'get_runtime_type': get_runtime_type, + 'find_custom_repo': find_custom_repo } diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index c9e6af5b..007f5551 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -12,6 +12,9 @@ image_repository: "registry.cn-hangzhou.aliyuncs.com/google_containers" # 自定义镜像仓库 app_image_repository: "harbor.cloud.pixiuio.com/pixiuio" +# 自定义 REPO 仓库 +repo_dir: "/etc/kubez/repo" + # pixiu helm chart 仓库地址 default_repo_name: "pixiuio" default_repo_url: "https://harbor.cloud.pixiuio.com/chartrepo/pixiuio" diff --git a/ansible/roles/baremetal/tasks/install.yml b/ansible/roles/baremetal/tasks/install.yml index 1df664a9..73876ad6 100644 --- a/ansible/roles/baremetal/tasks/install.yml +++ b/ansible/roles/baremetal/tasks/install.yml @@ -9,8 +9,6 @@ - {name: "nfs-kernel-server", group: "storage", os: "Ubuntu", use: "apt"} - {name: "rpcbind", group: "storage", os: "Debian", use: "apt"} - {name: "nfs-kernel-server", group: "storage", os: "Debian", use: "apt"} - - {name: "rpcbind", group: "storage", os: "CentOS", use: "yum"} - - {name: "nfs-utils", group: "storage", os: "CentOS", use: "yum"} - {name: "rpcbind", group: "storage", os: "Rocky", use: "dnf"} - {name: "nfs-utils", group: "storage", os: "Rocky", use: "dnf"} - {name: "rpcbind", group: "storage", os: "openEuler", use: "dnf"} @@ -34,11 +32,9 @@ block: - name: Copy container runtime repos for kubernetes nodes template: - src: "{{ item.src }}" + src: "{{ item.src | find_custom_repo(dest=item.dest, repo_dir=repo_dir) }}" dest: "{{ item.dest }}" loop: - - {"src": docker-ce.repo.j2, "dest": /etc/yum.repos.d/docker-ce.repo, os: "CentOS"} - - {"src": kubernetes.repo.j2, "dest": /etc/yum.repos.d/kubernetes.repo, os: "CentOS"} - {"src": sources.list.j2, "dest": /etc/apt/sources.list, os: "Ubuntu"} - {"src": sources.list.debian.j2, "dest": /etc/apt/sources.list, os: "Debian"} - {"src": docker-ce.repo.j2, "dest": /etc/yum.repos.d/docker-ce.repo, os: "Rocky"} @@ -48,13 +44,12 @@ when: - ansible_distribution == item.os - - name: Add docker, kubernetes and helm gpgs + - name: Add docker, and kubernetes gpgs apt_key: url: "{{ item }}" loop: - https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg - https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg - # - helm.gpg when: - ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' @@ -78,9 +73,6 @@ - {name: "kubelet={{ kube_release_ubuntu }}", os: "Debian", use: "apt"} - {name: "kubectl={{ kube_release_ubuntu }}", os: "Debian", use: "apt"} - {name: "kubeadm={{ kube_release_ubuntu }}", os: "Debian", use: "apt"} - - {name: "kubelet-{{ kube_release }}", os: "CentOS", use: "yum"} - - {name: "kubectl-{{ kube_release }}", os: "CentOS", use: "yum"} - - {name: "kubeadm-{{ kube_release }}", os: "CentOS", use: "yum"} - {name: "kubelet-{{ kube_release }}", os: "Rocky", use: "dnf"} - {name: "kubectl-{{ kube_release }}", os: "Rocky", use: "dnf"} - {name: "kubeadm-{{ kube_release }}", os: "Rocky", use: "dnf"} diff --git a/etc/kubez/globals.yml b/etc/kubez/globals.yml index e0f426aa..0598e6f7 100644 --- a/etc/kubez/globals.yml +++ b/etc/kubez/globals.yml @@ -36,6 +36,9 @@ image_repository: "registry.cn-hangzhou.aliyuncs.com/google_containers" # 自定义镜像仓库 app_image_repository: "harbor.cloud.pixiuio.com/pixiuio" +# 自定义 REPO 仓库 +repo_dir: "/etc/kubez/repo" + ############### # Host Options ###############