# systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[iyunv@node1 ~]# systemctl start mariadb.service
[iyunv@node1 ~]# systemctl status mariadb.service
● mariadb.service - MariaDB 10.1 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2017-04-25 15:50:54 CST; 10s ago
Process: 21977 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
Process: 21790 ExecStartPre=/usr/libexec/mysql-prepare-db-dir %n (code=exited, status=0/SUCCESS)
Process: 21765 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
Main PID: 21947 (mysqld)
Status: "Taking your SQL requests now..."
CGroup: /system.slice/mariadb.service
└─21947 /usr/libexec/mysqld --basedir=/usr
Apr 25 15:50:54 node1.chinasoft.com mysql-prepare-db-dir[21790]: '/usr/bin/mysql_secure_installation'
Apr 25 15:50:54 node1.chinasoft.com mysql-prepare-db-dir[21790]: which will also give you the option of removing the test
Apr 25 15:50:54 node1.chinasoft.com mysql-prepare-db-dir[21790]: databases and anonymous user created by default. This is
Apr 25 15:50:54 node1.chinasoft.com mysql-prepare-db-dir[21790]: strongly recommended for production servers.
Apr 25 15:50:54 node1.chinasoft.com mysql-prepare-db-dir[21790]: See the MariaDB Knowledgebase at http://mariadb.com/kb or the
Apr 25 15:50:54 node1.chinasoft.com mysql-prepare-db-dir[21790]: MySQL manual for more instructions.
Apr 25 15:50:54 node1.chinasoft.com mysql-prepare-db-dir[21790]: Please report any problems at http://mariadb.org/jira
Apr 25 15:50:54 node1.chinasoft.com mysql-prepare-db-dir[21790]: The latest information about MariaDB is available at http://mariadb.org/.
Apr 25 15:50:54 node1.chinasoft.com mysqld[21947]: 2017-04-25 15:50:54 140071239162048 [Note] /usr/libexec/mysqld (mysqld 10.1.20-MariaDB) starting as process 21947 ...
Apr 25 15:50:54 node1.chinasoft.com systemd[1]: Started MariaDB 10.1 database server.
Hint: Some lines were ellipsized, use -l to show in full.
设置mysql密码,关闭匿名用户,删除测试数据库
[iyunv@node1 ~]# mysql_secure_installation
创建所有组件的库并授权(生产环境建议配置复杂密码)
# mysql -uroot -proot
执行sql
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance';
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova';
CREATE DATABASE neutron;
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'neutron';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'neutron';
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'cinder';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'cinder';
MariaDB [mysql]> show databases;
+--------------------+
| Database |
+--------------------+
| cinder |
| glance |
| information_schema |
| keystone |
| mysql |
| neutron |
| nova |
| performance_schema |
+--------------------+
8 rows in set (0.00 sec)
3.3 Rabbit消息队列
SOA架构:面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以使用一种统一和通用的方式进行交互。
在这里Openstack采用了SOA架构方案,结合了SOA架构的松耦合特点,单独组件单独部署,每个组件之间可能互为消费者和提供者,通过消息队列(openstack 支持Rabbitmq,Zeromq,Qpid)进行通信,保证了当某个服务当掉的情况,不至于其他都当掉。
启动Rabbitmq
[iyunv@node1 ~]# systemctl enable rabbitmq-server.service
Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.
[iyunv@node1 ~]# systemctl start rabbitmq-server.service
新建Rabbitmq用户并授权
[iyunv@node1 ~]# rabbitmqctl add_user openstack openstack
Creating user "openstack" ...
[iyunv@node1 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...
启用Rabbitmq的web管理插件
[iyunv@node1 keystone]# vim /etc/httpd/conf/httpd.conf
ServerName 192.168.3.199:80
启动memcached,httpd,keystone
[iyunv@node1 keystone]# systemctl enable memcached httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[iyunv@node1 keystone]# systemctl start memcached httpd
修改默认的memcached监听地址127.0.0.1为0.0.0.0
[iyunv@node1 keystone]# openstack user create --domain default --password-prompt admin
User Password:
Repeat User Password:
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 0d0e11a89eec4b9f9812491f967bfc29 |
| name | admin |
+-----------+----------------------------------+
创建admin的角色(role)
[iyunv@node1 keystone]# openstack role create admin
+-------+----------------------------------+
| Field | Value |
+-------+----------------------------------+
| id | e07056a7929640eea958d01519d16de4 |
| name | admin |
+-------+----------------------------------+
把admin用户加到admin项目,赋予admin角色,把角色,项目,用户关联起来
报错记录:
[iyunv@node1 keystone]# openstack --os-auth-url http://192.168.3.199: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
An unexpected error prevented the server from fulfilling your request. (HTTP 500) (Request-ID: req-1d330a83-ab77-4e0f-8e42-1c8d461aea3b)
通过看日志也没看出啥(/var/log/httpd/keystone-access.log keystone-error.log),其实是memcached监听的IP需要由192.168.3.199改为127.0.0.1
下面的报错可以忽略
2017-04-25 19:05:40.954308 No handlers could be found for logger "oslo_config.cfg"
创建OpenStack的客户端环境的脚本
配置admin和demo用户的环境变量,并添加执行权限,以后执行命令,直接source一下就行了