Cloud computing infrastructure platform iaas (openstack) super detailed structures (13) installation services Trove

Note: access and update the content on a blog
because the entire installation process is too cumbersome openstack open source, command is too long, too complicated, so the entire installation shell script commands written.

Script amount of content too, has pushed the self github source of the care center.
This is where the contents of the script Benpian github repository position
controller node
script Introduction

#!/bin/bash
source /etc/xiandian/openrc.sh
source /etc/keystone/admin-openrc.sh
default_network_id=

#------------------------------------------------------------------------------------------------
printf "\033[35mPlease wait...\n\033[0m"

if [[ `openstack endpoint list | grep -w 'volume' ` == '' ]];then
        printf "\033[35mPlease install the cinder service first! \n\033[0m"
        exit 1
fi

if [[ `openstack endpoint list | grep -w 'object-store' ` == '' ]];then
        printf "\033[35mPlease install the swift service first! \n\033[0m"
        exit 1
fi

if [[ `neutron net-list` == '' ]];then
        printf "\033[35mPlease create network first!\n\033[0m"
        exit 1
fi

if [[ $default_network_id == '' ]]; then
        network_mode=`cat /etc/neutron/plugin.ini |grep ^tenant_network_types |awk -F= '{print $2}'`
        if [[ $network_mode == 'flat' ]];then
                default_network_id=`neutron net-list |  sed -e '1,3d'  -e '$d' |awk '{print $2}'`
        elif [[ $network_mode == 'gre' ]];then
                # neutron net-list |  sed -e '1,3d'  -e '$d' |awk '{print $2}'
                for net_name in `neutron net-list |  sed -e '1,3d'  -e '$d' |awk '{print $2}'`;
                do
                        mode=`neutron net-show $net_name |grep "router:external"`
                        if [[ `echo $mode |grep -w "False"` !=  "" ]];then
                                default_network_id=$net_name
                                break
                        fi
                done
        # elif [[ $network_mode == 'vlan' ]] ;then

9 Installation service Trove

9.1 执行脚本进行安装
9.2-9.11编配服务的操作命令已经编写成shell脚本,通过脚本进行一键安装。如下:
#Controller节点
执行脚本iaas-install-trove.sh进行安装
需注意安装Trove服务之前需要配置好网络(flat或gre),创建好子网,并确认系统已经安装swift和cinder两个服务,否则安装会失败。

Trove 9.2 installation package database services

# yum install openstack-trove-guestagent openstack-trove python-troveclient  openstack-trove-ui –y

9.3 Creating a database

# mysql -u root -p
mysql> CREATE DATABASE trove;
mysql> GRANT ALL PRIVILEGES ON trove.* TO trove@'localhost' IDENTIFIED BY '000000';     mysql> GRANT ALL PRIVILEGES ON trove.* TO trove@'%' IDENTIFIED BY  '000000';

9.4 Creating user

# openstack user create --domain $DOMAIN_NAME --password 000000 trove
# openstack role add --project service --user trove admin
# openstack service create --name trove --description "Database" database

9.5 Creating and Endpoint API endpoint

# openstack endpoint create --region RegionOne database public http:// controller:8779/v1.0/%\(tenant_id\)s
# openstack endpoint create --region RegionOne database internal http:// controller:8779/v1.0/%\(tenant_id\)s
# openstack endpoint create --region RegionOne database admin http:// controller:8779/v1.0/%\(tenant_id\)s

9.6 configuration file trove.conf

