環境:python
免密鑰,域名解析mysql
cat /etc/hosts
linux
192.168.42.120 controller
redis
192.168.42.121 compute
sql
192.168.42.122 storage
數據庫
安裝服務apache
1、安裝openstack軟件包bootstrap
1.安裝openstack python客戶端vim
yum install python-openstackclientapi
2.安裝openstack selinux 的組件
yum install openstack-selinux
2、數據庫
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
3、消息隊列
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
4、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
配置身份認證服務
1、.安裝部署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版本
2、建立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服務部署完成。