1. 程式人生 > >OpenStack-Rocky版單機部署

OpenStack-Rocky版單機部署

flags https token gen state 部署 roo fff enable

1.安裝環境:

centos 7.5
192.168.254.10 openstack-server

2.系統配置:

[root@localhost ~]# hostname openstack-server.smoke.com
[root@openstack-server ~]# vim /etc/hostname
openstack-server.smoke.com
[root@openstack-server ~]# vim /etc/hosts
192.168.254.10  openstack-server openstack-server.smoke.com
[root@openstack-server ~]# ifconfig
enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.254.10  netmask 255.255.255.224  broadcast 192.168.254.31
        inet6 fe80::119a:26d0:b028:74d0  prefixlen 64  scopeid 0x20<link>
        ether 00:e0:4c:0f:ff:a9  txqueuelen 1000  (Ethernet)
        RX packets 42277  bytes 39441483 (37.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14912  bytes 1016294 (992.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 32  bytes 2792 (2.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 32  bytes 2792 (2.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3.安裝時間同步服務NTP:
[root@openstack-server ~]# yum install chrony

chrony時間服務器配置:

[root@openstack-server ~]# vim /etc/chrony.conf
allow 192.168.254.0/27

啟動chrony服務:

[root@openstack-server ~]# systemctl enable chronyd.service
[root@openstack-server ~]# systemctl start chronyd.service

設置時區:
[root@openstack-server ~]# timedatectl set-timezone Asia/Shanghai

4.安裝阿裏的OpenStack源:

[root@openstack-server ~]# vim /etc/yum.repos.d/OpenStack-Rocky.repo
[openstack-rocky]
name=openstack-rocky
baseurl=https://mirrors.aliyun.com/centos/7.5.1804/cloud/x86_64/openstack-rocky/
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
repo_gpgcheck=0
enabled=1
[root@openstack-server ~]# yum clean all
[root@openstack-server ~]# yum makecache

升級軟件包:
[root@openstack-server ~]# yum -y upgrade

安裝OpenStack client:
[root@openstack-server ~]# yum -y install python-openstackclient

安裝openstack-selinux:
[root@openstack-server ~]# yum -y install openstack-selinux

5.安裝Mariadb:
[root@openstack-server ~]# yum -y install mariadb mariadb-server python2-PyMySQL

編輯Mariadb配置文件:

[root@openstack-server ~]# mv /etc/my.cnf /etc/my.cnf.bak
[root@openstack-server ~]# cp /usr/share/mariadb/my-large.cnf /etc/my.cnf
[root@openstack-server ~]# vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.254.10

default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

啟動Mariadb服務:

[root@openstack-server ~]# systemctl enable mariadb.service
[root@openstack-server ~]# systemctl start mariadb.service

初始化Mariadb:
[root@openstack-server ~]# mysql_secure_installation(按提示操作設置root密碼)

6.安裝rabbitmq-server:
[root@openstack-server ~]# yum install rabbitmq-server

啟動rabbitmq-server服務:

[root@openstack-server ~]# vim /etc/rabbitmq/rabbitmq.config
[root@openstack-server ~]# systemctl start rabbitmq-server.service

添加openstack用戶:

[root@openstack-server ~]# rabbitmqctl add_user openstack openstack
[root@openstack-server ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

開啟web管理插件:
[root@openstack-server ~]# rabbitmq-plugins enable rabbitmq_management

使用web訪問rabbitmq-server(默認賬號guest,密碼guest):
技術分享圖片

設置openstack用戶Tags為administrator(點擊Admin -- openstack):
技術分享圖片

點擊Update this user:
技術分享圖片

查看設置:
技術分享圖片

7.安裝memcached:
[root@openstack-server ~]# yum -y install memcached python-memcached

配置memcached:

[root@openstack-server ~]# vim  /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 0.0.0.0,::1"

啟動memcached服務:

[root@openstack-server ~]# systemctl enable memcached.service
[root@openstack-server ~]# systemctl start memcached.service

8.安裝etcd服務:
[root@openstack-server ~]# yum -y install etcd

配置etcd服務:

[root@openstack-server ~]# vim  /etc/etcd/etcd.conf
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.254.10:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.254.10:2379"
ETCD_NAME="openstack-server"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.254.10:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.254.10:2379"
ETCD_INITIAL_CLUSTER="openstack=http://192.168.254.10:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"

啟動etcd服務:

[root@openstack-server ~]# systemctl enable etcd
[root@openstack-server ~]# systemctl start etcd

9.安裝keystone:
在Mariadb創建keystone庫和用戶:

[root@openstack-server ~]# mysql -uroot -psmoke520 -e "CREATE DATABASE keystone;"
[root@openstack-server ~]# mysql -uroot -psmoke520 -e "GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone‘@‘localhost‘ IDENTIFIED BY ‘keystone‘;"
[root@openstack-server ~]# mysql -uroot -psmoke520 -e "GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone‘@‘%‘ IDENTIFIED BY ‘keystone‘;"

安裝keystone:
[root@openstack-server ~]# yum -y install openstack-keystone httpd mod_wsgi

修改keystone配置文件:

[root@openstack-server ~]# vim /etc/keystone/keystone.conf
[database]
connection = mysql+pymysql://keystone:keystone@openstack-server/keystone
[token]
provider = fernet

同步數據庫:
[root@openstack-server ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone

初始化Fernet key倉庫:

[root@openstack-server ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
[root@openstack-server ~]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

引導身份服務:

[root@openstack-server ~]# keystone-manage bootstrap --bootstrap-password admin >   --bootstrap-admin-url http://openstack-server:5000/v3/ >   --bootstrap-internal-url http://openstack-server:5000/v3/ >   --bootstrap-public-url http://openstack-server:5000/v3/ >   --bootstrap-region-id RegionOne

配置httpd服務:

[root@openstack-server ~]# vim /etc/httpd/conf/httpd.conf
ServerName openstack-server

創建wsgi-keysone配置文件鏈接:
[root@openstack-server ~]# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

啟動httpd服務:

[root@openstack-server ~]# systemctl enable httpd.service
[root@openstack-server ~]# systemctl start httpd.service
[root@openstack-server ~]# vim admin-openrc.sh
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://openstack-server:5000/v3
export OS_IDENTITY_API_VERSION=3

創建域,項目,用戶,角色:

[root@openstack-server ~]# openstack domain create --description "An Example Domain" example
[root@openstack-server ~]# openstack project create --domain default >   --description "Service Project" service
[root@openstack-server ~]# openstack project create --domain default >   --description "Demo Project" myproject
[root@openstack-server ~]# openstack user create --domain default >   --password-prompt myuser
[root@openstack-server ~]# openstack role create myrole
[root@openstack-server ~]# openstack role add --project myproject --user myuser myrole

驗證keystone是否安裝成功:

[root@openstack-server ~]# unset OS_AUTH_URL OS_PASSWORD
[root@openstack-server ~]# openstack --os-auth-url http://openstack-server:5000/v3   --os-project-domain-name Default --os-user-domain-nam                           e Default   --os-project-name admin --os-username admin token issue

創建myuser環境變量:

[root@openstack-server ~]# vim myuser-openrc.sh
export OS_USERNAME=myuser
export OS_PASSWORD=myuser
export OS_PROJECT_NAME=myproject
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://openstack-server:5000/v3
export OS_IDENTITY_API_VERSION=3

使用myuser用戶進行測試:

[root@openstack-server ~]#  openstack --os-auth-url http://openstack-server:5000/v3 >   --os-project-domain-name Default --os-user-domain-name Default >   --os-project-name myproject --os-username myuser token issue

修改用戶環境變量腳本:

[root@openstack-server ~]# vim admin-openrc.sh
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://openstack-server:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
[root@openstack-server ~]# vim myuser-openrc.sh
export OS_USERNAME=myuser
export OS_PASSWORD=myuser
export OS_PROJECT_NAME=myproject
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://openstack-server:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

使用腳本測試:

[root@openstack-server ~]# . admin-openrc.sh
[root@openstack-server ~]# openstack token issue

OpenStack-Rocky版單機部署