Ubuntu Server 20.04最小部署openstack Wallaby(一)

您所在的位置:网站首页 ubuntu一键安装openstack Ubuntu Server 20.04最小部署openstack Wallaby(一)

Ubuntu Server 20.04最小部署openstack Wallaby(一)

2023-08-21 02:34| 来源: 网络整理| 查看: 265

开篇先强调一下,如果使用virtual box部署,需要网卡混杂模式为全部允许,不然可能会与外网无法打通

三台物理主机,主机名分别为controller(两个网卡),compute(两个网卡)和block1(两个网卡),安装系统为Ubuntu Server 20.04,下面开始部署。

1. Controller,Compute和Block-Storage节点的公共配置

添加hosts

sudo vim /etc/hosts

注掉

#127.0.1.1 节点主机名

添加如下内容(三个节点都要添加相同的内容)

# controller 10.0.0.211 controller # compute1 10.0.0.213 compute # block1 10.0.0.216 block1

保存后ping一下相应的域名试一下,注意看目标地址安装openstack客户端

 添加源

sudo add-apt-repository cloud-archive:wallaby

  Controller节点上安装客户端

sudo apt-get install python3-openstackclient 2. 节点间时间同步

在Controller节点运行

sudo apt-get install chrony

编辑/etc/chrony.conf文件

sudo vim /etc/chrony/chrony.conf

添加一行,加入阿里云NTP服务

server ntp.aliyun.com iburst

加入一行,允许其他节点访问

allow 10.0.0.0/21

保存后重启服务

sudo systemctl restart chrony sudo systemctl enable chrony

其他节点上安装chrony

sudo apt-get install chrony

 编辑/etc/chrony.conf文件

sudo vim /etc/chrony/chrony.conf

添加一行,加入controller服务

server controller iburst

 保存后重启服务

sudo systemctl restart chrony sudo systemctl enable chrony

在所有节点上运行

chronyc sources

验证服务是否正常

3. 部署Controller的环境

安装mariadb

sudo apt-get install mariadb-server python3-pymysql

编辑配置文件

sudo vim /etc/mysql/mariadb.conf.d/99-openstack.cnf

加入配置

[mysqld] bind-address = 10.0.0.211 default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8

重启服务

sudo systemctl restart mysql

配置root用户密码

sudo mysql_secure_installation

运行mysql,修改一下密码(注意替换PASSWORD)

sudo mysql mysql > use mysql; mysql > set password for 'root'@'localhost' = password('PASSWORD'); mysql > quit

安装RabbitMQ

sudo apt-get install rabbitmq-server

添加openstack用户(注意替换USER_PASS)

sudo rabbitmqctl add_user openstack USER_PASS

为openstack用户添加权限

sudo rabbitmqctl set_permissions openstack ".*" ".*" ".*"

启动服务开启开机自启

sudo systemctl restart rabbitmq-server.service sudo systemctl enable rabbitmq-server.service

安装memcached

sudo apt-get install memcached python3-memcache

编辑配置文件

sudo vim /etc/memcached.conf

注释原来的-l 127.0.0.1,添加一行,允许其他节点访问

-l 10.0.0.211

重启服务

sudo systemctl restart memcached sudo systemctl enable memcached

安装etcd

sudo apt-get install etcd

编辑配置文件

sudo vim /etc/default/etcd

修改一下环境变量的值

ETCD_NAME="controller" ETCD_DATA_DIR="/var/lib/etcd" ETCD_INITIAL_CLUSTER_STATE="new" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01" ETCD_INITIAL_CLUSTER="controller=http://10.0.0.211:2380" ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.211:2380" ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.211:2379" ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380" ETCD_LISTEN_CLIENT_URLS="http://10.0.0.211:2379"

重启etcd

sudo systemctl restart etcd sudo systemctl enable etcd 4. 安装Keystone(Controller节点)

运行mysql

sudo mysql -u root -p

建表

CREATE DATABASE keystone;

设置keystore库密码(注意替换KEYSTORE_DBPASS)

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \ IDENTIFIED BY 'KEYSTONE_DBPASS'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \ IDENTIFIED BY 'KEYSTONE_DBPASS';

安装keystore

sudo apt-get install keystone

修改配置文件

sudo vim /etc/keystone/keystone.conf

修改数据库connection(注意修改KEYSTORE_DBPASS)

[database] # ... connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone

修改token,解除注释

[token] # ... provider = fernet

保存退出,构建数据库

sudo su -s /bin/sh -c "keystone-manage db_sync" keystone

初始化key仓库

sudo keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone sudo keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

启动服务(注意替换ADMIN_PASS)

sudo keystone-manage bootstrap --bootstrap-password ADMIN_PASS \ --bootstrap-admin-url http://controller:5000/v3/ \ --bootstrap-internal-url http://controller:5000/v3/ \ --bootstrap-public-url http://controller:5000/v3/ \ --bootstrap-region-id RegionOne

修改apache配置

sudo vim /etc/apache2/apache2.conf

添加或修改

ServerName controller

重启apache

sudo systemctl restart apache2 sudo systemctl enable apache2

设置环境变量(注意替换ADMIN_PASS)

export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3

创建admin project

openstack project create --domain default \ --description "Service Project" service

创建非admin project

openstack project create --domain default \ --description "Common Project" commonproject

创建普通用户

openstack user create --domain default \ --password-prompt commonuser

创建普通角色

openstack role create commonrole

关联用户角色

openstack role add --project commonproject --user commonuser commonrole

验证部署

unset OS_AUTH_URL OS_PASSWORD openstack --os-auth-url http://controller:5000/v3 \ --os-project-domain-name Default --os-user-domain-name Default \ --os-project-name admin --os-username admin token issue openstack --os-auth-url http://controller:5000/v3 \ --os-project-domain-name Default --os-user-domain-name Default \ --os-project-name commonproject --os-username commonuser token issue

创建环境变量,admin环境变量admin_openrc

export OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2

common环境变量common_openrc

export OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=commonproject export OS_USERNAME=commonuser export OS_PASSWORD=DEMO_PASS export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2

两个文件均执行

chmod +x 文件名

以后使用相关的环境时加载对应的环境变量文件即可,例如

. common_openrc openstack token issue



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3