⾃动化kolla-ansible部署centos7.9+openstack-train-超。。。
⾃动化kolla-ansible部署centos7.9+openstack-train-超融合⾼可⽤架构
欢迎加QQ:1026880196 进⾏交流学习
环境说明:
1. 满⾜⼀台电脑⼀个⽹卡的环境进⾏模拟测试,由于配置较低,这⾥只涉及常规测试,不做更深⼊开展。
2.如果你是物理机,可以准备2个物理⽹卡,⼀个作为管理⽹接⼝,⼀个作为浮动⽹接⼝(实例上外⽹的需要,这⾥需要交换机⽀持dhcp功能,可以⾃动获取ip地址)。
3.根据环境需要注意⼀下参数修改:
nova_compute_virt_type: "kvm"
vim /etc/kolla/config/f
[libvirt]
inject_password=true
cpu_mode=host-passthrough
virt_type = kvm
1. PC台式电脑硬件配置
2. 虚拟软件配置
3. 节点信息 # 三台融合控制/计算/存储
node1 CPU:4核内存:8GB 系统盘SSD 200GB*1数据盘SSD 300GB*1管理⽹:ens33 192.168.1.20/24浮动⽹:ens34 dhcp ( BOOTPROTO=dhcp )
node2 CPU:4核内存:8GB 系统盘SSD 200GB*1数据盘SSD 300GB*1管理⽹:ens33 192.168.1.21/24浮动⽹:ens34 dhcp ( BOOTPROTO=dhcp )
node3 CPU:4核内存:8GB 系统盘SSD 200GB*1数据盘SSD 300GB*1管理⽹:ens33 192.168.1.22/24浮动⽹:ens34 dhcp ( BOOTPROTO=dhcp )
1. 系统版本
CentOS-7-x86_64-Minimal-2009.iso(CentOS 7.9 64位)
2. 语⾔
英⽂=标准安装
3. 分区
/boot 1000M /swap 4096M 其余/
5. ⽹卡信息
6. 系统基本环境#注意每个节点都要执⾏
1. 安装常⽤软件包
yum install gcc vim wget net-tools ntpdate git -y
2. 关闭防⽕墙
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
3. 关闭selinux
sed -i '/^SELINUX=.*/c SELINUX=disabled' /etc/selinux/config
sed -i 's/^SELINUXTYPE=.*/SELINUXTYPE=disabled/g' /etc/selinux/config
grep --color=auto '^SELINUX' /etc/selinux/config
setenforce 0
4. 主机名:
echo "
192.168.1.20 node1
192.168.1.21 node2
192.168.1.22 node3
">>/etc/hosts
5. ssh免密验证#只在node1下操作,其它节点不执⾏
ssh-keygen
ssh-copy-id root@node1
ssh-copy-id root@node2
ssh-copy-id root@node3
6. 修改ssh
sed -i 's/#ClientAliveInterval 0/ClientAliveInterval 60/g' /etc/ssh/sshd_config
sed -i 's/#ClientAliveCountMax 3/ClientAliveCountMax 60/g' /etc/ssh/sshd_config
systemctl daemon-reload && systemctl restart sshd && systemctl status sshd
9. 安装epel源
yum makecache
yum install -y epel-release
10. 使⽤清华pypi源
11. 安装安装python-pip
yum install python-pip -y
pip install --upgrade "pip < 21.0"
pip install pbr
12. 升级系统软件包
yum update -y
13. 重启系统
reboot
7. 时间同步 #注意每个节点都要执⾏
1. 安装chrony服务
yum -y install chrony
2. 配置chrony⽂件
cp /f{,.bak}
echo "
server ntp1.aliyun iburst
server ntp2.aliyun iburst
server ntp6.aliyun iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 103
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony
">/f
3. 启动服务
systemctl enable chronyd && systemctl restart chronyd && systemctl status chronyd
4. chrony同步源
chronyc sources -v
ntpdate ntp1.aliyun
hwclock -w
5. 配置定时任务
crontab -e
0 */1 * * * ntpdate ntp1.aliyun > /dev/null2>&1; /sbin/hwclock -w
0 */1 * * * ntpdate ntp2.aliyun > /dev/null2>&1; /sbin/hwclock -w
8. 安装配置
# node1下操作
1. 安装依赖软件包
yum install python2-devel libffi-devel openssl-devel libselinux-python -y
yum remove docker docker-common docker-selinux docker-engine -y
yum install yum-utils device-mapper-persistent-data lvm2 -y
2. 安装ansible
yum install -y "ansible < 2.9.19"
3. 配置ansible.cfg⽂件
sed -i 's/#host_key_checking = False/host_key_checking = True/g' /etc/ansible/ansible.cfg
sed -i 's/#pipelining = False/pipelining = True/g' /etc/ansible/ansible.cfg
sed -i 's/#forks = 5/forks = 100/g' /etc/ansible/ansible.cfg
4. 安装 kolla-ansible
pip install kolla-ansible==9.3.1 --ignore-installed PyYAML
5. 安装docker-ce
yum install docker-ce -y
6. kolla-ansible配置⽂件到当前环境
mkdir -p /etc/kolla
chown $USER:$USER /etc/kolla
cp -r /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
cp /usr/share/kolla-ansible/ansible/inventory/* .
7. 修改docker配置⽂件配置国内阿⾥云地址,docker推送地址
mkdir /etc/docker/
cat >> /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"registry.docker-cn",
"163",
"docker.mirrors.ustc.edu"
]
}
EOF
8. 开启 Docker 的共享挂载功能
mkdir -p /etc/systemd/system/docker.service.d
cat >> /etc/systemd/system/docker.service.f << EOF
[Service]
MountFlags=shared
EOF
9. 设置docker服务启动
systemctl daemon-reload && systemctl enable docker && systemctl restart docker&& systemctl status docker
1. 配置清单
vim /root/multinode
修改如下:
[control]
node1
node2
node3
[network]
node1
node2
node3
[compute]
node1
node2
node3
[storage]
node1
node2
node3
[monitoring]
node1
node2
node3
[deployment]
node1
node2
node3
2. 配置l⽂件,开启需要的⽂件
vim /etc/l
修改如下:
kolla_base_distro: "centos"
kolla_install_type: "source"
openstack_release: "train"
node_custom_config: "/etc/kolla/config"
kolla_internal_vip_address: "192.168.1.19"
#docker_registry: "xxx123.zixuanyun:4000"
docker_namespace: "kolla"
network_interface: "ens33"
neutron_external_interface: "ens34"
neutron_plugin_agent: "openvswitch"
neutron_tenant_network_types: "vxlan,vlan,flat"
keepalived_virtual_router_id: "56"
openstack_logging_debug: "True"
enable_ceph: "yes"
enable_ceph_dashboard: "{{ enable_ceph | bool }}"
enable_chrony: "yes"
enable_cinder: "yes"
enable_cinder_backup: "yes"
enable_ceph_dashboard: "{{ enable_ceph | bool }}"
enable_heat: "no"
enable_neutron_dvr: "yes"
enable_neutron_agent_ha: "yes"
enable_neutron_provider_networks: "yes"
enable_nova_ssh: "yes"
glance_backend_ceph: "yes"
cinder_backend_ceph: "{{ enable_ceph }}"
cinder_backup_driver: "ceph"
nova_backend_ceph: "{{ enable_ceph }}"
nova_compute_virt_type: "qemu"
nova_console: "novnc"
3. ⽣成随机密码
kolla-genpwd
4. 修改界⾯登陆密码为123456
sed -i 's/^keystone_admin_password.*/keystone_admin_password: 123456/' /etc/l 5. 准备后端存储# node1-3都需要执⾏
#格式化
<4 /dev/sdb
数据盘准备ceph的标签
parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_BS_FOO1 1 -1
6. 设置nova配置⽂件
mkdir /etc/kolla/config
mkdir /etc/kolla/config/nova
cat >> /etc/kolla/config/f << EOF
[libvirt]
virt_type = qemu
cpu_mode = none
EOF
7. 创建虚拟机界⾯禁⽌默认创建新卷.
mkdir /etc/kolla/config/horizon/
cat >> /etc/kolla/config/horizon/custom_local_settings << EOF
LAUNCH_INSTANCE_DEFAULTS = {'create_volume': False,}
EOF
8. 创建f
cat >> /etc/kolla/f << EOF
[global]
osd pool default size = 3
osd pool default min size = 2
mon_clock_drift_allowed = 2
osd_pool_default_pg_num = 8
osd_pool_default_pgp_num = 8
mon clock drift warn backoff = 30
EOF
1. 引导各节点依赖
kolla-ansible -i ./multinode bootstrap-servers
2. 检查
ansible -i multinode all -m ping
kolla-ansible -i ./multinode prechecks
3. 部署
kolla-ansible -i ./multinode deploy
4. 部署完成后⽣成rc⽂件
kolla-ansible -i ./multinode post-deploy
5. 拷贝admin-openrc.sh⽂件
cp /etc/kolla/admin-openrc.sh ./
chmod +x admin-openrc.sh
source admin-openrc.sh
6. 安装openstack 包
cd /pos.d/
yum install centos-release-openstack-train -y
yum makecache fast
yum install python-openstackclient -y
cd
7. 编辑初始化脚本
vim /usr/share/kolla-ansible/init-runonce
EXT_NET_CIDR=EXT N ET C IDR:−′192.168.1.0/24′EXT N ET R ANGE={EXT_NET_RANGE:-'start=192.168.1.200,end=192.168.1.254'}
EXT_NET_GATEWAY=${EXT_NET_GATEWAY:-'192.168.1.1'}
8. 执⾏#这⾥需要执⾏pip install kolla-ansible==9.3.1 --ignore-installed PyYAML 不然报错依赖
pip install kolla-ansible==9.3.1 --ignore-installed PyYAML
sh /usr/share/kolla-ansible/init-runonce
11. 镜像上传
#node1上执⾏
1. 镜像下载
mkdir /root/qcow2
cd /root/qcow2
#百度云盘
链接:pan.baidu/s/1WK_VbWb-f9boOL2-QahIng
提取码:2021
#linux 默认22端⼝ root cloud5566@MM123
#windows 默认56221端⼝ administrator cloud5566@MM123
#其它镜像需要开通会员才能上传⼤于4G的⽂件...........
2. 格式转换
yum -y install qemu-img
qemu-img convert CentOS7.8_x86_64bit.qcow2 CentOS7.8_x86_64bit.raw
3. 镜像上传
source /root/admin-openrc.sh
openstack image create "CentOS 7.8 64位" --file CentOS7.8_x86_64bit.raw --disk-format raw --container-format bare --property hw_qemu_guest_agent=yes --property os_type=linux --public 4. 查看镜像是否成功
openstack image list
12. 准备⼯作
1. 安全组全部放⾏
13. 创建实例测试
13. 后端ceph存储状态查看
docker exec -it ceph_mon ceph --version
docker exec -it ceph_mon ceph -s
docker exec -it ceph_mon ceph -w
docker exec -it ceph_mon ceph df
docker exec -it ceph_mon ceph osd tree
docker exec -it ceph_mon ceph osd perf
14. 卸载openstack集环境
bootstrap 5
1.卸载openstack
kolla-ansible destroy -i /root/multinode --include-images --yes-i-really-really-mean-it
2.所有节点重启系统
reboot
3.所有节点硬盘格式化
dmsetup remove_all
<4 /dev/sdb
4.所有节点重新打ceph标签
parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_BS_FOO1 1 -1
15. 如果集设备意外关机,导致数据库集挂掉。
5. mariadb服务异常
### 解决办法
>> 停⽌所有mariadb容器 >>
docker stop mariadb
>> 到最后关闭的mariadb主机,如果不记得就随机选取⼀台或者根据/var/lib/docker/volumes/mariadb/_data/grastate.dat的seqno进⾏选取(越⼤优先级越⾼),然后修改其grastate.dat⽂件的safe_to_bootstrap参数 >> vim /var/lib/docker/volumes/mariadb/_data/grastate.dat
safe_to_bootstrap: 1
>> 修改mariadb容器启动命令后启动容器,查询⽇志保证mariadb服务正常启动 >>
vim /etc/kolla/mariadb/config.json
"command": "/usr/bin/mysqld_safe --wsrep-new-cluster",
docker start mariadb
tail -200f /var/lib/docker/volumes/kolla_logs/_data/mariadb/mariadb.log
>> 启动其他节点的mariadb容器 >>
docker start mariadb
tail -200f /var/lib/docker/volumes/kolla_logs/_data/mariadb/mariadb.log
>> 确保集运⾏正常后,恢复最初修改的config.json(这样就保证集中所有的mariadb容器都是平等的)>>
vim /etc/kolla/mariadb/config.json
"command": "/usr/bin/mysqld_safer",
tail -200f /var/lib/docker/volumes/kolla_logs/_data/mariadb/mariadb.log
如果⼀切正常不需要关闭mariadb
docker stop mariadb
docker start mariadb
tail -200f /var/lib/docker/volumes/kolla_logs/_data/mariadb/mariadb.log
如果报错
每个节点都要删除以下2个⽂件
rm -rf /var/lib/docker/volumes/mariadb/_data/galera.cache
rm -rf /var/lib/docker/volumes/mariadb/_data/grastate.dat
Processing math: 100%
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
tomcat 启动原理
下一篇 »
推荐文章
热门文章
-
随机森林特征选择原理
2024-10-02 -
自动驾驶系统中的随机森林算法解析
2024-10-02 -
随机森林算法及其在生物信息学中的应用
2024-10-02 -
监督学习中的随机森林算法解析(六)
2024-10-02 -
随机森林算法在数据分析中的应用
2024-10-02 -
机器学习——随机森林,RandomForestClassifier参数含义详解
2024-10-02 -
随机森林 的算法
2024-10-02 -
随机森林算法作用
2024-10-02 -
监督学习中的随机森林算法解析(十)
2024-10-02 -
随机森林算法案例
2024-10-02 -
随机森林案例
2024-10-02 -
二分类问题常用的模型
2024-10-02 -
绘制ssd框架训练流程
2024-10-02 -
一种基于信息熵和DTW的多维时间序列相似性度量算法
2024-10-02 -
SVM训练过程范文
2024-10-02 -
如何使用支持向量机进行股票预测与交易分析
2024-10-02 -
二分类交叉熵损失函数binary
2024-10-02 -
tinybert_训练中文文本分类模型_概述说明
2024-10-02 -
基于门控可形变卷积和分层Transformer的图像修复模型及其应用
2024-10-02 -
人工智能开发技术的测试和评估方法
2024-10-02
最新文章
-
基于随机森林的数据分类算法改进
2024-10-02 -
人工智能中的智能识别与分类技术
2024-10-02 -
基于人工智能技术的随机森林算法在医疗数据挖掘中的应用
2024-10-02 -
随机森林回归模型的建模步骤
2024-10-02 -
r语言随机森林预测模型校准曲线
2024-10-02 -
《2024年随机森林算法优化研究》范文
2024-10-02
发表评论