最小化OpenStack Train版
实验环境
主机名 | IP地址 | 操作系统 | 角色 |
---|---|---|---|
controller | 10.0.0.11 、192.168.191.171 | CentOS 7 | 控制节点、网络节点 |
compute1 | 10.0.0.31 、192.168.191.177 | CentOS 7 | 计算节点 |
block1 | 10.0.0.41 、192.168.191.178 | CentOS 7 | 块存储节点 |
1. 环境准备
1.1 基础配置
更改IP地址
关闭防火墙及SELinux
修改windowsIPv4地址
1.2 修改IP地址配置文件 controller/compute1/block1
[root@controller ~]# cp -a /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens37
[root@controller ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens37
DEVICE=INTERFACE_NAME
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
IPADDR=""
PREFIX="24"
1.3 修改域名配置文件 controller/compute1/block1
[root@controller ~]# vim /etc/hosts
# controller
10.0.0.11 controller
# compute1
10.0.0.31 compute1
# block1
10.0.0.41 block1
# object1
10.0.0.51 object1
# object2
10.0.0.52 object2
1.4 测试与互联网通信、测试(IP地址、域名)与其他节点通信
[root@block1 ~]# ping 10.0.0.11 -c2
PING 10.0.0.11 (10.0.0.11) 56(84) bytes of data.
64 bytes from 10.0.0.11: icmp_seq=1 ttl=64 time=1.18 ms
64 bytes from 10.0.0.11: icmp_seq=2 ttl=64 time=1.49 ms
--- 10.0.0.11 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 1.184/1.340/1.497/0.160 ms
[root@block1 ~]# ping www.baidu.com
PING www.a.shifen.com (220.181.38.150) 56(84) bytes of data.
64 bytes from 220.181.38.150 (220.181.38.150): icmp_seq=1 ttl=128 time=18.6 ms
64 bytes from 220.181.38.150 (220.181.38.150): icmp_seq=2 ttl=128 time=19.1 ms
^C
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1004ms
rtt min/avg/max/mdev = 18.697/18.915/19.134/0.258 ms
[root@block1 ~]# ping controller
PING controller (10.0.0.11) 56(84) bytes of data.
64 bytes from controller (10.0.0.11): icmp_seq=1 ttl=64 time=0.728 ms
64 bytes from controller (10.0.0.11): icmp_seq=2 ttl=64 time=0.819 ms
^C
--- controller ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.728/0.773/0.819/0.053 ms
2. 安装网络时间协议NTP
控制节点
[root@controller ~]# yum install chrony -y
[root@controller ~]# vim /etc/chrony.conf
allow 10.0.0.0/24
[root@controller ~]# systemctl enable chronyd.service
[root@controller ~]# systemctl start chronyd.service
其他节点
yum install chrony -y
# vim /etc/chrony.conf
##注释掉其它的server行,添加controller为NTP服务器
server controller iburst
# systemctl enable chronyd.service
# systemctl start chronyd.service
检查节点
[root@block1 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* controller 3 6 77 59 +551us[ -16ms] +/- 143ms
3. 更新 OpenStack Packages controller/compute1/block1
yum install centos-release-openstack-train -y
yum upgrade -y
yum install python-openstackclient -y
yum install openstack-selinux -y
4. 使用的服务
4.1 控制节点
4.1.1 MariaDB数据库
[root@controller ~]# yum install mariadb mariadb-server python2-PyMySQL -y
[root@controller ~]# vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 10.0.0.11
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
[root@controller ~]# systemctl enable mariadb.service
[root@controller ~]# systemctl start mariadb.service
[root@controller ~]# mysql_secure_installation
4.1.2 Message queue 消息队列
[root@controller ~]# yum install rabbitmq-server -y
[root@controller ~]# systemctl enable rabbitmq-server.service
[root@controller ~]# systemctl start rabbitmq-server.service
[root@controller ~]# rabbitmqctl add_user openstack 123.com
Creating user "openstack"
[root@controller ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/"
[root@controller ~]# netstat -antp | grep 5672
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 1136/beam
tcp 0 0 10.0.0.11:52938 10.0.0.11:25672 TIME_WAIT -
tcp 0 0 10.0.0.11:41318 10.0.0.11:25672 TIME_WAIT -
tcp6 0 0 :::5672 :::* LISTEN 1136/beam
4.1.3 Memcached
[root@controller ~]# yum install memcached python-memcached -y
[root@controller ~]# vim /etc/sysconfig/memcached
OPTIONS="-l 127.0.0.1,::1,controller"
[root@controller ~]# systemctl enable memcached.service
[root@controller ~]# systemctl start memcached.service
4.1.4 Etcd
[root@controller ~]# yum install etcd -y
[root@controller ~]# vim /etc/etcd/etcd.conf
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://10.0.0.11:2380"
ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"
ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
[root@controller ~]# systemctl enable etcd
[root@controller ~]# systemctl start etcd
5. 最小化OpenStack Train版,安装核心组件
5.1 Identity service – keystone
5.1.1 安装前的准备工作
[root@controller ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 28
Server version: 10.3.20-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE keystone;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '123.com';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '123.com';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> exit
Bye
5.1.2 安装和配置
[root@controller ~]# yum install openstack-keystone httpd mod_wsgi -y
[root@controller ~]# vim /etc/keystone/keystone.conf
[database]
connection = mysql+pymysql://keystone:123.com@controller/keystone
[token]
provider = fernet
[root@controller ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone
[root@controller ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
[root@controller ~]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
[root@controller ~]# keystone-manage bootstrap --bootstrap-password 123.com \
> --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
5.1.3 配置Apache服务器
[root@controller ~]# vim /etc/httpd/conf/httpd.conf
ServerName controller
[root@controller ~]# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
[root@controller ~]# systemctl enable httpd.service
[root@controller ~]# systemctl start httpd.service
[root@controller ~]# cat admin_keystone
export OS_USERNAME=admin
export OS_PASSWORD=123.com
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
[root@controller ~]# source admin_keystone
5.2 Image service – glance
5.2.1 前提条件
[root@controller ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.20-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>