openstack-config --set /etc/trove/trove.conf DEFAULT log_dir /var/log/trove
openstack-config --set /etc/trove/trove.conf DEFAULT log_file trove-api.log
openstack-config --set /etc/trove/trove.conf DEFAULT trove_auth_url http://controller:35357/v2.0
openstack-config --set /etc/trove/trove.conf DEFAULT notifier_queue_hostname controller
openstack-config --set /etc/trove/trove.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/trove/trove.conf DEFAULT nova_proxy_admin_user admin
openstack-config --set /etc/trove/trove.conf DEFAULT nova_proxy_admin_pass 000000
openstack-config --set /etc/trove/trove.conf DEFAULT nova_proxy_admin_tenant_name admin
openstack-config --set /etc/trove/trove.conf DEFAULT nova_compute_service_type compute
openstack-config --set /etc/trove/trove.conf DEFAULT cinder_service_type volumev2
openstack-config --set /etc/trove/trove.conf DEFAULT network_driver trove.network.neutron.NeutronDriver
openstack-config --set /etc/trove/trove.conf DEFAULT default_neutron_networks (网络的ID)
openstack-config --set /etc/trove/trove.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/trove/trove.conf DEFAULT add_addresses True
openstack-config --set /etc/trove/trove.conf DEFAULT network_label_regex \.\*
openstack-config --set /etc/trove/trove.conf DEFAULT api_paste_config api-paste.ini
openstack-config --set /etc/trove/trove.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/trove/trove.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/trove/trove.conf oslo_messaging_rabbit rabbit_password 000000
openstack-config --set /etc/trove/trove.conf database connection mysql://trove:000000@controller/trove
openstack-config --set /etc/trove/trove.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/trove/trove.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/trove/trove.conf keystone_authtoken auth_type password
openstack-config --set /etc/trove/trove.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/trove/trove.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/trove/trove.conf keystone_authtoken project_name service
openstack-config --set /etc/trove/trove.conf keystone_authtoken username trove
openstack-config --set /etc/trove/trove.conf keystone_authtoken password  000000

9.7 Configuration trove-taskmanager.conf

openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT log_dir /var/log/trove
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT log_file trove-taskmanager.log
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT trove_auth_url http://controller:5000/v2.0
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT nova_compute_url  http://controller:8774/v2.1
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT notifier_queue_hostname  controller
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT nova_proxy_admin_user admin
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT nova_proxy_admin_pass 000000
openstack-config crudini --set /etc/trove/trove-taskmanager.conf DEFAULT nova_proxy_admin_tenant_id $(openstack project list |grep -w 'admin' |awk '{print $2}')
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT taskmanager_manager trove.taskmanager.manager.Manager
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT notification_driver messagingv2
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT network_driver trove.network.neutron.NeutronDriver
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT default_neutron_networks (网络ID)
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT network_label_regex \.\*
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT guest_config /etc/trove/trove-guestagent.conf
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT guest_info guest_info.conf
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT injected_config_location /etc/trove/conf.d
openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT cloudinit_location /etc/trove/cloudinit
sed -i '/^exists_notification/s/^/#/' /etc/trove/trove-taskmanager.conf 
openstack-config --set /etc/trove/trove-taskmanager.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/trove/trove-taskmanager.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/trove/trove-taskmanager.conf oslo_messaging_rabbit rabbit_password 000000
openstack-config --set /etc/trove/trove-taskmanager.conf database connection mysql://trove:000000@controller/trove

9.8 configuration files trove-conductor.conf

openstack-config --set /etc/trove/trove-conductor.conf DEFAULT log_dir /var/log/trove
openstack-config --set /etc/trove/trove-conductor.conf DEFAULT log_file trove-conductor.log
openstack-config --set /etc/trove/trove-conductor.conf DEFAULT trove_auth_url http://controller:5000/v2.0
openstack-config --set /etc/trove/trove-conductor.conf DEFAULT notifier_queue_hostname  controller
openstack-config --set /etc/trove/trove-conductor.conf DEFAULT nova_proxy_admin_user admin
openstack-config --set /etc/trove/trove-conductor.conf DEFAULT nova_proxy_admin_pass 000000
openstack-config --set /etc/trove/trove-conductor.conf DEFAULT nova_proxy_admin_tenant_name admin
openstack-config --set /etc/trove/trove-conductor.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/trove/trove-conductor.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/trove/trove-conductor.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/trove/trove-conductor.conf oslo_messaging_rabbit rabbit_password 000000
openstack-config --set /etc/trove/trove-conductor.conf database connection mysql://trove:000000@controller/trove

9.9 configuration files trove-guestagent.conf

