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
计算节点
##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
软件配置:
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
配置完成之后:重启服务,并进行初始化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';"
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
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>
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
开启服务:
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 #管理端点
验证:
卸载环境变量(其实关闭当前窗口,新开一个即可) 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环境变量:
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
浙公网安备 33010602011771号