# vgo **Repository Path**: DCCooper/vgo ## Basic Information - **Project Name**: vgo - **Description**: # VM-gogogo ## 自动化部署虚机并配置k8s套件 - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-02-27 - **Last Updated**: 2021-03-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 批量化部署步骤记录 ## 路标 - [x] 虚拟机自动设置静态 IP - [x] 主机向虚拟机传输包 - [x] 虚拟机内自动安装并配置 k8s 相关组件 - [ ] 自动配置 k8s 集群 - [ ] 自动安装并配置虚拟机 - [ ] 多脚本集成并可配置 - [ ] 支持回退安装及部署 ## 安装虚拟机 ### 配置 #### 节点 1. 三台 master 节点 2. 六台 worker 节点 #### 网络 1. master 节点 IP 范围: `192.168.122.101~192.168.122.199` 2. worker 节点 IP 范围: `192.168.122.201~192.168.122.255` #### 虚拟机文件路径 1. root: /data/lx/vm 2. master 系列文件: $root/master$i - xml: $master/master$i.xml - qcow2: $master/openEuler-20.09.aarch64.qcow2 3. worker 系列文件: $root/worker$i 4. iso 路径: /data/iso/openEuler-20.09-everything-aarch64-dvd.iso #### 虚拟机配置 ```bash # 1. 修改 xml 文件 - 字段: 需对应其身份, 如 lx_master1, lx_worker1 - . 字段: 需配置上述文件的路径 # 2. 创建虚拟机 virsh create $master/master1.xml # 3. 配置虚拟机静态 IP # 先按照虚拟机 Mac 地址找到对应网络 IP MAC=$(virsh dumpxml lx_master2 | grep "mac address" | awk -F"'" '{print $2}') IP=$(arp -a | grep $MAC | awk -F"[()]" '{print $2}') # 生成静态 IP 配置文件 cat << EOF > ifcfg-eth0 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none IPADDR=192.168.122.101 # 修改为对应 IP PREFIX=24 GATEWAY=192.168.122.1 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth0 UUID=21479ded-a2d6-3794-b5f2-6ae156660ce4 DEVICE=eth0 ONBOOT=yes AUTOCONNECT_PRIORITY=-999 EOF # 生成 DNS 文件 cat << EOF > resolv.conf nameserver 192.168.122.1 EOF # 将文件拷贝进虚拟机,然后执行,变更IP ssh-copy-id $IP # 思考如何自动化 scp ifcfg-eth0 $IP:/etc/sysconfig/network-script/ifcfg-eth0 scp resolv.conf $IP:/etc/resolv.conf ssh IP > ifup eth0 # 至此,IP 已经变为静态 IP ### 简洁配置 # 1) 新建网络配置 eth0 nmcli con add con-name eth0 type ethernet ifname eth0 ipv4.method manual autoconnect yes ipv4.addresses 192.168.122.101/24 ipv4.gateway 192.168.122.1 ipv4.dns 192.168.122.1 # 2) 启动网络配置 eth0 nmcli con up eth0 # 4. 配置 hostname hostnamectl set-hostname master1 # 5. 配置 yum 源 # 这一步可以打包在 tar 包中,一起 scp 过去,然后统一执行 scp /etc/yum.repos.d/openEuler.repo $IP:/etc/repos.d/openEuler.repo # 6. 安装rpm 包 yum install -y docker .... # 7. 生成 ssh 秘钥 ssh-keygen # 然后和 主机配对 ssh-copy-id xxx ``` ## 安装 k8s 组件 可以参考 k8s 组件安装那篇文章