openstack-config --set /etc/trove/trove-guestagent.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/trove/trove-guestagent.conf DEFAULT nova_proxy_admin_user admin
openstack-config --set /etc/trove/trove-guestagent.conf DEFAULT nova_proxy_admin_pass 000000
openstack-config --set /etc/trove/trove-guestagent.conf DEFAULT nova_proxy_admin_user admin
openstack-config --set /etc/trove/trove-guestagent.conf DEFAULT nova_proxy_admin_tenant_id $(openstack project list |grep -w 'admin' |awk '{print $2}')
openstack-config --set /etc/trove/trove-guestagent.conf DEFAULT trove_auth_url http://192.168.100.10:35357/v2.0
openstack-config --set /etc/trove/trove-guestagent.conf DEFAULT swift_url http://192.168.100.10:8080/v1/AUTH_
openstack-config --set /etc/trove/trove-guestagent.conf DEFAULT os_region_name RegionOne 
openstack-config --set /etc/trove/trove-guestagent.conf DEFAULT swift_service_type object-store
openstack-config --set /etc/trove/trove-guestagent.conf DEFAULT log_file trove-guestagent.log
openstack-config --set /etc/trove/trove-guestagent.conf DEFAULT rabbit_password 000000
openstack-config --set /etc/trove/trove-guestagent.conf DEFAULT rabbit_host 192.168.100.10
openstack-config --set /etc/trove/trove-guestagent.conf DEFAULT rabbit_userid openstack
openstack-config --set /etc/trove/trove-guestagent.conf DEFAULT rabbit_port 5672
openstack-config --set /etc/trove/trove-guestagent.conf oslo_messaging_rabbit rabbit_host 192.168.100.10
openstack-config --set /etc/trove/trove-guestagent.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/trove/trove-guestagent.conf oslo_messaging_rabbit rabbit_password 000000

9.10 synchronize database

# su -s /bin/sh -c "trove-manage db_sync" trove

9.11 Start Service

# service httpd restart
# systemctl enable openstack-trove-api.service openstack-trove-taskmanager.service openstack-trove-conductor.service
# systemctl restart openstack-trove-api.service openstack-trove-taskmanager.service openstack-trove-conductor.service

The above is the contents of the script
in the following operations are not a script, you can become familiar with the operation

9.12 Upload Mirror

将提供的MySQL_5.6_xiandian.qcow2 上传到系统内
# glance image-create --name "mysql-5.6" --disk-format qcow2  --container-format bare --progress <  MySQL_5.6_XD.qcow2 

Create a database to store 9.13

# trove-manage datastore_update mysql ''

9.14 update the database using the uploaded image

# glance_id=$(glance image-list | awk '/ mysql-5.6 / { print $2 }')
# trove-manage datastore_version_update mysql mysql-5.6 mysql ${glance_id} '' 1

9.15 start the database instance

使用m1.small类型启动名称为mysql-1、大小为5G、创建数据库名称为myDB,用户为user,密码为r00tme,创建过程一般需要3-4分钟。
# FLAVOR_ID=$(openstack flavor list | awk '/ m1.small / { print $2 }')
# trove create mysql-1  ${FLAVOR_ID} --size 5 --databases myDB --users user:r00tme --datastore_version mysql-5.6 --datastore mysql
创建完成后查询trove列表
[root@controller ~]# trove list
+--------------------------------------+---------+-----------+-------------------+--------+-----------+------+
| ID                                   | Name    | Datastore | Datastore Version | Status | Flavor ID | Size |
+--------------------------------------+---------+-----------+-------------------+--------+-----------+------+
| b9c9208d-5bca-434a-b258-127ff8496c5e | mysql-1 | mysql     | mysql-5.6         | ACTIVE | 2         |    5 |
+--------------------------------------+---------+-----------+-------------------+--------+-----------+------+
trove数据库网页访问数据库备份模块可能会出现异常,可以通过命令行完成相关操作。

The next blog will be updated heat content service components.

Guess you like

Origin blog.csdn.net/qq_28513801/article/details/90170583