- 集群初始化,包括创建集群、加入所有节点
- 生成超级管理员apitoken,保存到本地执行目录logs/[tokenid]-[host].log
- 数据盘创建LVM接入PVE存储
rm -f /etc/apt/sources.list.d/pve-enterprise.list
cat <<EOF >/etc/apt/sources.list
deb http://mirrors.aliyun.com/debian bullseye main contrib
deb http://mirrors.aliyun.com/debian bullseye-updates main contrib
# security updates
deb http://mirrors.aliyun.com/debian-security bullseye-security main contrib
EOF
apt update -y
apt install -y python3-pip sshpass
pip3 install ansible -i https://pypi.tuna.tsinghua.edu.cn/simple
ansible --version
- pve集群间通过ssh同步集群状态,所以需要自行配置集群间node ssh免密
- 本脚本初始化集群时会在inventory中master节点上创建集群, 其他节点加入进来,所以其余节点要能免密ssh登录master节点
ssh-copy-id [master-ip]
cp hosts.template hosts
hosts文件内容说明
[pve]
# 设定一个主节点,必须按照下面写法,其余节点直接写ip即可
master ansible_ssh_host=10.53.7.1
10.53.7.2
10.53.7.3
[pve:vars]
# ssh账号端口密码
ansible_ssh_user='root'
ansible_ssh_port=22
ansible_ssh_pass='rootpassword'
# 要创建的集群名称
cluster_name = 'test'
# 要创建的apitoken id
apitoken_name = 'root'
# 数据盘符, 自动创建为lvm类型存储
data_device = '/dev/sdb'
# 配置集群
ansible-playbook -i hosts roles/pve.yml -t init,cluster
# 创建apitoken必须和创建lvm存储的节点一起执行,lvm依赖apitoken创建输出的变量
ansible-playbook -i hosts roles/pve.yml -t apitoken,lvm
创建的apitoken会存储在相对路径./logs下,后期可以通过这里创建的apitoken接管pve集群,文件名为[tokenid]-[host].log
ls -l ./logs
total 8
-rw-r--r-- 1 root root 36 Jul 6 17:53 test-10.53.7.1.log
ansible-playbook -i hosts roles/pve.yml -t purge