{"id":23656307,"url":"https://github.com/cby-chen/kube_ansible","last_synced_at":"2025-09-01T06:33:11.094Z","repository":{"id":110229498,"uuid":"550171756","full_name":"cby-chen/kube_ansible","owner":"cby-chen","description":"使用 ansible 安装 Kubernetes 高可用集群","archived":false,"fork":false,"pushed_at":"2023-02-02T08:19:30.000Z","size":185,"stargazers_count":32,"open_issues_count":1,"forks_count":14,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-02T11:48:58.375Z","etag":null,"topics":["ansible","ansible-playbook","docker","etcd","ingress","kernel","kubernetes","kubernetes-setup"],"latest_commit_sha":null,"homepage":"https://www.oiox.cn","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cby-chen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-12T10:13:06.000Z","updated_at":"2025-04-01T07:53:27.000Z","dependencies_parsed_at":"2023-05-05T17:02:25.603Z","dependency_job_id":null,"html_url":"https://github.com/cby-chen/kube_ansible","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cby-chen/kube_ansible","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cby-chen%2Fkube_ansible","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cby-chen%2Fkube_ansible/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cby-chen%2Fkube_ansible/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cby-chen%2Fkube_ansible/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cby-chen","download_url":"https://codeload.github.com/cby-chen/kube_ansible/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cby-chen%2Fkube_ansible/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273082416,"owners_count":25042282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-01T02:00:09.058Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","ansible-playbook","docker","etcd","ingress","kernel","kubernetes","kubernetes-setup"],"created_at":"2024-12-28T20:28:05.792Z","updated_at":"2025-09-01T06:33:10.446Z","avatar_url":"https://github.com/cby-chen.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"### ansible 二进制安装 k8s\n\n#### 执行此脚本需要在单独的机器执行，在集群之外的机器上执行，因为过程中需要重启集群\n\n适配 v1.25.x 和 v1.26.x 环境\n\nUbuntu 和 CentOS7 和 CentOS8 已支持\n\n地址 ： [cby-chen/kube_ansible: 使用 ansible 安装 Kubernetes 高可用集群 (github.com)](https://github.com/cby-chen/kube_ansible)\n\nhttps://github.com/cby-chen/kube_ansible\n\n```shell\n克隆仓库\ngit clone https://github.com/cby-chen/kube_ansible\n\n如果网络不好可以使用我的代理克隆\ngit clone https://mirrors.chenby.cn/https://github.com/cby-chen/kube_ansible\n\n注意切换版本\ncd v1.25\ncd v1.26\n\n\n在控制主机上进行配置免密\napt install -y sshpass\nssh-keygen -f /root/.ssh/id_rsa -P ''\nexport IP=\"192.168.1.130 192.168.1.131 192.168.1.132 192.168.1.128 192.168.1.129\"\nexport SSHPASS=123123\nfor HOST in $IP;do\n     sshpass -e ssh-copy-id -o StrictHostKeyChecking=no $HOST\ndone\n```\n\n#### 安装 ansibls\n\n```shell\n安装 ansibls\napt install ansible\n```\n\n#### 编辑主机hosts\n\n```shell\n编辑主机hosts\nvim /etc/ansible/hosts \ncat /etc/ansible/hosts \n[kube_pki]\n192.168.1.31\n\n[etcd]\n192.168.1.31 hostname=etcd-1\n192.168.1.32 hostname=etcd-1\n192.168.1.33 hostname=etcd-1\n\n[kube_master]\n192.168.1.31 hostname=k8s-master-1\n192.168.1.32 hostname=k8s-master-2\n192.168.1.33 hostname=k8s-master-3\n\n[kube_node]\n192.168.1.34 hostname=k8s-node-1\n192.168.1.35 hostname=k8s-node-2\n\n[chrony]\n192.168.1.31\n```\n\n#### 编辑需要下载安装包版本\n\n```shell\n编辑需要下载安装包版本\nvim files/download.sh\ncat files/download.sh\n#!/bin/bash\n\n# 查看版本地址：\n# \n# https://github.com/containernetworking/plugins/releases/\n# https://github.com/containerd/containerd/releases/\n# https://github.com/kubernetes-sigs/cri-tools/releases/\n# https://github.com/Mirantis/cri-dockerd/releases/\n# https://github.com/etcd-io/etcd/releases/\n# https://github.com/cloudflare/cfssl/releases/\n# https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG\n# https://github.com/opencontainers/runc/releases/\n# https://download.docker.com/linux/static/stable/x86_64/\n# http://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/el7/x86_64/RPMS/\n\n# 指定版本 kubernetes 只能选择 v1.25.x\n\nkubernetes_server='v1.25.2'\netcd='v3.5.4'\ncni_plugins='v1.1.1'\ncri_containerd_cni='1.6.8'\ncrictl='v1.24.2'\ncri_dockerd='0.2.5'\ncfssl='1.6.2'\ncfssljson='1.6.2'\ndocker_v='20.10.9'\nrunc='1.1.4'\nkernel='5.4.228'\n....\n\n# 执行下载命令\ncd files\nbash download.sh\n\n\n```\n\n#### 编辑证书生成的环境变量\n\n```shell\n编辑证书生成的环境变量\nvim pki/files/pki.sh\ncat pki/files/pki.sh\n#!/bin/bash\nexport k8s_master01=\"192.168.1.130\"\nexport k8s_master02=\"192.168.1.132\"\nexport k8s_master03=\"192.168.1.131\"\nexport lb_vip=\"192.168.1.22\"\n\n略\n```\n\n#### 编辑lb环境变量\n\n```shell\n编辑lb环境变量\nvim lb/files/lb.sh\ncat lb/files/lb.sh\n#!/bin/bash\nexport lb1=\"192.168.1.130\"\nexport lb2=\"192.168.1.132\"\nexport lb3=\"192.168.1.131\"\nexport vip=\"192.168.1.22\"\nexport eth=\"eth0\"\nexport lb=\"192.168.1.130 192.168.1.132 192.168.1.131\"\n\n略\n```\n\n#### 执行部署程序\n\n```shell\nvim  main.yaml\n# 在执行此playbook时，请先 cd files/ 执行 bash download.sh\n\n# 基础环境初始化 \n# hosts 写【etcd、kube master、kube node】所处的IP地址\n# hosts 中的IP若在 /etc/ansible/hosts 中写过即此处无需再写\n# vars 中环境变量需要根据实际情况写\n#     all 写所有IP地址\n#     passed 是所有的系统密码，此密码需要所有主机相同\n- hosts: \n  - etcd\n  - kube_master\n  - kube_node\n  remote_user: root\n  vars:\n    - all: 192.168.1.130 192.168.1.131 192.168.1.132 192.168.1.128 192.168.1.129\n    - passwd: 123123\n  roles:\n    - role: local_init\n    - role: chrony\n      when: \"groups['chrony']|length \u003e 0\" \n    - role: kernel\n    - role: containerd\n    - role: docker\n\n\n\n# 创建证书初始化 \n# hosts 写【kube master 01】所在的IP地址 【建议在 kube master 01 上执行】\n# hosts 中的IP若在 /etc/ansible/hosts 中写过即此处无需再写\n# vars 中环境变量需要根据实际情况写\n#     all 写所有IP地址\n#     etcd 写 etcd 的所有IP地址\n#     Master 写所有 kube master 的IP地址\n#     Work 写所有 kube node 的IP地址\n# \n# 在执行之前请先修改 pki/files/pki.sh 中环境变量 ！！！！！\n# \n- hosts: \n  - kube_pki\n  remote_user: root\n  roles:\n    - role: pki\n  vars:\n    - all: 192.168.1.130 192.168.1.131 192.168.1.132 192.168.1.128 192.168.1.129\n    - etcd: 192.168.1.130 192.168.1.131 192.168.1.132\n    - Master: 192.168.1.130 192.168.1.131 192.168.1.132\n    - Work: 192.168.1.128 192.168.1.129\n\n\n# # 初始化etcd集群\n# # hosts 写【etcd】所在的IP地址\n# # hosts 中的IP若在 /etc/ansible/hosts 中写过即此处无需再写\n- hosts: \n  - etcd\n  remote_user: root\n  roles:\n    - role: etcd\n\n\n# 初始化master集群\n# hosts 写【kube_master】所在的IP地址\n# hosts 中的IP若在 /etc/ansible/hosts 中写过即此处无需再写\n# \n# 在执行之前请先修改 lb/files/lb.sh 中环境变量 ！！！！！\n# \n- hosts: \n  - kube_master\n  remote_user: root\n  roles:\n    - role: lb\n    - role: kube_master\n    - role: completion\n\n\n# 初始化node集群\n# hosts 写【kube_master kube_node】所在的IP地址\n# hosts 中的IP若在 /etc/ansible/hosts 中写过即此处无需再写\n- hosts: \n  - kube_master\n  - kube_node\n  remote_user: root\n  roles:\n    - role: kube_node\n\n\n# 执行部署，hosts写master 随机一个IP即可 calico 和 cilium 二选一即可\n- hosts: \n  - kube_pki\n  remote_user: root\n  roles:\n    - role: calico\n    # - role: cilium\n    - role: coredns\n    - role: dashboard\n    - role: ingress\n    - role: metrics-server\n\n# 执行部署程序\nansible-playbook  main.yaml\n\n```\n\n#### dashboard 使用方法\n```shell\n\n修改网络为NodePort\nkubectl edit svc kubernetes-dashboard\n  type: NodePort\n\n查看端口\nkubectl get svc kubernetes-dashboard -n kubernetes-dashboard\nNAME                   TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE\nkubernetes-dashboard   NodePort   10.108.120.110   \u003cnone\u003e        443:30034/TCP   34s\n\n创建token\nkubectl -n kubernetes-dashboard create token admin-user\neyJhbGciOiJSUzI1NiIsImtpZCI6IkFZWENLUmZQWTViWUF4UV81NWJNb0JEa0I4R2hQMHVac2J3RDM3RHJLcFEifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNjcwNjc0MzY1LCJpYXQiOjE2NzA2NzA3NjUsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhZG1pbi11c2VyIiwidWlkIjoiODkyODRjNGUtYzk0My00ODkzLWE2ZjctNTYxZWJhMzE2NjkwIn19LCJuYmYiOjE2NzA2NzA3NjUsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbi11c2VyIn0.DFxzS802Iu0lldikjhyp2diZSpVAUoSTbOjerH2t7ToM0TMoPQdcdDyvBTcNlIew3F01u4D6atNV7J36IGAnHEX0Q_cYAb00jINjy1YXGz0gRhRE0hMrXay2-Qqo6tAORTLUVWrctW6r0li5q90rkBjr5q06Lt5BTpUhbhbgLQQJWwiEVseCpUEikxD6wGnB1tCamFyjs3sa-YnhhqCR8wUAZcTaeVbMxCuHVAuSqnIkxat9nyxGcsjn7sqmBqYjjOGxp5nhHPDj03TWmSJlb_Csc7pvLsB9LYm0IbER4xDwtLZwMAjYWRbjKxbkUp4L9v5CZ4PbIHap9qQp1FXreA\n```\n\n---\n\n2023-1-10 更新\n\n· 适配v1.26.x 版本\n\n\n2022-11-26更新\n\n· 适配 Ubuntu 和 CentOS7 和 CentOS8 环境\n\n· 优化内核安装逻辑过程\n\n· 优化docker安装过程\n\n· 优化整体安装部署过程缩短时间\n\n\n#### 目录结构\n\n```shell\n.\n├── README.md\n├── v1.25\n│   ├── calico\n│   │   ├── files\n│   │   │   └── calico.yaml\n│   │   └── tasks\n│   │       └── main.yaml\n│   ├── chrony\n│   │   ├── defaults\n│   │   │   └── main.yml\n│   │   ├── handlers\n│   │   │   └── main.yaml\n│   │   ├── tasks\n│   │   │   └── main.yaml\n│   │   └── templates\n│   │       ├── client.conf.j2\n│   │       └── server.conf.j2\n│   ├── cilium\n│   │   ├── files\n│   │   │   ├── connectivity-check.yaml\n│   │   │   └── monitoring-example.yaml\n│   │   └── tasks\n│   │       └── main.yaml\n│   ├── completion\n│   │   ├── files\n│   │   │   └── source.sh\n│   │   └── tasks\n│   │       └── main.yaml\n│   ├── containerd\n│   │   ├── files\n│   │   │   ├── 99-kubernetes-cri.conf\n│   │   │   ├── containerd.conf\n│   │   │   ├── containerd.service\n│   │   │   ├── crictl.yaml\n│   │   │   └── hosts.toml\n│   │   └── tasks\n│   │       └── main.yaml\n│   ├── coredns\n│   │   ├── files\n│   │   │   └── coredns.yaml\n│   │   └── tasks\n│   │       └── main.yaml\n│   ├── dashboard\n│   │   ├── files\n│   │   │   ├── dashboard-user.yaml\n│   │   │   └── dashboard.yaml\n│   │   └── tasks\n│   │       └── main.yaml\n│   ├── docker\n│   │   ├── defaults\n│   │   │   └── main.yaml\n│   │   ├── files\n│   │   │   ├── containerd.service\n│   │   │   ├── cri-docker.service\n│   │   │   ├── cri-docker.socket\n│   │   │   ├── daemon.json\n│   │   │   ├── docker.service\n│   │   │   └── docker.socket\n│   │   └── tasks\n│   │       └── main.yaml\n│   ├── etcd\n│   │   ├── defaults\n│   │   │   └── main.yml\n│   │   ├── files\n│   │   │   └── etcd.service\n│   │   ├── tasks\n│   │   │   └── main.yaml\n│   │   └── templates\n│   │       └── etcd.config.yml.j2\n│   ├── files\n│   │   └── download.sh\n│   ├── ingress\n│   │   ├── files\n│   │   │   ├── backend.yaml\n│   │   │   ├── deploy.yaml\n│   │   │   └── ingress-demo-app.yaml\n│   │   └── tasks\n│   │       └── main.yaml\n│   ├── kernel\n│   │   └── tasks\n│   │       └── main.yaml\n│   ├── kube_master\n│   │   ├── files\n│   │   │   └── bootstrap.secret.yaml\n│   │   ├── tasks\n│   │   │   └── main.yaml\n│   │   ├── templates\n│   │   │   ├── kube-apiserver.service.j2\n│   │   │   ├── kube-controller-manager.service.j2\n│   │   │   └── kube-scheduler.service.j2\n│   │   └── vars\n│   │       └── main.yml\n│   ├── kube_node\n│   │   ├── files\n│   │   │   ├── kubelet-conf.yml\n│   │   │   └── kube-proxy.yaml\n│   │   ├── tasks\n│   │   │   └── main.yaml\n│   │   ├── templates\n│   │   │   ├── kubelet.service.j2\n│   │   │   └── kube-proxy.service.j2\n│   │   └── vars\n│   │       └── main.yml\n│   ├── lb\n│   │   ├── files\n│   │   │   ├── check_apiserver.sh\n│   │   │   └── lb.sh\n│   │   └── tasks\n│   │       ├── lb.yaml\n│   │       └── main.yaml\n│   ├── local_init\n│   │   ├── defaults\n│   │   │   └── main.yaml\n│   │   ├── files\n│   │   │   ├── calico.conf\n│   │   │   ├── ipvs.conf\n│   │   │   ├── kernel.conf\n│   │   │   └── limits.conf\n│   │   ├── handlers\n│   │   │   └── main.yaml\n│   │   └── tasks\n│   │       ├── ipvs.yaml\n│   │       ├── kernel.yaml\n│   │       ├── libseccomp.yaml\n│   │       ├── limits.yaml\n│   │       ├── local.yaml\n│   │       ├── main.yaml\n│   │       ├── network.yaml\n│   │       ├── repo.yaml\n│   │       ├── sshpass.yaml\n│   │       └── yum.yaml\n│   ├── main.yaml\n│   ├── metrics-server\n│   │   ├── files\n│   │   │   └── metrics-server.yaml\n│   │   └── tasks\n│   │       └── main.yaml\n│   └── pki\n│       ├── files\n│       │   ├── admin-csr.json\n│       │   ├── apiserver-csr.json\n│       │   ├── ca-config.json\n│       │   ├── ca-csr.json\n│       │   ├── etcd-ca-csr.json\n│       │   ├── etcd-csr.json\n│       │   ├── front-proxy-ca-csr.json\n│       │   ├── front-proxy-client-csr.json\n│       │   ├── kubelet-csr.json\n│       │   ├── kube-proxy-csr.json\n│       │   ├── manager-csr.json\n│       │   ├── pki.sh\n│       │   ├── scheduler-csr.json\n│       │   └── tar.sh\n│       └── tasks\n│           └── main.yaml\n└── v1.26\n    ├── calico\n    │   ├── files\n    │   │   └── calico.yaml\n    │   └── tasks\n    │       └── main.yaml\n    ├── chrony\n    │   ├── defaults\n    │   │   └── main.yml\n    │   ├── handlers\n    │   │   └── main.yaml\n    │   ├── tasks\n    │   │   └── main.yaml\n    │   └── templates\n    │       ├── client.conf.j2\n    │       └── server.conf.j2\n    ├── cilium\n    │   ├── files\n    │   │   ├── connectivity-check.yaml\n    │   │   └── monitoring-example.yaml\n    │   └── tasks\n    │       └── main.yaml\n    ├── completion\n    │   ├── files\n    │   │   └── source.sh\n    │   └── tasks\n    │       └── main.yaml\n    ├── containerd\n    │   ├── files\n    │   │   ├── 99-kubernetes-cri.conf\n    │   │   ├── containerd.conf\n    │   │   ├── containerd.service\n    │   │   ├── crictl.yaml\n    │   │   └── hosts.toml\n    │   └── tasks\n    │       └── main.yaml\n    ├── coredns\n    │   ├── files\n    │   │   └── coredns.yaml\n    │   └── tasks\n    │       └── main.yaml\n    ├── dashboard\n    │   ├── files\n    │   │   ├── dashboard-user.yaml\n    │   │   └── dashboard.yaml\n    │   └── tasks\n    │       └── main.yaml\n    ├── docker\n    │   ├── defaults\n    │   │   └── main.yaml\n    │   ├── files\n    │   │   ├── containerd.service\n    │   │   ├── cri-docker.service\n    │   │   ├── cri-docker.socket\n    │   │   ├── daemon.json\n    │   │   ├── docker.service\n    │   │   └── docker.socket\n    │   └── tasks\n    │       └── main.yaml\n    ├── etcd\n    │   ├── defaults\n    │   │   └── main.yml\n    │   ├── files\n    │   │   └── etcd.service\n    │   ├── tasks\n    │   │   └── main.yaml\n    │   └── templates\n    │       └── etcd.config.yml.j2\n    ├── files\n    │   └── download.sh\n    ├── ingress\n    │   ├── files\n    │   │   ├── backend.yaml\n    │   │   ├── deploy.yaml\n    │   │   └── ingress-demo-app.yaml\n    │   └── tasks\n    │       └── main.yaml\n    ├── kernel\n    │   └── tasks\n    │       └── main.yaml\n    ├── kube_master\n    │   ├── files\n    │   │   └── bootstrap.secret.yaml\n    │   ├── tasks\n    │   │   └── main.yaml\n    │   ├── templates\n    │   │   ├── kube-apiserver.service.j2\n    │   │   ├── kube-controller-manager.service.j2\n    │   │   └── kube-scheduler.service.j2\n    │   └── vars\n    │       └── main.yml\n    ├── kube_node\n    │   ├── files\n    │   │   ├── kubelet-conf.yml\n    │   │   └── kube-proxy.yaml\n    │   ├── tasks\n    │   │   └── main.yaml\n    │   ├── templates\n    │   │   ├── kubelet.service.j2\n    │   │   └── kube-proxy.service.j2\n    │   └── vars\n    │       └── main.yml\n    ├── lb\n    │   ├── files\n    │   │   ├── check_apiserver.sh\n    │   │   └── lb.sh\n    │   └── tasks\n    │       ├── lb.yaml\n    │       └── main.yaml\n    ├── local_init\n    │   ├── defaults\n    │   │   └── main.yaml\n    │   ├── files\n    │   │   ├── calico.conf\n    │   │   ├── ipvs.conf\n    │   │   ├── kernel.conf\n    │   │   └── limits.conf\n    │   ├── handlers\n    │   │   └── main.yaml\n    │   └── tasks\n    │       ├── ipvs.yaml\n    │       ├── kernel.yaml\n    │       ├── libseccomp.yaml\n    │       ├── limits.yaml\n    │       ├── local.yaml\n    │       ├── main.yaml\n    │       ├── network.yaml\n    │       ├── repo.yaml\n    │       ├── sshpass.yaml\n    │       └── yum.yaml\n    ├── main.yaml\n    ├── metrics-server\n    │   ├── files\n    │   │   └── metrics-server.yaml\n    │   └── tasks\n    │       └── main.yaml\n    └── pki\n        ├── files\n        │   ├── admin-csr.json\n        │   ├── apiserver-csr.json\n        │   ├── ca-config.json\n        │   ├── ca-csr.json\n        │   ├── etcd-ca-csr.json\n        │   ├── etcd-csr.json\n        │   ├── front-proxy-ca-csr.json\n        │   ├── front-proxy-client-csr.json\n        │   ├── kubelet-csr.json\n        │   ├── kube-proxy-csr.json\n        │   ├── manager-csr.json\n        │   ├── pki.sh\n        │   ├── scheduler-csr.json\n        │   └── tar.sh\n        └── tasks\n            └── main.yaml\n\n126 directories, 183 files\n\n```\n\n\u003e **关于**\n\u003e\n\u003e https://www.oiox.cn/\n\u003e\n\u003e https://www.oiox.cn/index.php/start-page.html\n\u003e\n\u003e **CSDN、GitHub、知乎、开源中国、思否、掘金、简书、华为云、阿里云、腾讯云、哔哩哔哩、今日头条、新浪微博、个人博客**\n\u003e\n\u003e **全网可搜《小陈运维》**\n\u003e\n\u003e **文章主要发布于微信公众号**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcby-chen%2Fkube_ansible","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcby-chen%2Fkube_ansible","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcby-chen%2Fkube_ansible/lists"}