Ubuntu Server 20.04最小部署openstack Wallaby(一) |
您所在的位置:网站首页 › ubuntu一键安装openstack › Ubuntu Server 20.04最小部署openstack Wallaby(一) |
开篇先强调一下,如果使用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:wallabyController节点上安装客户端 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=2common环境变量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 |