#!/bin/sh
install_cinder(){
set -o errexit
set -x
readonly passwd=openstack
readonly my_ip=172.16.199.11
echo "-------------安装和配置控制节点-------------"
#数据库
source ./sql_scripts/cinder.sql
source ./admin-openrc
openstack user create --domain default --password $passwd cinder
openstack role add --project service --user cinder admin
openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 public http://controller:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 internal http://controller:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 admin http://controller:8776/v3/%\(project_id\)s
(echo 'y')|apt install cinder-api cinder-scheduler
#/etc/cinder/cinder.conf
#[database]
sed -i "15s/^connection\s.*/connection = mysql+pymysql:\/\/cinder:$passwd@controller\/cinder/" /etc/cinder/cinder.conf
head -n 15 /etc/cinder/cinder.conf | tail -n 1
#[DEFAULT]
sed -i "12s/^enabled_backends\s.*/enabled_backends = nfs/" /etc/cinder/cinder.conf
head -n 12 /etc/cinder/cinder.conf | tail -n 1
sed -i "13i transport_url = rabbit://openstack:$passwd@controller" /etc/cinder/cinder.conf
head -n 13 /etc/cinder/cinder.conf | tail -n 1
sed -i "14i my_ip=$my_ip" /etc/cinder/cinder.conf
head -n 14 /etc/cinder/cinder.conf | tail -n 1
#[keystone_authtoken]
sed -i '$a\ ' /etc/cinder/cinder.conf
sed -i '$a\[keystone_authtoken]' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\www_authenticate_uri = http://controller:5000' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\auth_url = http://controller:5000' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\memcached_servers = controller:11211' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\auth_type = password' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\project_domain_id = default' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\user_domain_id = default' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\project_name = service' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\username = cinder' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i "\$a\password = $passwd" /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
#[oslo_concurrency]
sed -i '$a\ ' /etc/cinder/cinder.conf
sed -i '$a\[oslo_concurrency]' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\lock_path = /var/lib/cinder/tmp' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
#填充数据库
su -s /bin/sh -c "cinder-manage db sync" cinder
#4246
#nova /etc/nova/nova.conf
sed -i "4229s/^#os_region_name\s.*/os_region_name = RegionOne/" /etc/nova/nova.conf
head -n 4229 /etc/nova/nova.conf | tail -n 1
/etc/init.d/nova-api restart
/etc/init.d/cinder-scheduler restart
/etc/init.d/apache2 restart
}
install_cinder
mysql << EOF
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
IDENTIFIED BY '$passwd';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
IDENTIFIED BY '$passwd';
EOF
#!/bin/sh
install_cinder(){
set -o errexit
set -x
readonly passwd=openstack
readonly my_ip=172.16.199.31
echo "-------------安装和配置存储节点-------------"
#安装配置nfs server
(echo 'y')|apt-get install nfs-kernel-server
mkdir /vol/cinder -p
chmod 777 /vol/cinder
sed -i '$a\/vol/cinder *(rw,sync,no_root_squash,no_subtree_check)' /etc/exports
systemctl restart nfs-kernel-server
systemctl enable nfs-kernel-server
#cinder package
(echo 'y')|apt install cinder-volume
#/etc/cinder/cinder.conf
#[database]
sed -i "15s/^connection\s.*/connection = mysql+pymysql:\/\/cinder:$passwd@controller\/cinder/" /etc/cinder/cinder.conf
head -n 15 /etc/cinder/cinder.conf | tail -n 1
#[DEFAULT]
sed -i "12s/^enabled_backends\s.*/enabled_backends = nfs/" /etc/cinder/cinder.conf
head -n 12 /etc/cinder/cinder.conf | tail -n 1
sed -i "13i transport_url = rabbit://openstack:$passwd@controller" /etc/cinder/cinder.conf
head -n 13 /etc/cinder/cinder.conf | tail -n 1
sed -i "14i my_ip=$my_ip" /etc/cinder/cinder.conf
head -n 14 /etc/cinder/cinder.conf | tail -n 1
sed -i "15i glance_api_servers = http://controller:9292" /etc/cinder/cinder.conf
head -n 15 /etc/cinder/cinder.conf | tail -n 1
#[keystone_authtoken]
sed -i '$a\ ' /etc/cinder/cinder.conf
sed -i '$a\[keystone_authtoken]' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\www_authenticate_uri = http://controller:5000' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\auth_url = http://controller:5000' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\memcached_servers = controller:11211' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\auth_type = password' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\project_domain_id = default' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\user_domain_id = default' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\project_name = service' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\username = cinder' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i "\$a\password = $passwd" /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
#[oslo_concurrency]
sed -i '$a\ ' /etc/cinder/cinder.conf
sed -i '$a\[oslo_concurrency]' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
sed -i '$a\lock_path = /var/lib/cinder/tmp' /etc/cinder/cinder.conf
tail -n 1 /etc/cinder/cinder.conf
#创建挂载目录
mkdir /var/lib/cinder/mnt -p
chown -R cinder. /var/lib/cinder/mnt
#创建nfs_shares
echo "$my_ip:/vol/cinder" >> /etc/cinder/nfs_shares
chmod 640 /etc/cinder/nfs_shares
chgrp cinder /etc/cinder/nfs_shares
#[nfs]
sed -i '$a\ ' /etc/cinder/cinder.conf
sed -i '$a\[nfs]' /etc/cinder/cinder.conf
sed -i '$a\volume_driver = cinder.volume.drivers.nfs.NfsDriver' /etc/cinder/cinder.conf
sed -i '$a\nfs_shares_config = /etc/cinder/nfs_shares' /etc/cinder/cinder.conf
sed -i '$a\nfs_mount_point_base = $state_path/mnt' /etc/cinder/cinder.conf
sed -i '$a\volume_backend_name = nfs' /etc/cinder/cinder.conf
#nfs_snapshot_support = True
#nas_secure_file_operations = False
#nas_secure_file_permissions = False
sed -i '$a\nfs_snapshot_support = True' /etc/cinder/cinder.conf
sed -i '$a\nas_secure_file_operations = False' /etc/cinder/cinder.conf
sed -i '$a\nas_secure_file_permissions = False' /etc/cinder/cinder.conf
/etc/init.d/tgt restart
/etc/init.d/cinder-volume restart
}
install_cinder
Cinder Installation Guide