Openstack安装部署

Openstack安装部署(双机)

环境配置:

  系统环境:System:CentOS7,

       IP:192.168.1.21(控制节点),192.168.1.22(计算节点),

       YUM源:阿里开源镜像站(wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo.)

     系统服务: NTP时间同步(chronyd,对于CentOS7;ntpd,对于CentOS6)

软件安装:

    控制节点

#Base
yum install -y http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
yum install centos-release-openstack-liberty
yum install python-openstackclient

##MySQL
yum install -y mariadb mariadb-server MySQL-python

##RabbitMQ
yum install -y rabbitmq-server

##Keystone
yum install -y openstack-keystone httpd mod_wsgi memcached python-memcached

##Glance
yum install -y openstack-glance python-glance python-glanceclient

##Nova
yum install openstack-nova-api openstack-nova-cert openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler python-novaclient

##Neutron linux-node1.example.com
yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge python-neutronclient ebtables ipset

##Dashboard
yum install openstack-dashboard
openstack软件---控制节点

    计算节点

##Base
	yum install -y http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
	yum install centos-release-openstack-liberty
	yum install python-openstackclient

##Nova   linux-node2.example.com
	yum install openstack-nova-compute sysfsutils -y

##Neutron linux-node2.example.com
	yum install -y openstack-neutron openstack-neutron-linuxbridge ebtables ipset
openstack软件---计算节点

软件配置:

    MariaDB(MySQL)

MySQL:

cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
vim /etc/my.cnf

[mysqld]
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci   
init-connect = 'SET NAMES utf8'
character-set-server = utf8
MariaDB配置

配置完成之后:重启服务,并进行初始化MySQL设置

systemctl enable mariadb.service
systemctl start mariadb.service
mysql_secure_installation

    MariaDB针对openstack组件所做的配置

Keystone数据库
mysql -u root -popenstack -e "CREATE DATABASE keystone;"
mysql -u root -popenstack -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone';"
mysql -u root -popenstack -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';"

Glance数据库
mysql -u root -popenstack -e "CREATE DATABASE glance;"
mysql -u root -popenstack -e "GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance';"
mysql -u root -popenstack -e "GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance';"

Nova数据库
mysql -u root -popenstack -e "CREATE DATABASE nova;"
mysql -u root -popenstack -e "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';"
mysql -u root -popenstack -e "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova';"

Neutron 数据库
mysql -u root -popenstack -e "CREATE DATABASE neutron;"
mysql -u root -popenstack -e "GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'neutron';"
mysql -u root -popenstack -e "GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'neutron';"


Cinder数据库
mysql -u root -popenstack -e "CREATE DATABASE cinder;"
mysql -u root -popenstack -e "GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'cinder';"
mysql -u root -popenstack -e "GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'cinder';"
MariaDB配置---openstack

RabbitMQ:
rabbitmq-plugins enable rabbitmq_management(开启管理插件,可以通过浏览器管理RabbitMQ.)

systemctl enable/start rabbitmq-server(插件开启之后,重启RabbitMQ.)

SELinux:

yum install openstack-selinux(openstack自主管理selinux.)

Apache:

vim  /etc/httpd/conf/httpd.conf
    
    ServerName 192.168.56.11:80
Apache配置修改
vim /etc/httpd/conf.d/wsgi-keystone.conf
Listen 5000
Listen 35357
#  以下注意空格
<VirtualHost *:5000>
    WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
    WSGIProcessGroup keystone-public
    WSGIScriptAlias / /usr/bin/keystone-wsgi-public
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    <IfVersion >= 2.4>
      ErrorLogFormat "%{cu}t %M"
    </IfVersion>
    ErrorLog /var/log/httpd/keystone-error.log
    CustomLog /var/log/httpd/keystone-access.log combined

    <Directory /usr/bin>
        <IfVersion >= 2.4>
            Require all granted
        </IfVersion>
        <IfVersion < 2.4>
            Order allow,deny
            Allow from all
        </IfVersion>
    </Directory>
</VirtualHost>

<VirtualHost *:35357>
    WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
    WSGIProcessGroup keystone-admin
    WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    <IfVersion >= 2.4>
      ErrorLogFormat "%{cu}t %M"
    </IfVersion>
    ErrorLog /var/log/httpd/keystone-error.log
    CustomLog /var/log/httpd/keystone-access.log combined

    <Directory /usr/bin>
        <IfVersion >= 2.4>
            Require all granted
        </IfVersion>
        <IfVersion < 2.4>
            Order allow,deny
            Allow from all
        </IfVersion>
    </Directory>
</VirtualHost>
新建Keystone配置文件

Openstack---MariaDB数据库同步:

su -s /bin/sh -c "keystone-manage db_sync" keystone

su -s /bin/sh -c "glance-manage db_sync" glance

su -s /bin/sh -c "nova-manage db_sync" nova
Keystone、Glance、Nova数据库同步

开启服务:

systemctl enable memcached.service
systemctl start memcached.service
systemctl enable httpd.service
systemctl start httpd.service

Keystone    

     创建相关用户角色:

设置环境变量
export OS_TOKEN=863d35676a5632e846d9
export OS_URL=http://192.168.56.11:35357/v3
export OS_IDENTITY_API_VERSION=3
创建admin项目
openstack project create --domain default   --description "Admin Project" admin
创建admin用户
openstack user create --domain default --password-prompt admin
#本次操作会提示输入密码,此次密码我们设置为admin(生产一定要复杂)
创建admin角色
openstack role create admin
给admin项目添加admin用户并且角色设置为admin
openstack role add --project admin --user admin admin        #此次操作没有输出
创建普通项目、用户、角色,并授权
openstack project create --domain default --description "Demo Project" demo
openstack user create --domain default --password=demo demo
openstack role create user
openstack role add --project demo --user demo user
创建service项目,用于相关组件交互
openstack project create --domain default --description "Service Project" service
创建相关用户角色

创建keystone服务并注册:

创建服务
openstack service create --name keystone --description "OpenStack Identity" identity
创建端点
openstack endpoint create --region RegionOne identity public http://192.168.56.11:5000/v2.0                #公共端点,可以对外提供服务
openstack endpoint create --region RegionOne identity internal http://192.168.56.11:5000/v2.0              #内部端点
openstack endpoint create --region RegionOne identity admin http://192.168.56.11:35357/v2.0              #管理端点
创建keystone服务并注册服务

验证:

卸载环境变量(其实关闭当前窗口,新开一个即可)
unset OS_TOKEN
unset OS_URL
unset OS_IDENTITY_API_VERSION
验证能否获取ID(需要输入admin的密码)
openstack --os-auth-url http://192.168.56.11:35357/v3 \
--os-project-domain-id default --os-user-domain-id default \
--os-project-name admin --os-username admin --os-auth-type password \
token issue
Keystone验证

配置keystone环境变量:

admin环境变量
vim admin-openrc.sh
export OS_PROJECT_DOMAIN_ID=default
export OS_USER_DOMAIN_ID=default
export OS_PROJECT_NAME=admin
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL=http://192.168.56.11:35357/v3
export OS_IDENTITY_API_VERSION=3

demo环境变量
vim demo-openrc.sh
export OS_PROJECT_DOMAIN_ID=default
export OS_USER_DOMAIN_ID=default
export OS_PROJECT_NAME=demo
export OS_TENANT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=demo
export OS_AUTH_URL=http://192.168.56.11:5000/v3
export OS_IDENTITY_API_VERSION=3
验证结果
source admin-openrc.sh
openstack token issue
Keystone环境变量

 

posted on 2016-03-01 23:38  曦字号  阅读(275)  评论(0)    收藏  举报

导航