kolla-ansible部署OpenStack Train版技术方案
简单架构示意
项目目标
1. 实现容器化部署docker+ Ansible+openstack-tarin
2. 使用keeplived监控nova服务实现在单台服务器宕机的情况下能迅速切断连接减轻平台负载
3. HAprox+Keepalived实现集群的负载均衡和高可用(部署)
4. 部署采用自动化部署工具kolla
5. 采用源码方式部署openstack(所有组件服务的源码均存放在对应容器的根下,方便二次开发)
6. Docker镜像托管至docker-regisiry私有仓库做docker备份以及镜像源
7. 系统采用centos-2009版本(禁止使用最小化版本CentOS-7-x86_64-Minimal-2009.iso)
8. 将控制节点资源加入计算服务,此处注意在nova配额时需保留6核12g的资源来保证controller节点的正常运行
9. Freezer备份服务无法引入,环境存储资源不足
10. 部署mariadb高可用(2主)
11. 双控制节点保证基础服务的高可用
12. Neutron服务高可用
13. Kolla支持节点扩展所以本手册适用于拥有2台及以上服务器的实际生产环境
14. 使用Grafana+prometheus对主机进行监控
前期准备
部署所需组件
部署
1、系统环境初始化
1、网卡配置
eth0(网卡名称根据实际情况修改)
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.100.11
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
DNS1=114.114.114.114
DNS2=223.5.5.5
eth1(网卡名称根据实际情况修改)
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
第一张网卡配置为静态地址且连接网络
第二张网卡配置为激活状态无ip模式none
所有节点均配置
2、设置主机名 以及hosts解析
hostnamectl set-hostname openstack-con01 && bash
hostnamectl set-hostname openstack-con02 && bash
hostnamectl set-hostname openstack-con03 && bash
vim /etc/hosts #设置hosts 先清空hosts文件 然后添加如下
192.168.100.10 openstack-con01
192.168.100.11 openstack-con02
192.168.100.12 openstack-con03
#或者使用
tee /etc/hosts <<-'EOF'
192.168.100.10 openstack-con01
192.168.100.11 openstack-con02
192.168.100.12 openstack-con03
EOF
3、关闭系统安全设置
#关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
#关闭网络管理组件
systemctl stop NetworkManager && systemctl disable NetworkManager
#关闭selinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
3、手动配置免密登录(所有节点都需执行)
ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa.pub openstack-con01
ssh-copy-id -i /root/.ssh/id_rsa.pub openstack-con02
ssh-copy-id -i /root/.ssh/id_rsa.pub openstack-con03
3、安装基础软件包
yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python git wget vim yum-utils
2、安装docker(所有节点)
2.1 docker是本次部署的关键,因此需要安装docker。
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
(docekr版本使用稳定版,手动指定安装)
yum install -y docker-ce-19.03.13-3.el7 docker-ce-cli-19.03.13-3.el7 containerd.io
systemctl start docker
systemctl enable docker
docker version
开启 Docker 的共享挂载功能:所谓共享挂载即同一个目录或设备可以挂载到多个不同的路径并且能够保持互相之间的共享可见性,类似于 mount --shared。在 OpenStack for Kolla 中,主要解决 Neutron 的 namespace 在不同 container 中得以保持实效性的问题。
mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF
#修改docker国内镜像源
mkdir -p /etc/docker
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"]
}
EOF
#启动并自启docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
#查看docker信息
docker info
2.2 部署docker私有仓库并导入镜像
备注:生产环境推荐安装docker-registry或者 harbor用于存储docker镜像,前提是你已经拿到了所需要的镜像
方法如下:
注意: docker-registry默认端口5000,如果部署在con节点映射成5000会占用haproxy得端口,需要换一个
- 如果不使用本地docker仓库,则2.2和2.3就不需要做,直接配置公有镜像仓库在线pull镜像
# 1、registry 私有库安装
docker pull registry
# 2、启动命令:
mkdir -p /my-registry/registry
docker run -d -ti --restart always --name registry -p 4000:5000 -v /my-registry/registry:/var/lib/registry registry
#3、访问仓库地址测试
curl 127.0.0.1:4000/v2/_catalog
#4、registryweb页面可视化界面
docker pull hyper/docker-registry-web
#启动命令:
docker run -d --restart=always -p 4001:8080 --name registry-web --link registry -e REGISTRY_URL=http://192.168.100.12:4000/v2 -e REGISTRY_NAME=192.168.100.12:4000 hyper/docker-registry-web
# 页面访问验证
192.168.100.12:4001
2.3 导入镜像
cat > /etc/docker/daemon.json << EOF
{
"insecure-registries": [
"192.168.100.12:4000"
],
"log-opts": {
"max-file": "5",
"max-size": "50m"
}
}
EOF
#将配置推送到各个节点
scp /etc/docker/daemon.json openstack-con02:/etc/docker/daemon.json
......
#所有节点重载配置重启docker服务
systemctl daemon-reload && systemctl restart docker
#导入镜像
##上传镜像包
ll koll-ansible_Train/
total 4
drwxr-xr-x 2 root root 42 Dec 5 08:39 config
drwxr-xr-x 2 root root 6 Dec 5 08:39 doc
drwxr-xr-x 2 root root 4096 Dec 5 09:17 docker_repo
drwxr-xr-x 3 root root 136 Dec 5 08:59 tools
cd /root/koll-ansible_Train/tools
bash import.sh
#节点查看
docker images
#打tag (注意根据实际环境替换)
docker images | grep kolla | grep -v toolbox| sed 's/kolla/10.122.0.231:4000\/kolla/g' | awk '{print "docker tag"" " $3" "$1":"$2}'|sh
docker tag d2fea47ea65d 10.122.0.231:4000/kolla/centos-binary-kolla-toolbox:train
#push到私有仓库,你可以用脚本,也可以直接用一条命令搞定,脚本在/root/koll-ansible_Train/tools
##下面演示命令形式 (注意替换仓库地址)
for i in $(docker images | grep 192.168.100.12:4000| awk 'BEGIN{OFS=":"}{print $1,$2}'); do docker push $i; done
##其他节点curl一下镜像仓库看看是否导入成功
curl 192.168.100.12:4000/v2/_catalog
3、安装pip(所有节点)
3.1 配置阿里云pip源(所有节点)安装pip
yum -y install python-pip
cd ~/
mkdir ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
trusted-host=mirrors.aliyun.com
index-url=https://mirrors.aliyun.com/pypi/simple/
EOF
#安装更新pip版本
pip install -U pip==19.3.1
pip install -U setuptools -i https://mirrors.aliyun.com/pypi/simple/
#强制更新requets库 否则后续再执行安装docker SDK时候会报错requests 2.20.0 has requirement idna<2.8,>=2.5, but you'll have idna 2.4 which is incompatible.错误
pip install --ignore-installed requests
##########方法2:
yum install -y wget
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
python2.7 get-pip.py
pip install --ignore-installed requests
4、安装ansible、kolla-ansible(部署节点)
kolla-ansible部署是需要使用ansible,它是一款自动化的工具,是基于python开发。因此ansible是必须部署。
##获取epel的yum文件,否则ansible可能找不到包
#yum install epel-release -y
##安装ansible
#yum install ansible -y
## 推荐使用pip安装ansible 主要版本
pip install 'ansible<2.10'
#试过很多次都要先安装这个报告
pip install pbr
#开始安装kolla-ansible,要带上--ignore-installed ,否则可能会报错
pip install kolla-ansible==9.3.2 --ignore-installed PyYAML
#创建kolla的文件夹,后续部署的时候很多openstack的配置文件都会在这
mkdir -p /etc/kolla
chown $USER:$USER /etc/kolla
#复制ansible的部署配置文件
cp -v /usr/share/kolla-ansible/ansible/inventory/* /etc/kolla/.
#负责gloable.yml和password.yml到目录
cp -rv /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/.
#检查`etc/kolla`文件夹下的文件
5、配置ansible
5.1 修改ansible配置文件(contoller)
cat << EOF | sed -i '/^\[defaults\]$/ r /dev/stdin' /etc/ansible/ansible.cfg
host_key_checking=False
pipelining=True
forks=100
EOF
5.2 配置ansible剧本(contoller)
1.使用剧本multinode文件配置 控制 计算 网络 监控 等角色
2.检查inventory配置是否正确,执行:
ansible -i multinode all -m ping
3.生成openstack组件用到的密码,该操作会填充/etc/kolla/passwords.yml,该文件中默认参数为空。
kolla-genpwd
备注:如果执行过程中出现类似以下的报错
[root@openstack-con01 kolla]# kolla-genpwd
Traceback (most recent call last):
File "/usr/bin/kolla-genpwd", line 6, in <module>
from kolla_ansible.cmd.genpwd import main
File "/usr/lib/python2.7/site-packages/kolla_ansible/cmd/genpwd.py", line 25, in <module>
from cryptography.hazmat.primitives import serialization
File "/usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/serialization/__init__.py", line 7, in <module>
from cryptography.hazmat.primitives.serialization.base import (
File "/usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/serialization/base.py", line 13, in <module>
from cryptography.hazmat.backends import _get_backend
则可以尝试执行以下命令进行解决:
pip install python-openstackclient --ignore-installed pyOpenSSl
4、修改keystone_admin_password,可以修改为自定义的密码方便后续horizon登录,这里改为kolla。
sed -i 's#keystone_admin_password:.*#keystone_admin_password: 123#g' /etc/kolla/passwords.yml
cat /etc/kolla/passwords.yml | grep keystone_admin_password
注意:/etc/kolla/passwords.yml 为openstack各组件服务密码
5、修改全局配置文件globals.yml,该文件用来控制安装哪些组件,以及如何配置组件,由于全部是注释,这里直接追加进去,也可以逐个找到对应项进行修改。
cat > /etc/kolla/globals.yml <<EOF
---
# Kolla options
kolla_base_distro: "centos"
kolla_install_type: "binary"
openstack_release: "train"
kolla_internal_vip_address: "192.168.100.140"
kolla_internal_fqdn: "{{ kolla_internal_vip_address }}"
kolla_external_vip_address: "10.0.100.240"
kolla_external_fqdn: "{{ kolla_external_vip_address }}"
#Docker options
docker_registry: "192.168.100.10:4000"
# Messaging options
om_rpc_transport: "rabbit"
# Neutron - Networking Options
# These can be adjusted for even more customization. The default is the same as
# the 'network_interface'. These interfaces must contain an IP address.
network_interface: "eth0"
kolla_external_vip_interface: "eth1" #
api_interface: "eth0"
storage_interface: "eth0" # 存储接入网
cluster_interface: "eth0" # 存储复制网
tunnel_interface: "eth0" # 业务网
network_address_family: "ipv4"
neutron_external_interface: "eth1" # 外部网络
neutron_plugin_agent: "openvswitch"
neutron_enable_rolling_upgrade: "yes"
# keepalived options
keepalived_virtual_router_id: "66"
# TLS options
#kolla_enable_tls_internal: "yes"
# Region options
openstack_region_name: "RegionOne"
# OpenStack options
openstack_logging_debug: "False"
# glance, keystone, neutron, nova, heat, and horizon.
enable_openstack_core: "yes"
enable_haproxy: "yes"
enable_mariadb: "yes"
enable_memcached: "yes"
enable_ceph: "no"
enable_ceph_mds: "no"
enable_ceph_rgw: "no"
enable_ceph_nfs: "no"
enable_chrony: "yes"
enable_cinder: "yes"
enable_fluentd: "no"
#enable_grafana: "yes"
enable_nova_ssh: "yes"
#enable_prometheus: "yes"
#enable_redis: "yes"
#enable_etcd: "no"
enable_neutron_provider_networks: "yes" # 缺少此项,provider网络的虚拟机建立报错,日志显示 portbinding error
# Keystone - Identity Options
keystone_token_provider: 'fernet'
keystone_admin_user: "admin"
keystone_admin_project: "admin"
# Glance - Image Options
glance_backend_ceph: "yes"
# Cinder - Block Storage Options
cinder_backend_ceph: "yes"
cinder_volume_group: "cinder-volumes"
# Nova - Compute Options
nova_backend_ceph: "yes"
nova_console: "novnc"
nova_compute_virt_type: "qemu" # 如果是使用虚拟化部署,此选项必须选择qemu, 如果是物理机,默认是kvm
EOF
6、后端存储Ceph部署(此次为三节点)
6.1 在所有ceph节点配置YUM:
#
#配置系统源码,阿里基础源和epel源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#YUM优先级别:
yum -y install yum-plugin-priorities.noarch
6.2 所有配置ceph源:
cat << EOF | tee /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.163.com/ceph/rpm-nautilus/el7/\$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.163.com/ceph/rpm-nautilus/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
EOF
6.3 在所有集群和客户端节点安装Ceph
1、所有节点安装
yum -y install ceph
ceph -v命令查看版本:
若报错urllib3无法安装可先删除后重装(无报错则无需执行)
pip uninstall urllib3
2、在controller节点额外安装ceph-deploy
yum -y install ceph-deploy
3、部署MON节点
创建目录生成配置文件
mkdir cluster
cd cluster
ceph-deploy new openstack-con01 openstack-con02 openstack-con03
初始化密钥
ceph-deploy mon create-initial
将ceph.client.admin.keyring拷贝到各个节点上
ceph-deploy --overwrite-conf admin openstack-con01 openstack-con02 openstack-con03
查看是否配置成功。
ceph -s
上述告警就是说你的集群不安全,禁用不安全模式就行
解决办法:
禁用不安全模式
ceph config set mon auth_allow_insecure_global_id_reclaim false
4、部署mgr
ceph-deploy mgr create openstack-con01 openstack-con02 openstack-con03
5、部署osd
# 检查OSD节点上所有可用的磁盘
[cephuser@ceph-admin cluster]$ ceph-deploy disk list openstack-con01 openstack-con02 openstack-con03
#使用zap选项删除所有osd节点上的分区
[cephuser@ceph-admin cluster]$ ceph-deploy disk zap openstack-con01:/dev/sdb openstack-con02:/dev/sdb openstack-con03:/dev/sdb
#在ceph1上一次初始化磁盘
ceph-deploy osd create --data /dev/sdb openstack-con01
ceph-deploy osd create --data /dev/sdb openstack-con02
ceph-deploy osd create --data /dev/sdb openstack-con03
7、ceph为对接openstack做准备
7.1 修改ceph配置文件
vim /etc/ceph/ceph.conf
加入:
osd_journal_size = 10000
osd_pool_default_size = 2
osd_pool_default_pg_num = 512
osd_pool_default_pgp_num = 512
rbd_default_features = 3
mon_max_pg_per_osd =2000
mon_allow_pool_delete=true
实验环境使用二副本存储(性能考虑),实际生产环境建议三副本数环境资源不足建议单副本
osd_pool_default_size = 3
7.2 推送配置
ceph-deploy --overwrite-conf config push openstack-con01 openstack-con02 openstack-con03
7.3 重启所有ceph节点mon服务
# systemctl status ceph-mon@openstack-con01
systemctl restart ceph-mon@openstack-con01
systemctl restart ceph-mon@openstack-con02
systemctl restart ceph-mon@openstack-con03
7.3 创建对应存储池并初始化
ceph osd pool create glance-images 64
ceph osd pool create cinder-bakcups 32
ceph osd pool create cinder-volumes 64
ceph osd pool create nova-vms 32
rbd pool init glance-images
rbd pool init cinder-bakcups
rbd pool init cinder-volumes
rbd pool init nova-vms
ceph接入后端图解
7.4 Glance(写入配置文件和创建ceph用户)
1.创建目录
mkdir -p /etc/kolla/config/glance
2..为 glance-api.conf 配置RBD 后端
编辑 /etc/kolla/config/glance/glance-api.conf 加入如下配置:
cat > /etc/kolla/config/glance/glance-api.conf << EOF
[DEFAULT]
show_image_direct_url = True
[glance_store]
stores = rbd
default_store = rbd
rbd_store_pool = glance-images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf
EOF
4.生成ceph.client.glance.keyring文件,并保存到 /etc/kolla/config/glance 目录
在controller节点执行命令:
ceph auth get-or-create client.glance mon 'allow rwx' osd 'allow class-read object_prefix rbd_children, allow rwx pool=glance-images' > /etc/kolla/config/glance/ceph.client.glance.keyring
7.5 Cinder(写入配置文件和创建ceph用户)
1.创建目录
mkdir -p /etc/kolla/config/cinder
2.编辑 /etc/kolla/config/cinder/cinder-volume.conf,并配置如下内容:
cat > /etc/kolla/config/cinder/cinder-volume.conf << EOF
[DEFAULT]
enabled_backends=rbd-1
[rbd-1]
rbd_ceph_conf=/etc/ceph/ceph.conf
rbd_user=cinder
rbd_pool=cinder-volumes
volume_backend_name=rbd-1
volume_driver=cinder.volume.drivers.rbd.RBDDriver
rbd_secret_uuid = 074bc021-434d-43fb-8cbd-f517ce21e537 #在kolla配置文件夹下password.yml里找到
EOF
3.编辑 /etc/kolla/config/cinder/cinder-backup.conf,并配置如下内容:
cat > /etc/kolla/config/cinder/cinder-backup.conf << EOF
[DEFAULT]
backup_ceph_conf=/etc/ceph/ceph.conf
backup_ceph_user=cinder-backup
backup_ceph_chunk_size = 134217728
backup_ceph_pool=cinder-backups
backup_driver = cinder.backup.drivers.ceph
backup_ceph_stripe_unit = 0
backup_ceph_stripe_count = 0
restore_discard_excess_bytes = true
EOF
- 拷贝ceph的配置文件(/etc/ceph/ceph.conf)到 /etc/kolla/config/cinder
cp /etc/ceph/ceph.conf /etc/kolla/config/cinder
- 生成 ceph.client.cinder.keyring 文件
在/etc/kolla/config/cinder/创建目录
mkdir /etc/kolla/config/cinder/cinder-backup
mkdir /etc/kolla/config/cinder/cinder-volume
在 controller 节点运行:
ceph auth get-or-create client.cinder mon 'allow rwx' osd 'allow class-read object_prefix rbd_children, allow rwx pool=cinder-volumes, allow rwx pool=nova-vms ,allow rwx pool=glance-images' > /etc/kolla/config/cinder/cinder-volume/ceph.client.cinder.keyring
cp /etc/kolla/config/cinder/cinder-volume/ceph.client.cinder.keyring /etc/kolla/config/cinder/cinder-backup
在controller继续运行
ceph auth get-or-create client.cinder-backup mon 'allow rwx' osd 'allow class-read object_prefix rbd_children, allow rwx pool=cinder-bakcups' > /etc/kolla/config/cinder/cinder-backup/ceph.client.cinder-backup.keyring
7.6 Nova (写入配置文件和创建ceph用户)#
- 创建目录
mkdir -p /etc/kolla/config/nova
- 编辑 /etc/kolla/config/nova/nova-compute.conf ,配置如下内容:
cat > /etc/kolla/config/nova/nova-compute.conf << EOF
[libvirt]
images_rbd_pool=nova-vms
images_type=rbd
images_rbd_ceph_conf=/etc/ceph/ceph.conf
rbd_user=nova
EOF
- 生成 ceph.client.nova.keyring 文件
Controller节点执行
ceph auth get-or-create client.nova mon 'allow rwx' osd 'allow class-read object_prefix rbd_children, allow rwx pool=nova-vms' > /etc/kolla/config/nova/ceph.client.nova.keyring
拷贝ceph.conf, 和cinder client keyring 到 /etc/kolla/config/nova
cp /etc/ceph/ceph.conf /etc/kolla/config/nova/
cp /etc/kolla/config/cinder/cinder-volume/ceph.client.cinder.keyring /etc/kolla/config/nova/
8 平台部署与环境初始化
8.1 #预配置,安装docker、docker sdk、关闭防火墙、配置时间同步等
为各节点配置基础环境且会下载大量rpm包请务必保证节点网络的正常
kolla-ansible -i ./multinode bootstrap-servers -vvvv
8.2 环境预检查 没问题直接next
kolla-ansible -i /etc/kolla/multinode prechecks -vvvv
8.3 拉取镜像 时间有点长 大概15Minutes
kolla-ansible -i /etc/kolla/multinode pull -vvvv
8.4 正式部署 大概15Minutes
kolla-ansible -i /etc/kolla/multinode deploy -vvvv
8.5 安装openstack cli客户端(openstack con节点安装)
yum install -y centos-release-openstack-train
yum install -y python-openstackclient
8.6 生成openrc文件
kolla-ansible post-deploy
导入openrc中的环境变量
. /etc/kolla/admin-openrc.sh
9 平台初始化
# 自动建立demo project,建议手工建立
source /etc/kolla/admin-openrc.sh
/usr/local/share/kolla-ansible/init-runonce
10 dashboard
http://192.168.100.140
# admin / yP2p1EaAThI9pA2asJ5tAh3JJ34MQNGCXfQyNasf
# 在/etc/kolla/admin-openrc.sh里查询
11 openstack使用
# 查看openstack相关信息
openstack service list
openstack compute service list
openstack volume service list
openstack network agent list
openstack hypervisor list
# 参考手册
https://docs.openstack.org/python-openstackclient/train/cli/command-list.html
# 镜像修改密码和默认密码
virt-customize -a CentOS-7-x86_64-GenericCloud-2009.qcow2 --root-password password:abcd1234
cirros / gocubsgo.
# 导入镜像
openstack image create cirros-0.5.2-x86_64 --file /tmp/cirros-0.5.2-x86_64-disk.img --disk-format qcow2 --container-format bare --public
openstack image create centos-7-x86_64 --file /tmp/CentOS-7-x86_64-GenericCloud-2009.qcow2 --disk-format qcow2 --container-format bare --public
# 建立模板
openstack flavor create --id 0 --vcpus 1 --ram 256 --disk 1 m1.nano
openstack flavor create --id 1 --vcpus 1 --ram 2048 --disk 20 m1.small
# 建立provider network
openstack network create --share --external --provider-physical-network physnet1 --provider-network-type flat provider
openstack subnet create --network provider --allocation-pool start=192.168.100.221,end=192.168.100.230 --dns-nameserver 114.114.114.114 --gateway 192.168.100.1 --subnet-range 192.168.100.0/24 provider
# 建立selfservice network
openstack network create selfservice
openstack subnet create --network selfservice --dns-nameserver 114.114.114.114 --gateway 192.168.240.1 --subnet-range 192.168.240.0/24 selfservice
# 建立虚拟路由
openstack router create router
# 连接内外网络
openstack router add subnet router selfservice
openstack router set router --external-gateway provider
openstack port list
# 建立sshkey
ssh-keygen -q -N ""
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
# 建立安全策略
openstack security group rule create --proto icmp default
openstack security group rule create --proto tcp --dst-port 22 default
# 查看已建配置
openstack flavor list
openstack image list
openstack security group list
openstack port list
openstack network list
# 建立虚拟机
openstack server create --flavor m1.nano --image cirros-0.5.2-x86_64 --nic net-id=fe172dec-0522-472a-aed4-da70f6c269a6 --security-group default --key-name mykey provider-instance-01
openstack server create --flavor m1.nano --image cirros-0.5.2-x86_64 --nic net-id=c30c5057-607d-4736-acc9-31927cc9a22c --security-group default --key-name mykey selfservice-instance-01
# 指派对外服务ip
openstack floating ip create provider
openstack floating ip list
openstack server add floating ip selfservice-instance-01 10.0.100.227
openstack server list
# 私有云映射方法
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1022 -j DNAT --to 192.168.122.231:22
iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 1022 -j DNAT --to 192.168.122.231:22
# 注意
1. cirros 5.0 需要内存128M以上
2. centos7 ERROR nova.compute.manager [instance: e950095b-aa1e-47e5-bbb8-9942715eb1c3] 2021-10-15T02:17:33.897332Z qemu-kvm: cannot set up guest memory 'pc.ram': Cannot allocate memory
宿主机内存不够使用,临时解决方法 echo 1 > /proc/sys/vm/overcommit_memory
kolla-ansible部署OpenStack Train版技术方案的更多相关文章
- openstack Train版 “nova-status upgrade check”报错:Forbidden: Forbidden (HTTP 403)
部署openstack train版,在部署完nova项目时,进行检查,执行 nova-status upgrade check 返回报错信息如下: [root@controller ~]# nova ...
- CentOS7.4安装部署openstack [Liberty版] (一)
一.OpenStack简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack是一个 ...
- CentOS7.2非HA分布式部署Openstack Pike版 (实验)
部署环境 一.组网拓扑 二.设备配置 笔记本:联想L440处理器:i3-4000M 2.40GHz内存:12G虚拟机软件:VMware® Workstation 12 Pro(12.5.2 build ...
- CentOS7.4安装部署openstack [Liberty版] (二)
继上一篇博客CentOS7.4安装部署openstack [Liberty版] (一),本篇继续讲述后续部分的内容 一.添加块设备存储服务 1.服务简述: OpenStack块存储服务为实例提供块存储 ...
- 使用Ansible部署openstack平台
使用Ansible部署openstack平台 本周没啥博客水了,就放个云计算的作业上来吧(偷个懒) 案例描述 1.了解高可用OpenStack平台架构 2.了解Ansible部署工具的使用 3.使用A ...
- OpenStack Train版-1.安装基础环境&服务
1. 服务组件的密码 密码名称 描述 ADMIN_PASS admin用户密码 CINDER_DBPASS 块设备存储服务的数据库密码 CINDER_PASS 块设备存储服务的 cinder 密码 D ...
- OpenStack Train版-14.安装块存储服务cinder(存储节点)
安装cindoer块存储服务节点(存储节点192.168.0.40)使用默认的LVM卷方法,之后改为ceph存储 安装LVM软件包 [root@cinder01 ~]# yum install lvm ...
- OpenStack Train版-10.安装neutron网络服务(网络节点:可选)
可选:安装neutron网络服务节点(neutron01网络节点192.168.0.30)网络配置按照官网文档的租户自助网络 配置系统参数 echo 'net.ipv4.ip_forward = 1' ...
- OpenStack Train版-12.创建虚拟网络并启动实例(控制节点)
使用VMware虚拟机创建网络可能会有不可预测到的故障,可以通过dashboard界面,管理员创建admin用户的网络环境 1.第一种: 建立公共提供商网络在admin管理员用户下创建 source ...
- OpenStack Train版 简单部署流程
environment 1.网络平面 management(管理网络)→软件安装,组件通信 provider(提供实例网络)→:提供者网络:直接获取ip地址,实例之间直接互通 自服务网络(私有网络 ...
随机推荐
- C# DiagnosticSource and DiagnosticListener
class Program { private static readonly DiagnosticSource testDiagnosticListener = new DiagnosticList ...
- Android Studio自带模拟器无法访问网络问题解决
测试APP的时候,发现Android Studio自带的模拟器访问不了百度等网站,之前一直用的好好的,觉得可能是版本的问题,也有可能是公司网络的问题(因为在家里的电脑的Android Studio的模 ...
- day26--Java集合09
Java集合09 18.TreeSet 元素无序:插入顺序和输出顺序不一致 可以按照一定的规则进行排序,具体排序方式取决于构造方法: TreeSet () :根据其元素的自然排序进行排序 TreeSe ...
- day16--Java常用类04
Java常用类 4.字符串相关类练习 4.1StringBuilder练习 package li.normalclass.stringbuilder; public class TestBuffer ...
- AntSK 0.2.1 版本揭秘:动态加载dll,驱动Function Call新境界!
在.NET的无限宇宙中,动态加载dll似乎一直是操控代码生生不息的魔杖.今天,我将与您探讨如何通过AntSK 0.2.1 版本灵活运用dll,将Function Call的强大功能插拔自如地融入项目之 ...
- 什么是XR扩展现实,XR云串流平台有哪些
什么是云XR (AR/VR/MR/SR) 虚拟现实(VR),传统的实现方式是通过计算机模拟虚拟环境,从而给人一种环境沉浸感.与传统视频相比,VR带来了前所未有的沉浸式体验. 增强现实(AR)是一种无缝 ...
- 记录--vue刷新当前页面
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 背景 项目当中如果做新增/修改/删除等等操作通常情况下都需要刷新数据或者刷新当前页面. 思路 (1)如果页面简单,调用接口刷新数据即可. ...
- 记录--实时音视频功能简析(live-pusher与live-player)
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 使用须知 2017年下半年,微信6.5.21版本支持在线音视频功能.开发者可以通过两个音视频组件 和 实现实时地在线直播.视频通话.语音通 ...
- hdfs中acl权限管理的简单实用
1.背景 在我们开发的过程中有这么一种场景, /projectA 目录是 hadoopdeploy用户创建的,他对这个目录有wrx权限,同时这个目录属于supergroup,在这个组中的用户也具有这个 ...
- Win10 如何在桌面显示我的电脑
Win10桌面右键鼠标,然后在弹出来的选项中选择个性化. 选择了个性化后会弹出设置界面,在设置中选择[主题] 找到[桌面图标设置] 点击[桌面图标设置],会弹出一个对话框,该对话框有可以设置显示的图标 ...