Ubuntu Server 20.04最小部署openstack Wallaby(一)——基础环境和keystone搭建

开篇先强调一下,如果使用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

### 安装部署 Docker 在 Ubuntu Server 20.04 上 #### 准备工作 为了确保系统的更新至最新状态,在安装任何新软件之前,建议先执行系统包管理器的刷新操作。 ```bash sudo apt update && sudo apt upgrade -y ``` #### 设置 Docker 的 APT 源 官方推荐通过设置特定源来获取最新的稳定版 Docker。这步骤可以避免依赖默认仓库中的旧版本。 ```bash # 添加官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 添加稳定的 Docker APT 源 echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` #### 更新本地APT索引并安装Docker引擎 完成上述配置之后,再次运行 `apt-get` 命令以同步新的存储库信息,并从中下载安装所需的文件。 ```bash sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io -y ``` 此时已经成功完成了 Docker Engine 的基本安装过程[^1]。 #### 验证安装成果 启动服务并且验证其正常运作: ```bash sudo systemctl start docker sudo systemctl enable docker docker run hello-world ``` 如果切顺利的话,则会看到条来自 Docker 的欢迎消息,表明容器环境已经被正确搭建起来。 #### 用户权限调整(可选) 为了让非root用户也能方便地管理使用 Docker 资源,默认情况下需要将其加入到名为 `docker` 的组里去: ```bash sudo usermod -aG docker $USER newgrp docker ``` 注意:更改后的群组成员身份不会立即生效;通常重启计算机或者注销再登录次即可解决这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值