序号 | 主机 | 系统 | 作用 | 备注 |
1 | 192.168.3.126 | ubuntu22.04server | controller | |
2 | 192.168.3.127 | ubuntu22.04server | compute1 | |
3 | 192.168.3.128 | ubuntu22.04server | compute2 |
1、关闭防火墙及修改内核
sudo -i
ufw disable
echo 'net.bridge.bridge-nf-call-ip6tables = 1' >> /etc/sysctl.d/99-sysctl.conf
echo 'net.bridge.bridge-nf-call-iptables = 1' >> /etc/sysctl.d/99-sysctl.conf
modprobe br_netfilter
sysctl --system
修改 /etc/hosts
192.168.3.127 compute1
192.168.3.126 controller
192.168.3.128 compute2
2、安装软件包
apt update
apt install -y net-tools bash-completion python3-openstackclient wget chrony
3、数据库安装
apt install mariadb-server python3-pymysql -y
vim /etc/mysql/mariadb.conf.d/99-openstack.cnf
[mysqld]
bind-address = 192.168.3.126
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
service mysql restart
mysql_secure_installation
netstat -antup | grep mariadb
4、安装rabbitmq
apt install rabbitmq-server -y
rabbitmqctl add_user openstack password
rabbitmqctl set_user_tags openstack administrator
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
rabbitmqctl list_user_permissions openstack
rabbitmq-plugins enable rabbitmq_management
netstat -antup | grep 5672
5、安装memcached
apt install memcached python3-memcache -y
vim /etc/memcached.conf
改 -l 127.0.0.1为-l 192.168.3.126
service memcached restart
netstat -antup | grep memcached
6、安装etcd
apt install etcd -y
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://192.168.3.126:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.3.126:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.3.126:2379"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.3.126:2379"
service etcd restart
netstat -antup | grep etcd
7、安装keystone
mysql
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit
apt install keystone -y
vim /etc/keystone/keystone.conf
修改如下
[database]
# ...
connection = mysql+pymysql://keystone:password@controller/keystone
[token]
# ...
provider = fernet
su -s /bin/sh -c "keystone-manage db_sync" keystone
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
keystone-manage bootstrap --bootstrap-password password \
--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
vim /etc/apache2/apache2.conf
增加
ServerName controller
service apache2 restart
export OS_USERNAME=admin
export OS_PASSWORD=password
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
openstack domain create --description "An Example Domain" example
openstack project create --domain default \
--description "Service Project" service
openstack project create --domain default \
--description "Demo Project" myproject
openstack user create --domain default \
--password-prompt myuser
openstack role create myrole
openstack role add --project myproject --user myuser myrole
验证