openstack系列Minimal deployment for Rocky
脚本已测试,如需使用,修改脚本所有controller-ZJB为你的主机名,修改所有1790600080为你的密码
win的编码与unix的编码有区别,如果你直接粘贴使用,最好安装dos2unix将脚本文件转码!


#!/bin/bash
#This is a script for editing nova-controller keystone
readonly create_user_passwd=1790600080
systemctl stop firewalld
echo " 这是一个一键配置Nova-Controller的keystone组件的脚本:"
echo " "
echo " --------------------------------"
echo " 1、下面开始创建数据库并赋予相应权限……"
mysql -uroot -p1790600080 <<EOF
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '1790600080';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '1790600080';
EOF
echo " --------------------------------"
echo " 数据库已创建成功并赋予了相应权限"
echo " --------------------------------"
echo " 2、安装keystone软件包:"
yum -y install openstack-keystone httpd mod_wsgi
echo " --------------------------------"
if [ $? == 0 ];then
echo " 软件已成功安装!"
else
echo " 软件安装出错,请手动查看问题!"
fi
echo " --------------------------------"
echo " 4、修改Nova配置文件:"
echo " "
read -p " 是否选择一键修改Nova配置文件(y/n)" answer
#判断/etc/keystone/keystone.conf文件是否存在,不存在直接输出错误
if [ $answer == "y" ]; then
ls /etc/keystone/keystone.conf &>/dev/null
if [ $? == 0 ]; then
database_line=`cat -n /etc/keystone/keystone.conf | grep "\[database\]$" | awk '{print $1}'`
sed -i $database_line'a\connection = mysql+pymysql://keystone:1790600080@controller-ZJB/keystone' /etc/keystone/keystone.conf
token_line=`cat -n /etc/keystone/keystone.conf | grep "\[token\]$" | awk '{print $1}'`
sed -i $token_line'a\provider = fernet' /etc/keystone/keystone.conf
echo " 4、/etc/keystone/keystone.conf文件已修改完毕"
else
echo "/etc/keystone/keystone.conf文件不存在!"
fi
echo " "
echo " /etc/keystone/keystone.conf配置文件以修改完毕!"
elif [ $answer == "n" ]; then
echo " "
echo " 已退出此脚本"
fi
echo " 5、填充数据库并初始化"
su -s /bin/sh -c "keystone-manage db_sync" keystone
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
echo " 6、引导身份服务:"
keystone-manage bootstrap --bootstrap-password 1790600080 --bootstrap-admin-url http://controller-ZJB:5000/v3/ --bootstrap-internal-url http://controller-ZJB:5000/v3/ --bootstrap-public-url http://controller-ZJB:5000/v3/ --bootstrap-region-id RegionOne
echo " 7、配置Apache HTTP server"
sed -i 's/#ServerName www.example.com:80/ServerName controller-ZJB/g' /etc/httpd/conf/httpd.conf
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
echo " 8、配置httpd服务自启动"
systemctl enable httpd.service
systemctl start httpd.service
echo " 9、配置admin管理账户并创建域、项目、用户、角色:"
export OS_USERNAME=admin
export OS_PASSWORD=1790600080
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller-ZJB:5000/v3
export OS_IDENTITY_API_VERSION=3
openstack domain create --description "An Example Domain" example
openstack project create --domain default --description "Service Project" service
openstack project create --domain default --description "Demo Project" myproject
openstack user create --domain default --password $create_user_passwd myuser
openstack role create myrole
openstack role add --project myproject --user myuser myrole
echo " 10、验证keystone已成功安装运行:"
openstack --os-auth-url http://controller-ZJB:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name admin --os-username admin token issue