环境:
免密钥,域名解析
cat /etc/hosts
192.168.42.120 controller
192.168.42.121 compute
192.168.42.122 storage
安装服务
一、安装openstack软件包
1.安装openstack python客户端
yum install python-openstackclient
2.安装openstack selinux 的组件
yum install openstack-selinux
二、数据库
1.安装mariadb mariadb-server python2-pyMySQL
yum install mariadb mariadb-server python2-PyMySQL
2.配置openstack配置文件
vim /etc/my.cnf.d/openstack.cnf
[mysqld] bind-address = 192.168.42.120 监听的地址
default-storage-engine = innodb 默认数据库引擎
innodb_file_per_table = on
max_connections = 4096 最大链接数(最好写大点)
collation-server = utf8_general_ci 字符集
character-set-server = utf8 server端的字符集
3.重启并设置开机自启数据库
systemctl restart mariadb.service
systemctl enable mariadb.service
4.初始化数据库
mysql_secure_installation
三、消息队列
1.安装rabbitmq服务
yum install rabbitmq-server
2.重启并设置开机自启rabbitmq
systemctl restart rabbitmq-srever.service
systemctl enable rabbitmq-server.service
3.添加用户并设置权限,设置为管理员
rabbitmqctl add_user openstack admin
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
rabbitmqctl set_user_tags openstack administrator
4.浏览器登录查看是否设置成功
192.168.42.120:15672
四、memcache
1.安装缓存系统
yum install memcached python-memcached
2.编辑配置文件
vim /etc/sysconfig/mamcached
OPTIONS="-l 127.0.0.1,::1,controller"
写域名不写ip的原因:以后ip变化不需要修改配置文件,直接修改/etc/hosts文件即可
3.重启并设置开机自启
systemctl restart memcached
systemctl enable memcached
配置身份认证服务
一、.安装部署keystone
1.登录数据库,创建以一个keystone数据库,并设置权限,可以第三方登录
mysql -uroot -p0330
create database keystone
grant all privileges on keystone.* to keystone@localhost identified by "keystone"
grant all privileges on keystone.* to keystone@'%' identified by "keystone"
2.安装keystone服务(通过调用http服务对外提供服务)
yum install openstack-keystone httpd mod_wsgi
3.修改配置文件
cp /etc/keystone/keystone.conf /etc/keystone/keystone.conf.bak 先复制再修改
vim /etc/keystone/keystone.conf
-rw-r-----. 1 root keystone 771 6月 3 15:34 keystone.conf
4.同步数据库
su -s /bin/sh -c "keystone-manage db_sync" keystone
5.创建fornet配置,设置一个keystone用户和keystone组
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
6.创建keystone用户的身份信息
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
7.keystone服务的服务端点(必须是controller的主机名)
keystone-manage bootstrap --bootstrap-password admin \ admin是openstack用户的密码
--bootstrap-admin-url http://controller:35357/v3/ \ 管理网的服务端点:主机名:端口号:api版本
--bootstrap-internal-url http://controller:5000/v3/ \ 内部
--bootstrap-public-url http://controller:5000/v3/ \ 公共
--bootstrap-region-id RegionOne
8.编辑apache服务
vim /etc/httpd/conf/httpd.conf
ServerName controller
9.通过wsgi这个模块调用apache(把模块链接到keystone的配置文件夹下)
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
10.重启并设置开机自启httpd
systemctl restart httpd
systemctl enable httpd
11.创建admin用户的环境变量
vim openrc
export OS_USERNAME=admin 宣告变量OS_USERNAME的值是admin
export OS_PASSWORD=admin 密码是admin
export OS_PROJECT_NAME=admin 项目是admin
export OS_USER_DOMAIN_NAME=Default 所处在的domain域
export OS_PROJECT_DOMAIN_NAME=Default 项目域的名字
export OS_AUTH_URL=http://controller:35357/v3 服务端点
export OS_IDENTITY_API_VERSION=3 API版本
二、创建domain, projects, users, and roles
每次使用openstack命令之前必须宣告环境变量
1.创建项目
openstack project create --domain default \ --description "Service Project" service 域名叫default 项目service
2.创建一个名为demo的项目,域名叫default
openstack project create --domain default \ --description "Demo Project" demo
openstack project list 查看项目列表
3.创建demo的用户,处在default域中,弹出一个交互式的界面
openstack user create --domain default \ --password-prompt demo
openstack user list 查看用户列表
4.创建一个user角色
openstack role create user 普通用户
5.将一个demo项目里的demo用户的角色设为user
openstack role add --project demo --user demo user
6.取消环境变量的值
unset OS_AUTH_URL OS_PASSWORD
7.验证
openstack --os-auth-url http://controller:35357/v3 \ keystone的服务端点
--os-project-domain-name default 登录的项目域名default
--os-user-domain-name default \ 用admin项目里的admin用户登录
--os-project-name admin --os-username admin token issue 采用token的方式验证
出现交互式界面输入admin
以上keystone服务部署完成。