Glance 鏡像服務羣集

#Glance 鏡像服務羣集html

openstack pike 部署 目錄彙總 http://www.cnblogs.com/elvi/p/7613861.html#4.Glance 鏡像服務羣集python

##4.Glance 鏡像服務羣集

###############如下在controller1節點執行

#Glance羣集須要使用共享存儲,用來存儲鏡像文件,這裏以NFS爲例
#先在controller1節點配置,而後拷貝配置到其它節點controller2,controller3
#建立Glance數據庫、用戶、認證,前面已設置

# keystone上服務註冊 ,建立glance服務實體,API端點(公有、私有、admin)
source ./admin-openstack.sh || { echo "加載前面設置的admin-openstack.sh環境變量腳本";exit; }
openstack service create --name glance --description "OpenStack Image" image
openstack endpoint create --region RegionOne image public http://controller:9292
openstack endpoint create --region RegionOne image internal http://controller:9292
openstack endpoint create --region RegionOne image admin http://controller:9292

# Glance 安裝
yum install -y openstack-glance python-glance
#配置
cp /etc/glance/glance-api.conf{,.bak}
cp /etc/glance/glance-registry.conf{,.bak}
# images默認/var/lib/glance/images/
Imgdir=/date/glance
mkdir -p $Imgdir
chown glance:nobody $Imgdir
echo "鏡像目錄: $Imgdir"
echo "#
[DEFAULT]
debug = False
verbose = True
bind_host = controller1
bind_port = 9292
auth_region = RegionOne
registry_client_protocol = http
[database]
connection = mysql+pymysql://glance:glance@controller/glance
[keystone_authtoken]
auth_uri = http://controller:5000/v3
auth_url = http://controller:35357/v3
memcached_servers = controller1:11211,controller2:11211,controller3:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance
[paste_deploy]
flavor = keystone
[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = $Imgdir
[oslo_messaging_rabbit]
rabbit_userid =openstack
rabbit_password = openstack
rabbit_durable_queues=true
rabbit_ha_queues = True
rabbit_max_retries=0
rabbit_port = 5672  
rabbit_hosts = controller1:5672,controller2:5672,controller3:5672
#">/etc/glance/glance-api.conf
#
echo "#
[DEFAULT]
debug = False
verbose = True
bind_host = controller1
bind_port = 9191
workers = 2
[database]
connection = mysql+pymysql://glance:glance@controller/glance
[keystone_authtoken]
auth_uri = http://controller:5000/v3
auth_url = http://controller:35357/v3
memcached_servers = controller1:11211,controller2:11211,controller3:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance
[paste_deploy]
flavor = keystone
[oslo_messaging_rabbit]
rabbit_userid =openstack
rabbit_password = openstack
rabbit_durable_queues=true
rabbit_ha_queues = True
rabbit_max_retries=0
rabbit_port = 5672  
rabbit_hosts = controller1:5672,controller2:5672,controller3:5672
#">/etc/glance/glance-registry.conf

#同步數據庫,檢查數據庫
su -s /bin/sh -c "glance-manage db_sync" glance
mysql -h controller -u glance -pglance -e "use glance;show tables;"

#啓動服務並設置開機自啓動
systemctl enable openstack-glance-api openstack-glance-registry
systemctl restart openstack-glance-api openstack-glance-registry
sleep 3
netstat -antp|grep python2 #檢測服務端口
#netstat -antp|egrep '9292|9191' #檢測服務端口

#haproxy代理設置
echo '
#glance_api_cluster
listen glance_api_cluster
  bind controller:9292
  #balance  source
  option  tcpka
  option  httpchk
  option  tcplog
  server controller1 controller1:9292 check inter 2000 rise 2 fall 5
  server controller2 controller2:9292 check inter 2000 rise 2 fall 5
  server controller3 controller3:9292 check inter 2000 rise 2 fall 5
'>>/etc/haproxy/haproxy.cfg
systemctl restart haproxy.service
netstat -antp|grep haproxy

#鏡像測試,下載有時很慢
wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img #下載測試鏡像源
#使用qcow2磁盤格式,bare容器格式,上傳鏡像到鏡像服務並設置公共可見
source ./admin-openstack.sh
openstack image create "cirros" \
  --file cirros-0.3.5-x86_64-disk.img \
  --disk-format qcow2 --container-format bare \
  --public

#檢查是否上傳成功
openstack image list
ls $Imgdir
#刪除鏡像 glance image-delete 鏡像id


############### 配置其它節點controller二、controller3###############
#如下操做一樣是在controller1執行

############
#把controller1節點的glance鏡像經過NFS共享給其它節點(僅測試環境使用)
#NFS 服務端 (centos7)
yum install nfs-utils rpcbind -y
echo "/date/glance 192.168.58.0/24(rw,no_root_squash,sync)">>/etc/exports
exportfs -r
systemctl enable rpcbind nfs-server
systemctl start rpcbind nfs-server
showmount -e localhost

#controller二、controller3 做爲 NFS客戶端
ssh controller2 "systemctl enable rpcbind;systemctl start rpcbind"
ssh controller2 "mkdir -p /date/glance;mount -t nfs controller1:/date/glance /date/glance"
ssh controller2 'echo "/usr/bin/mount -t nfs controller1:/date/glance /date/glance">>/etc/rc.local;chmod +x /etc/rc.d/rc.local;df -h'

ssh controller3 "systemctl enable rpcbind;systemctl start rpcbind"
ssh controller3 "mkdir -p /date/glance;mount -t nfs controller1:/date/glance /date/glance"
ssh controller3 'echo "/usr/bin/mount -t nfs controller1:/date/glance /date/glance">>/etc/rc.local;chmod +x /etc/rc.d/rc.local;df -h'
############

# Glance 安裝
ssh controller2 "yum install -y openstack-glance python-glance"
ssh controller3 "yum install -y openstack-glance python-glance"

#同步controller1配置到其它節點(用scp會改變屬性)
rsync -avzP -e 'ssh -p 22' /etc/glance/* controller2:/etc/glance/
rsync -avzP -e 'ssh -p 22' /etc/glance/* controller3:/etc/glance/
rsync -avzP -e 'ssh -p 22' /etc/haproxy/haproxy.cfg controller2:/etc/haproxy/
rsync -avzP -e 'ssh -p 22' /etc/haproxy/haproxy.cfg controller3:/etc/haproxy/mysql

#更改配置
ssh controller2 "sed -i '1,10s/controller1/controller2/' /etc/glance/glance-api.conf /etc/glance/glance-registry.conf"
ssh controller3 "sed -i '1,10s/controller1/controller3/' /etc/glance/glance-api.conf /etc/glance/glance-registry.conf"sql

#啓動服
ssh controller2 "systemctl enable openstack-glance-api openstack-glance-registry"
ssh controller2 "systemctl restart openstack-glance-api openstack-glance-registry haproxy.service;"
ssh controller3 "systemctl enable openstack-glance-api openstack-glance-registry"
ssh controller3 "systemctl restart openstack-glance-api openstack-glance-registry haproxy.service;"數據庫

相關文章
相關標籤/搜索