日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OPENSTACK

發布時間:2024/3/12 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OPENSTACK 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

OPENSTACK

    • 基礎環境
    • controller節點
      • ceph安裝
      • 基本軟件
      • keystone
      • glance
      • placement
      • nova-controller
      • nova_compute
      • neutron_controller
      • neutron_network
      • neutron_compute
      • horizon
      • cinder_controller
      • cinder_storage
    • compute節點
      • ceph安裝
      • yum源
      • nova_compute
      • neutron_compute
      • cinder_storage
    • 熱遷移

本次部署是基于openstack train+ceph,前前后后,各種重復實驗大概一個月時間,預見各種坑。部署思路基于兩臺服務器,首先部署controller節點,在通過新增計算節點方式進行。
vware準備兩臺cenots7,不在累述前期安裝過程,基礎參數如下:

網絡環境:gateway:192.168.200.2gateway:192.168.100.2controller:ens33:192.168.200.200 管理網絡ens34:192.168.100.100 外部網絡compute:ens33:192.168.200.201 管理網絡ens34:192.168.100.101 外部網絡磁盤環境:controller+compute:均為/dev/sda4默認密碼:所有密碼均為:000000

基礎環境

  • 基本工具
yum install -y expect lrzsz tree vim wget bash-completion bash-completion-extras
  • ip轉發
echo 'net.ipv4.ip_forward=1 ' >>/etc/sysctl.conf echo 'net.ipv4.tcp_tw_recycle=1 ' >>/etc/sysctl.conf echo 'net.ipv4.tcp_tw_reuse=1 ' >>/etc/sysctl.conf sysctl -p
  • 域名配置
hostnamectl set-hostname controller hostnamectl set-hostname compute
  • hosts配置
sed -i "$ a 192.168.200.200 controller" /etc/hosts sed -i "$ a 192.168.200.201 compute" /etc/hosts
  • dns配置
sed -i "$ a nameserver 192.168.100.2" /etc/resolv.conf sed -i "$ a nameserver 114.114.114.114" /etc/resolv.conf
  • 關閉防火墻、selinux、NetworkManager
systemctl disable NetworkManager Firewalld systemctl stop NetworkManager Firewalldsed -i '/^SELINUX/s/enforcing/disabled/' /etc/selinux/config
  • 時間同步
/etc/chrony.conf controller:server ntp.aliyun.com iburstallow 192.168.200.0/24local stratum 10 compute:server controller iburst
  • 密鑰分發
ssh-keygen ssh-copy-id root@controller ssh-copy-id root@compute
  • yum源
sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

controller節點

ceph安裝

  • yum源
[Ceph] name=Ceph packages for $basearch baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/$basearch enabled=1 gpgcheck=0 type=rpm-md gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc priority=1 [Ceph-noarch] name=Ceph noarch packages baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch enabled=1 gpgcheck=0 type=rpm-md gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc priority=1 [ceph-source] name=Ceph source packages baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS enabled=1 gpgcheck=0 type=rpm-md gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc priority=1
  • 開始安裝
yum install -y ceph-deploy python-setuptools mkdir ./cluster && cd ./cluster yum install -y ceph #等于ceph-deploy install controller ceph-deploy new controller ceph-deploy mon create-initial ceph-deploy admin controller ceph-deploy mgr create controller ceph-deploy osd create --data /dev/sda4 controller

基本軟件

  • train源
yum install centos-release-openstack-train -y yum install openstack-utils -y yum install python-openstackclient -y
  • mysql安裝
yum install mariadb mariadb-server python2-PyMySQL -y cat > /etc/my.cnf.d/openstack.cnf <<- EOF [mysqld] bind-address = 192.168.200.200 default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8 EOFsystemctl enable mariadb.service systemctl start mariadb.serviceexpect <<-EOF &> /etc/null spawn mysql_secure_installation expect "*none*" { send "\n"; } expect "*Y/n*" { send "n\n"; } expect "*Y/n*" { send "y\n"; } expect "*Y/n*" { send "y\n"; } expect "*Y/n*" { send "y\n"; } expect "*Y/n*" { send "y\n"; } expect eof EOF
  • rabbitmq安裝
yum install rabbitmq-server -ysystemctl enable rabbitmq-server.service systemctl start rabbitmq-server.servicerabbitmqctl add_user openstack 000000 rabbitmqctl set_permissions openstack ".*" ".*" ".*"
  • memcached安裝
yum install memcached python-memcached -ysed -i '/OPTIONS/c\OPTIONS="-l 192.168.200.200"' /etc/sysconfig/memcachedsystemctl enable memcached.service systemctl start memcached.service
  • etcd安裝
yum install etcd -ycp /etc/etcd/etcd.conf{,.bak} cat > /etc/etcd/etcd.conf <<- EOF #[Member] ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_PEER_URLS="http://192.168.200.200:2380" ETCD_LISTEN_CLIENT_URLS="http://192.168.200.200:2379" ETCD_NAME="controller" #[Clustering] ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.200.200:2380" ETCD_ADVERTISE_CLIENT_URLS="http://192.168.200.200:2379" ETCD_INITIAL_CLUSTER="controller=http://192.168.200.200:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01" ETCD_INITIAL_CLUSTER_STATE="new" EOFsystemctl enable etcd systemctl start etcd

keystone

yum install openstack-keystone httpd mod_wsgi -ymysql -uroot -e "CREATE DATABASE keystone;GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '000000';GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '000000';"cp -a /etc/keystone/keystone.conf{,.bak} grep -Ev "^$|#" /etc/keystone/keystone.conf.bak > /etc/keystone/keystone.conf openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:$KEYSTONE_DBPASS@$IPADDR/keystone openstack-config --set /etc/keystone/keystone.conf token provider fernetsu -s /bin/sh -c "keystone-manage db_sync" keystonekeystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone keystone-manage bootstrap --bootstrap-password 000000 \--bootstrap-admin-url http://192.168.200.200:5000/v3/ \--bootstrap-internal-url http://192.168.200.200:5000/v3/ \--bootstrap-public-url http://192.168.200.200:5000/v3/ \--bootstrap-region-id RegionOnecp /etc/httpd/conf/httpd.conf{,.bak} sed -i "s/#ServerName www.example.com:80/ServerName controller/" /etc/httpd/conf/httpd.conf ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/systemctl enable httpd.service systemctl start httpd.servicesed -i "$ a export OS_USERNAME=admin" /root/.bashrc sed -i "$ a export OS_PASSWORD=000000" /root/.bashrc sed -i "$ a export OS_PROJECT_NAME=admin" /root/.bashrc sed -i "$ a export OS_USER_DOMAIN_NAME=Default" /root/.bashrc sed -i "$ a export OS_PROJECT_DOMAIN_NAME=Default" /root/.bashrc sed -i "$ a export OS_AUTH_URL=http://192.168.200.200:5000/v3" /root/.bashrc sed -i "$ a export OS_IDENTITY_API_VERSION=3" /root/.bashrc source ~/.bashrc openstack project create --domain default --description "Service Project" service

glance

yum install openstack-glance -ymysql -uroot -e "CREATE DATABASE glance;GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY '000000';GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '000000';"openstack user create --domain default --password 000000 glance &> /etc/null openstack role add --project service --user glance admin &> /etc/nullopenstack service create --name glance --description "OpenStack Image" imageopenstack endpoint create --region RegionOne image public http://192.168.200.200:9292 openstack endpoint create --region RegionOne image internal http://192.168.200.200:9292 openstack endpoint create --region RegionOne image admin http://192.168.200.200:9292cp -a /etc/glance/glance-api.conf{,.bak} cp -a /etc/glance/glance-registry.conf{,.bak} grep -Ev '^$|#' /etc/glance/glance-api.conf.bak > /etc/glance/glance-api.conf grep -Ev '^$|#' /etc/glance/glance-registry.conf.bak > /etc/glance/glance-registry.conf openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:000000@192.168.200.200/glance openstack-config --set /etc/glance/glance-api.conf keystone_authtoken www_authenticate_uri http://192.168.200.200:5000 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://192.168.200.200:5000 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers 192.168.200.200:11211 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_type password openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name services openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password 000000 openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystoneceph osd pool create images 64 64 ceph osd pool application enable images rbd ceph osd pool set images size 1 ceph auth get-or-create client.glance mon 'allow r' osd "images" -o /etc/ceph/ceph.client.glance.keyring chgrp glance /etc/ceph/ceph.client.glance.keyring sed -i "$ a client.glance" /etc/ceph/ceph.conf sed -i "$ a keyring = /etc/ceph/ceph.client.glance.keyring" /etc/ceph/ceph.confopenstack-config --set /etc/glance/glance-api.conf glance_store stores rbd openstack-config --set /etc/glance/glance-api.conf glance_store default_store rbd openstack-config --set /etc/glance/glance-api.conf glance_store rbd_store_pool images openstack-config --set /etc/glance/glance-api.conf glance_store rbd_store_user glance openstack-config --set /etc/glance/glance-api.conf glance_store rbd_store_ceph_conf /etc/ceph/ceph.confsu -s /bin/sh -c "glance-manage db_sync" glancesystemctl enable openstack-glance-api.service systemctl start openstack-glance-api.service

placement

yum install openstack-placement-api -ymysql -uroot -e "CREATE DATABASE placement;GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY '000000';GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY '000000';"openstack user create --domain default --password 000000 placement &> /etc/null openstack role add --project service --user placement admin &> /etc/nullopenstack service create --name placement --description "Placement API" placementopenstack endpoint create --region RegionOne placement public http://192.168.200.200:8778 openstack endpoint create --region RegionOne placement internal http://192.168.200.200:8778 openstack endpoint create --region RegionOne placement admin http://192.168.200.200:8778cp -a /etc/glance/glance-api.conf{,.bak} cp -a /etc/glance/glance-registry.conf{,.bak} grep -Ev '^$|#' /etc/glance/glance-api.conf.bak > /etc/glance/glance-api.conf grep -Ev '^$|#' /etc/glance/glance-registry.conf.bak > /etc/glance/glance-registry.conf openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:000000@192.168.200.200/glance openstack-config --set /etc/glance/glance-api.conf keystone_authtoken www_authenticate_uri http://192.168.200.200:5000 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://192.168.200.200:5000 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers 192.168.200.200:11211 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_type password openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name services openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password 000000 openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystoneceph osd pool create images 64 64 ceph osd pool application enable images rbd ceph osd pool set images size 1 ceph auth get-or-create client.glance mon 'allow r' osd "allow rwx pool=images" -o /etc/ceph/ceph.client.glance.keyring chgrp glance /etc/ceph/ceph.client.glance.keyring sed -i "$ a client.glance" /etc/ceph/ceph.conf sed -i "$ a keyring = /etc/ceph/ceph.client.glance.keyring" /etc/ceph/ceph.confopenstack-config --set /etc/glance/glance-api.conf glance_store stores rbd openstack-config --set /etc/glance/glance-api.conf glance_store default_store rbd openstack-config --set /etc/glance/glance-api.conf glance_store rbd_store_pool images openstack-config --set /etc/glance/glance-api.conf glance_store rbd_store_user glance openstack-config --set /etc/glance/glance-api.conf glance_store rbd_store_ceph_conf /etc/ceph/ceph.confsu -s /bin/sh -c "glance-manage db_sync" glancesystemctl enable openstack-glance-api.service systemctl start openstack-glance-api.service

nova-controller

yum install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler -ymysql -uroot -e "CREATE DATABASE nova_api;GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '000000';GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY '000000';" mysql -uroot -e "CREATE DATABASE nova;GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY '000000';GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '000000';" mysql -uroot -e "CREATE DATABASE nova_cell0;GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY '000000';GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY '000000';"openstack user create --domain default --password 000000 nova openstack role add --project service --user nova adminopenstack service create --name nova --description "OpenStack Compute" computeopenstack endpoint create --region RegionOne compute public http://192.168.200.200:8774/v2.1 openstack endpoint create --region RegionOne compute internal http://192.168.200.200:8774/v2.1 openstack endpoint create --region RegionOne compute admin http://192.168.200.200:8774/v2.1cp -a /etc/nova/nova.conf{,.bak} grep -Ev '^$|#' /etc/nova/nova.conf.bak > /etc/nova/nova.confopenstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.200.200 openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron true openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver openstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:000000@192.168.200.200:5672/ openstack-config --set /etc/nova/nova.conf api_database connection mysql+pymysql://nova:000000@192.168.200.200/nova_api openstack-config --set /etc/nova/nova.conf database connection mysql+pymysql://nova:000000@192.168.200.200/nova openstack-config --set /etc/nova/nova.conf placement_database connection mysql+pymysql://placement:000000@192.168.200.200/placement openstack-config --set /etc/nova/nova.conf api auth_strategy keystone \openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://192.168.200.200:5000/ openstack-config --set /etc/nova/nova.conf keystone_authtoken www_authenticate_uri http://192.168.200.200:5000/ openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers 192.168.200.200:11211 openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name services openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova openstack-config --set /etc/nova/nova.conf keystone_authtoken password 000000 openstack-config --set /etc/nova/nova.conf vnc enabled true openstack-config --set /etc/nova/nova.conf vnc server_listen 0.0.0.0 openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address '$my_ip' openstack-config --set /etc/nova/nova.conf glance api_servers http://192.168.200.200:9292/ openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp openstack-config --set /etc/nova/nova.conf placement region_name RegionOne openstack-config --set /etc/nova/nova.conf placement project_domain_name Default openstack-config --set /etc/nova/nova.conf placement project_name services openstack-config --set /etc/nova/nova.conf placement auth_type password openstack-config --set /etc/nova/nova.conf placement user_domain_name Default openstack-config --set /etc/nova/nova.conf placement auth_url http://192.168.200.200:5000/ openstack-config --set /etc/nova/nova.conf placement username placement openstack-config --set /etc/nova/nova.conf placement password 000000 openstack-config --set /etc/nova/nova.conf scheduler discover_hosts_in_cells_interval 300su -s /bin/sh -c "nova-manage api_db sync" nova su -s /bin/sh -c "nova-manage cell_v2 map_cell0" su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova su -s /bin/sh -c "nova-manage db sync"systemctl enable openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service systemctl start openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

nova_compute

yum install openstack-nova-compute -yopenstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.200.200 openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron true openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver openstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:000000@192.168.200.200:5672/ openstack-config --set /etc/nova/nova.conf DEFAULT allow_resize_to_same_host True openstack-config --set /etc/nova/nova.conf DEFAULT force_raw_images True openstack-config --set /etc/nova/nova.conf DEFAULT volume_api_class nova.volume.cinder.API openstack-config --set /etc/nova/nova.conf api auth_strategy keystone openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://192.168.200.200:5000/ openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers 192.168.200.200:11211 openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name services openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova openstack-config --set /etc/nova/nova.conf keystone_authtoken password 000000 openstack-config --set /etc/nova/nova.conf vnc enabled true openstack-config --set /etc/nova/nova.conf vnc server_listen 0.0.0.0 openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address '$my_ip' openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://192.168.200.200:6080/vnc_auto.html openstack-config --set /etc/nova/nova.conf glance api_servers http://192.168.200.200:9292/ openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp openstack-config --set /etc/nova/nova.conf placement region_name RegionOne openstack-config --set /etc/nova/nova.conf placement project_domain_name Default openstack-config --set /etc/nova/nova.conf placement project_name services openstack-config --set /etc/nova/nova.conf placement auth_type password openstack-config --set /etc/nova/nova.conf placement user_domain_name Default openstack-config --set /etc/nova/nova.conf placement auth_url http://192.168.200.200:5000/ openstack-config --set /etc/nova/nova.conf placement username placement openstack-config --set /etc/nova/nova.conf placement password 000000 openstack-config --set /etc/nova/nova.conf libvirt virt_type kvm openstack-config --set /etc/nova/nova.conf libvirt live_migration_scheme ssh openstack-config --set /etc/nova/nova.conf libvirt live_migration_inbound_addr 192.168.200.200ceph osd pool create vms 64 64 ceph osd pool application enable vms rbd ceph osd pool set vms size 1 ceph auth get-or-create client.nova mon 'allow r' osd "allow rwx pool=volumes, allow rwx pool=vms, allow rwx pool=images" -o /etc/ceph/ceph.client.nova.keyring chgrp glance /etc/ceph/ceph.client.nova.keyring sed -i "$ a client.nova" /etc/ceph/ceph.conf sed -i "$ a keyring = /etc/ceph/ceph.client.nova.keyring" /etc/ceph/ceph.confcat >> /etc/ceph/secret-client.nova.xml <<EOF <secret ephemeral='no' private='no'> <uuid>$(cat /etc/ceph/uuid-client.nova)</uuid> <usage type='ceph'> <name>client.nova secret</name> </usage> </secret> EOF virsh secret-define --file /etc/ceph/secret-client.nova.xml ceph auth get-key client.nova -o /etc/ceph/client.nova.key virsh secret-set-value --secret $(cat /etc/ceph/uuid-client.nova) --base64 $(cat /etc/ceph/client.nova.key)openstack-config --set /etc/nova/nova.conf DEFAULT force_raw_images True openstack-config --set /etc/nova/nova.conf libvirt disk_cachemodes "\"network=writeback\"" openstack-config --set /etc/nova/nova.conf libvirt images_type rbd openstack-config --set /etc/nova/nova.conf libvirt images_rbd_pool vms openstack-config --set /etc/nova/nova.conf libvirt images_rbd_ceph_conf /etc/ceph/ceph.conf openstack-config --set /etc/nova/nova.conf libvirt rbd_user nova openstack-config --set /etc/nova/nova.conf libvirt rbd_secret_uuid $(cat /etc/ceph/uuid-client.nova)systemctl enable libvirtd.service openstack-nova-compute.service systemctl start libvirtd.service openstack-nova-compute.service

neutron_controller

yum install openstack-neutron openstack-neutron-ml2 ebtables -ymysql -uroot -e "CREATE DATABASE neutron;GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY '000000';GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY '000000';"openstack user create --domain default --password 000000 neutron openstack role add --project service --user neutron adminopenstack service create --name neutron --description "OpenStack Networking" networkopenstack endpoint create --region RegionOne network public http://192.168.200.200:9696 openstack endpoint create --region RegionOne network internal http://192.168.200.200:9696 openstack endpoint create --region RegionOne network admin http://192.168.200.200:9696cp -a /etc/neutron/neutron.conf{,.bak} grep -Ev '^$|#' /etc/neutron/neutron.conf.bak > /etc/neutron/neutron.conf openstack-config --set /etc/neutron/neutron.conf database connection mysql+pymysql://neutron:000000@192.168.200.200/neutron openstack-config --set /etc/neutron/neutron.conf DEFAULT core_plugin ml2 openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone openstack-config --set /etc/neutron/neutron.conf DEFAULT service_plugins router openstack-config --set /etc/neutron/neutron.conf DEFAULT transport_url rabbit://openstack:000000@192.168.200.200:5672/ openstack-config --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_status_changes true openstack-config --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_data_changes true openstack-config --set /etc/neutron/neutron.conf DEFAULT allow_overlapping_ips true openstack-config --set /etc/neutron/neutron.conf DEFAULT my_ip 192.168.200.200 openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_url http://192.168.200.200:5000/ openstack-config --set /etc/neutron/neutron.conf keystone_authtoken www_authenticate_uri http://192.168.200.200:5000/ openstack-config --set /etc/neutron/neutron.conf keystone_authtoken memcached_servers 192.168.200.200:11211 openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_type password openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/neutron/neutron.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_name services openstack-config --set /etc/neutron/neutron.conf keystone_authtoken username neutron openstack-config --set /etc/neutron/neutron.conf keystone_authtoken password 000000 openstack-config --set /etc/neutron/neutron.conf vnc enabled true openstack-config --set /etc/neutron/neutron.conf vnc server_listen 0.0.0.0 openstack-config --set /etc/neutron/neutron.conf vnc server_proxyclient_address '$my_ip' openstack-config --set /etc/neutron/neutron.conf nova auth_url http://192.168.200.200:5000/ openstack-config --set /etc/neutron/neutron.conf nova auth_type password openstack-config --set /etc/neutron/neutron.conf nova project_domain_name Default openstack-config --set /etc/neutron/neutron.conf nova user_domain_name Default openstack-config --set /etc/neutron/neutron.conf nova region_name RegionOne openstack-config --set /etc/neutron/neutron.conf nova project_name services openstack-config --set /etc/neutron/neutron.conf nova username neutron openstack-config --set /etc/neutron/neutron.conf nova password 000000 openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmpopenstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers flat,vxlan openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types flat,vxlan openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers openvswitch,l2population openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 extension_drivers port_security openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks extnet openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_vxlan vni_ranges 1:1000 openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_ipset trueopenstack-config --set /etc/nova/nova.conf neutron url http://192.168.200.200:9696 openstack-config --set /etc/nova/nova.conf neutron auth_url http://192.168.200.200:5000/v3/ openstack-config --set /etc/nova/nova.conf neutron memcached_servers 192.168.200.200:11211 openstack-config --set /etc/nova/nova.conf neutron auth_type v3password openstack-config --set /etc/nova/nova.conf neutron project_domain_name Default openstack-config --set /etc/nova/nova.conf neutron user_domain_name Default openstack-config --set /etc/nova/nova.conf neutron region_name RegionOne openstack-config --set /etc/nova/nova.conf neutron project_name services openstack-config --set /etc/nova/nova.conf neutron username neutron openstack-config --set /etc/nova/nova.conf neutron password 000000 openstack-config --set /etc/nova/nova.conf neutron service_metadata_proxy true openstack-config --set /etc/nova/nova.conf neutron metadata_proxy_shared_secret 000000ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.inisu -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutronsystemctl enable neutron-server.service systemctl start neutron-server.service

neutron_network

yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch ebtables -yopenstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone openstack-config --set /etc/neutron/neutron.conf DEFAULT transport_url rabbit://openstack:000000@192.168.200.200:5672/ openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_url http://192.168.200.200:5000/v3/ openstack-config --set /etc/neutron/neutron.conf keystone_authtoken www_authenticate_uri http://192.168.200.200:5000/v3/ openstack-config --set /etc/neutron/neutron.conf keystone_authtoken memcached_servers 192.168.200.200:11211 openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_type password openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/neutron/neutron.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_name services openstack-config --set /etc/neutron/neutron.conf keystone_authtoken username neutron openstack-config --set /etc/neutron/neutron.conf keystone_authtoken password 000000 openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmp openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT dhcp_driver neutron.agent.linux.dhcp.Dnsmasq openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT enable_isolated_metadata true openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT interface_driver openvswitch openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT force_metadata trueopenstack-config --set /etc/neutron/metadata_agent.ini DEFAULT nova_metadata_host 192.168.200.200 openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT metadata_proxy_shared_secret 000000openstack-config --set /etc/neutron/l3_agent.ini DEFAULT interface_driver openvswitchsystemctl enable neutron-openvswitch-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service systemctl start neutron-openvswitch-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service

neutron_compute

yum install neutron-openvswitch-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service -yopenstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone openstack-config --set /etc/neutron/neutron.conf DEFAULT transport_url rabbit://openstack:000000@192.168.200.200:5672/ openstack-config --set /etc/neutron/neutron.conf DEFAULT allow_resize_to_same_host True openstack-config --set /etc/neutron/neutron.conf DEFAULT allow_migrate_to_same_hostTrue openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_url http://192.168.200.200:5000/ openstack-config --set /etc/neutron/neutron.conf keystone_authtoken www_authenticate_uri http://192.168.200.200:5000/ openstack-config --set /etc/neutron/neutron.conf keystone_authtoken memcached_servers 192.168.200.200:11211 openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_type password openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/neutron/neutron.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_name services openstack-config --set /etc/neutron/neutron.conf keystone_authtoken username neutron openstack-config --set /etc/neutron/neutron.conf keystone_authtoken password 000000 openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmp openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini linux_openvswitch physical_interface_mappings extnet:ens33 openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini agent tunnel_types vxlan openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini agent l2_population true openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini ovs bridge_mappings extnet:br-ex openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini ovs local_ip 192.168.200.200 openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini securitygroup enable_security_group true openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini securitygroup firewall_driver iptables_hybridopenstack-config --set /etc/nova/nova.conf neutron auth_url http://192.168.200.200:5000/v3/ openstack-config --set /etc/nova/nova.conf neutron auth_type v3password openstack-config --set /etc/nova/nova.conf neutron project_domain_name Default openstack-config --set /etc/nova/nova.conf neutron user_domain_name Default openstack-config --set /etc/nova/nova.conf neutron region_name RegionOne openstack-config --set /etc/nova/nova.conf neutron project_name services openstack-config --set /etc/nova/nova.conf neutron username neutron openstack-config --set /etc/nova/nova.conf neutron password 000000systemctl enable neutron-openvswitch-agent.service systemctl start neutron-openvswitch-agent.serviceovs-vsctl add-br br-ex ovs-vsctl add-port br-ex ens33 echo "TYPE=Ethernet" >> /etc/sysconfig/network-scripts/ifcfg-ens33 echo "BOOTPROTO=none" >> /etc/sysconfig/network-scripts/ifcfg-ens33 echo "NAME=ens33" >> /etc/sysconfig/network-scripts/ifcfg-ens33 echo "DEVICE=ens33" >> /etc/sysconfig/network-scripts/ifcfg-ens33 echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-ens33rm -f /etc/sysconfig/network-scripts/ifcfg-br-ex echo "TYPE=Ethernet" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "BOOTPROTO=none" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "NAME=br-ex" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "DEVICE=br-ex" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "IPADDR=192.168.100.100" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "PREFIX=24" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "GATEWAY=192.168.100.2" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "DEFROUTE=yes" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-br-ex service network restart

horizon

yum install openstack-dashboard -yrm -f /etc/openstack-dashboard/local_settingsopenssl rand -hex 10 52141c41dc456eadb871echo >> /etc/openstack-dashboard/local_settings <<- EOF # -*- coding: utf-8 -*-import os from django.utils.translation import ugettext_lazy as _ from openstack_dashboard.settings import HORIZON_CONFIG DEBUG = False ALLOWED_HOSTS = ['*'] LOCAL_PATH = '/tmp' SECRET_KEY='52141c41dc456eadb871' SESSION_ENGINE = 'django.contrib.sessions.backends.cache' CACHES = {'default': {'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache','LOCATION': 'controller:11211',} } EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' OPENSTACK_HOST = "controller" OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True OPENSTACK_API_VERSIONS = {"identity": 3,"image": 2,"volume": 3, } OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default" OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user" OPENSTACK_NEUTRON_NETWORK = {'enable_auto_allocated_network': False,'enable_distributed_router': False,'enable_fip_topology_check': False,'enable_ha_router': False,'enable_lb': False,'enable_firewall': False,'enable_vpn': False,'enable_ipv6': False,'enable_quotas': False,'enable_rbac_policy': False,'enable_router': True,'default_dns_nameservers': [],'supported_provider_types': ['*'],'segmentation_id_range': {},'extra_provider_types': {},'supported_vnic_types': ['*'],'physical_networks': [], } TIME_ZONE = "Asia/Shanghai" LOGGING = {'version': 1,'disable_existing_loggers': False,'formatters': {'console': {'format': '%(levelname)s %(name)s %(message)s'},'operation': {'format': '%(message)s'},},'handlers': {'null': {'level': 'DEBUG','class': 'logging.NullHandler',},'console': {'level': 'DEBUG' if DEBUG else 'INFO','class': 'logging.StreamHandler','formatter': 'console',},'operation': {'level': 'INFO','class': 'logging.StreamHandler','formatter': 'operation',},},'loggers': {'horizon': {'handlers': ['console'],'level': 'DEBUG','propagate': False,},'horizon.operation_log': {'handlers': ['operation'],'level': 'INFO','propagate': False,},'openstack_dashboard': {'handlers': ['console'],'level': 'DEBUG','propagate': False,},'novaclient': {'handlers': ['console'],'level': 'DEBUG','propagate': False,},'cinderclient': {'handlers': ['console'],'level': 'DEBUG','propagate': False,},'keystoneauth': {'handlers': ['console'],'level': 'DEBUG','propagate': False,},'keystoneclient': {'handlers': ['console'],'level': 'DEBUG','propagate': False,},'glanceclient': {'handlers': ['console'],'level': 'DEBUG','propagate': False,},'neutronclient': {'handlers': ['console'],'level': 'DEBUG','propagate': False,},'swiftclient': {'handlers': ['console'],'level': 'DEBUG','propagate': False,},'oslo_policy': {'handlers': ['console'],'level': 'DEBUG','propagate': False,},'openstack_auth': {'handlers': ['console'],'level': 'DEBUG','propagate': False,},'django': {'handlers': ['console'],'level': 'DEBUG','propagate': False,},'django.db.backends': {'handlers': ['null'],'propagate': False,},'requests': {'handlers': ['null'],'propagate': False,},'urllib3': {'handlers': ['null'],'propagate': False,},'chardet.charsetprober': {'handlers': ['null'],'propagate': False,},'iso8601': {'handlers': ['null'],'propagate': False,},'scss': {'handlers': ['null'],'propagate': False,},}, } SECURITY_GROUP_RULES = {'all_tcp': {'name': _('All TCP'),'ip_protocol': 'tcp','from_port': '1','to_port': '65535',},'all_udp': {'name': _('All UDP'),'ip_protocol': 'udp','from_port': '1','to_port': '65535',},'all_icmp': {'name': _('All ICMP'),'ip_protocol': 'icmp','from_port': '-1','to_port': '-1',},'ssh': {'name': 'SSH','ip_protocol': 'tcp','from_port': '22','to_port': '22',},'smtp': {'name': 'SMTP','ip_protocol': 'tcp','from_port': '25','to_port': '25',},'dns': {'name': 'DNS','ip_protocol': 'tcp','from_port': '53','to_port': '53',},'http': {'name': 'HTTP','ip_protocol': 'tcp','from_port': '80','to_port': '80',},'pop3': {'name': 'POP3','ip_protocol': 'tcp','from_port': '110','to_port': '110',},'imap': {'name': 'IMAP','ip_protocol': 'tcp','from_port': '143','to_port': '143',},'ldap': {'name': 'LDAP','ip_protocol': 'tcp','from_port': '389','to_port': '389',},'https': {'name': 'HTTPS','ip_protocol': 'tcp','from_port': '443','to_port': '443',},'smtps': {'name': 'SMTPS','ip_protocol': 'tcp','from_port': '465','to_port': '465',},'imaps': {'name': 'IMAPS','ip_protocol': 'tcp','from_port': '993','to_port': '993',},'pop3s': {'name': 'POP3S','ip_protocol': 'tcp','from_port': '995','to_port': '995',},'ms_sql': {'name': 'MS SQL','ip_protocol': 'tcp','from_port': '1433','to_port': '1433',},'mysql': {'name': 'MYSQL','ip_protocol': 'tcp','from_port': '3306','to_port': '3306',},'rdp': {'name': 'RDP','ip_protocol': 'tcp','from_port': '3389','to_port': '3389',}, } EOFpython /usr/share/openstack-dashboard/manage.py make_web_conf --apache > /etc/httpd/conf.d/openstack-dashboard.confln -s /etc/openstack-dashboard /usr/share/openstack-dashboard/openstack_dashboard/confchown -R apache:apache /usr/share/openstack-dashboard/systemctl restart httpd.service memcached.service

cinder_controller

yum install openstack-cinder -ymysql -uroot -e "CREATE DATABASE cinder;GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY '000000';GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY '000000';"openstack user create --domain default --password 000000 cinder openstack role add --project service --user cinder adminopenstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2 openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3openstack endpoint create --region RegionOne volumev2 public http://192.168.200.200:8776/v2/%\(project_id\)s openstack endpoint create --region RegionOne volumev2 internal http://192.168.200.200:8776/v2/%\(project_id\)s openstack endpoint create --region RegionOne volumev2 admin http://192.168.200.200:8776/v2/%\(project_id\)s openstack endpoint create --region RegionOne volumev3 public http://192.168.200.200:8776/v3/%\(project_id\)s openstack endpoint create --region RegionOne volumev3 internal http://192.168.200.200:8776/v3/%\(project_id\)s openstack endpoint create --region RegionOne volumev3 admin http://192.168.200.200:8776/v3/%\(project_id\)scp -a /etc/cinder/cinder.conf{,.bak} grep -Ev '^$|#' /etc/cinder/cinder.conf.bak > /etc/cinder/cinder.conf openstack-config --set /etc/cinder/cinder.conf database connection mysql+pymysql://cinder:000000@192.168.200.200/cinder openstack-config --set /etc/cinder/cinder.conf DEFAULT transport_url rabbit://openstack:000000@192.168.200.200:5672/ openstack-config --set /etc/cinder/cinder.conf DEFAULT auth_strategy keystone openstack-config --set /etc/cinder/cinder.conf DEFAULT storage_availability_zone nova openstack-config --set /etc/cinder/cinder.conf DEFAULT default_availability_zone nova openstack-config --set /etc/cinder/cinder.conf DEFAULT enable_v3_api True openstack-config --set /etc/cinder/cinder.conf DEFAULT my_ip 192.168.200.200 openstack-config --set /etc/cinder/cinder.conf keystone_authtoken www_authenticate_uri http://192.168.200.200:5000/v3/ openstack-config --set /etc/cinder/cinder.conf keystone_authtoken auth_url http://192.168.200.200:5000/v3/ openstack-config --set /etc/cinder/cinder.conf keystone_authtoken memcached_servers 192.168.200.200:11211 openstack-config --set /etc/cinder/cinder.conf keystone_authtoken auth_type password openstack-config --set /etc/cinder/cinder.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/cinder/cinder.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/cinder/cinder.conf keystone_authtoken project_name services openstack-config --set /etc/cinder/cinder.conf keystone_authtoken username cinder openstack-config --set /etc/cinder/cinder.conf keystone_authtoken password 000000 openstack-config --set /etc/cinder/cinder.conf oslo_concurrency lock_path /var/lib/cinder/tmpopenstack-config --set /etc/nova/nova.conf cinder os_region_name RegionOnesu -s /bin/sh -c "cinder-manage db sync" cindersystemctl enable openstack-nova-api.service openstack-cinder-api.service openstack-cinder-scheduler.service systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service

cinder_storage

openstack-config --set /etc/cinder/cinder.conf database connection mysql+pymysql://cinder:000000@192.168.200.200/cinder openstack-config --set /etc/cinder/cinder.conf DEFAULT auth_strategy keystone openstack-config --set /etc/cinder/cinder.conf DEFAULT my_ip 192.168.200.200 openstack-config --set /etc/cinder/cinder.conf DEFAULT transport_url rabbit://openstack:000000@192.168.200.200:5672/ openstack-config --set /etc/cinder/cinder.conf keystone_authtoken www_authenticate_uri http://192.168.200.200:5000/v3/ openstack-config --set /etc/cinder/cinder.conf keystone_authtoken auth_url http://192.168.200.200:5000/v3/ openstack-config --set /etc/cinder/cinder.conf keystone_authtoken memcached_servers 192.168.200.200:11211 openstack-config --set /etc/cinder/cinder.conf keystone_authtoken auth_type password openstack-config --set /etc/cinder/cinder.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/cinder/cinder.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/cinder/cinder.conf keystone_authtoken project_name services openstack-config --set /etc/cinder/cinder.conf keystone_authtoken username cinder openstack-config --set /etc/cinder/cinder.conf keystone_authtoken password 000000 openstack-config --set /etc/cinder/cinder.conf oslo_concurrency lock_path /var/lib/cinder/tmpceph osd pool create cinder 64 64 ceph osd pool application enable cinder rbd ceph osd pool set cinder size 1 ceph auth get-or-create client.nova mon 'allow r' osd "volumes" "client.cinder" "allow rwx pool=images, allow rwx pool=volumes" -o /etc/ceph/ceph.client.cinder.keyring chgrp glance /etc/ceph/ceph.client.cinder.keyring sed -i "$ a client.cinder" /etc/ceph/cinder.conf sed -i "$ a keyring = /etc/ceph/ceph.client.cinder.keyring" /etc/ceph/ceph.confcat >> /etc/ceph/secret-client.cinder.xml <<EOF <secret ephemeral='no' private='no'> <uuid>$(cat /etc/ceph/uuid-client.cinder)</uuid> <usage type='ceph'> <name>client.cinder secret</name> </usage> </secret> EOF virsh secret-define --file /etc/ceph/secret-client.cinder.xml ceph auth get-key client.cinder -o /etc/ceph/client.cinder.key virsh secret-set-value --secret $(cat /etc/ceph/uuid-client.cinder) --base64 $(cat /etc/ceph/client.cinder.key)openstack-config --set /etc/cinder/cinder.conf DEFAULT enabled_backends ceph openstack-config --set /etc/cinder/cinder.conf DEFAULT default_volume_type ceph openstack-config --set /etc/cinder/cinder.conf DEFAULT glance_api_servers http://192.168.200.200:9292 openstack-config --set /etc/cinder/cinder.conf ceph volume_driver cinder.volume.drivers.rbd.RBDDriver openstack-config --set /etc/cinder/cinder.conf ceph volume_backend_name ceph openstack-config --set /etc/cinder/cinder.conf ceph rbd_pool volumes openstack-config --set /etc/cinder/cinder.conf ceph rbd_ceph_conf /etc/ceph/ceph.conf openstack-config --set /etc/cinder/cinder.conf ceph rbd_flatten_volume_from_snapshot false openstack-config --set /etc/cinder/cinder.conf ceph rbd_max_clone_depth 5 openstack-config --set /etc/cinder/cinder.conf ceph rbd_store_chunk_size 4 openstack-config --set /etc/cinder/cinder.conf ceph rados_connect_timeout -1 openstack-config --set /etc/cinder/cinder.conf ceph glance_api_version 2 openstack-config --set /etc/cinder/cinder.conf ceph rbd_user cinder openstack-config --set /etc/cinder/cinder.conf ceph rbd_secret_uuid $(cat /etc/ceph/uuid-client.cinder)cinder type-create ceph cinder type-key ceph set volume_backend_name=cephsystemctl start openstack-cinder-volume.service systemctl enable openstack-cinder-volume.service

compute節點

ceph安裝

  • yum源
[Ceph] name=Ceph packages for $basearch baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/$basearch enabled=1 gpgcheck=0 type=rpm-md gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc priority=1 [Ceph-noarch] name=Ceph noarch packages baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch enabled=1 gpgcheck=0 type=rpm-md gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc priority=1 [ceph-source] name=Ceph source packages baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS enabled=1 gpgcheck=0 type=rpm-md gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc priority=1
  • 開始安裝
計算節點: yum install -y ceph 控制節點: cd ./cluster echo "public_network = 192.168.200.0/24" >> ceph.conf ceph-deploy osd create --data /dev/sda4 compute ceph-deploy admin compute

yum源

yum install centos-release-openstack-train -y yum install openstack-utils -y yum install python-openstackclient -y

nova_compute

yum install openstack-nova-compute -yopenstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.200.201 openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron true openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver openstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:000000@192.168.200.200:5672/ openstack-config --set /etc/nova/nova.conf DEFAULT allow_resize_to_same_host True openstack-config --set /etc/nova/nova.conf DEFAULT force_raw_images True openstack-config --set /etc/nova/nova.conf DEFAULT volume_api_class nova.volume.cinder.API openstack-config --set /etc/nova/nova.conf api auth_strategy keystone openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://192.168.200.200:5000/ openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers 192.168.200.200:11211 openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name services openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova openstack-config --set /etc/nova/nova.conf keystone_authtoken password 000000 openstack-config --set /etc/nova/nova.conf vnc enabled true openstack-config --set /etc/nova/nova.conf vnc server_listen 0.0.0.0 openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address '$my_ip' openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://192.168.200.200:6080/vnc_auto.html openstack-config --set /etc/nova/nova.conf glance api_servers http://192.168.200.200:9292/ openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp openstack-config --set /etc/nova/nova.conf placement region_name RegionOne openstack-config --set /etc/nova/nova.conf placement project_domain_name Default openstack-config --set /etc/nova/nova.conf placement project_name services openstack-config --set /etc/nova/nova.conf placement auth_type password openstack-config --set /etc/nova/nova.conf placement user_domain_name Default openstack-config --set /etc/nova/nova.conf placement auth_url http://192.168.200.200:5000/ openstack-config --set /etc/nova/nova.conf placement username placement openstack-config --set /etc/nova/nova.conf placement password 000000 openstack-config --set /etc/nova/nova.conf libvirt virt_type kvm openstack-config --set /etc/nova/nova.conf libvirt live_migration_scheme ssh openstack-config --set /etc/nova/nova.conf libvirt live_migration_inbound_addr 192.168.200.201scp root@controller:/etc/ceph/ceph.client.nova.keyring /etc/ceph/ scp root@controller:/etc/ceph/uuid-client.nova /etc/ceph/ scp root@controller:/etc/ceph/client.nova.key /etc/ceph/ virsh secret-define --file /etc/ceph/secret-client.nova.xml virsh secret-set-value --secret $(cat /etc/ceph/uuid-client.nova) --base64 $(cat /etc/ceph/client.nova.key)openstack-config --set /etc/nova/nova.conf DEFAULT force_raw_images True openstack-config --set /etc/nova/nova.conf libvirt disk_cachemodes "\"network=writeback\"" openstack-config --set /etc/nova/nova.conf libvirt images_type rbd openstack-config --set /etc/nova/nova.conf libvirt images_rbd_pool vms openstack-config --set /etc/nova/nova.conf libvirt images_rbd_ceph_conf /etc/ceph/ceph.conf openstack-config --set /etc/nova/nova.conf libvirt rbd_user nova openstack-config --set /etc/nova/nova.conf libvirt rbd_secret_uuid $(cat /etc/ceph/uuid-client.nova)chgrp glance /etc/ceph/ceph.client.nova.keyringsystemctl enable libvirtd.service openstack-nova-compute.service systemctl start libvirtd.service openstack-nova-compute.service

neutron_compute

yum install neutron-openvswitch-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service -yopenstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone openstack-config --set /etc/neutron/neutron.conf DEFAULT transport_url rabbit://openstack:000000@192.168.200.200:5672/ openstack-config --set /etc/neutron/neutron.conf DEFAULT allow_resize_to_same_host True openstack-config --set /etc/neutron/neutron.conf DEFAULT allow_migrate_to_same_hostTrue openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_url http://192.168.200.200:5000/ openstack-config --set /etc/neutron/neutron.conf keystone_authtoken www_authenticate_uri http://192.168.200.200:5000/ openstack-config --set /etc/neutron/neutron.conf keystone_authtoken memcached_servers 192.168.200.200:11211 openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_type password openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/neutron/neutron.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_name services openstack-config --set /etc/neutron/neutron.conf keystone_authtoken username neutron openstack-config --set /etc/neutron/neutron.conf keystone_authtoken password 000000 openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmp openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini linux_openvswitch physical_interface_mappings extnet:ens33 openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini agent tunnel_types vxlan openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini agent l2_population true openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini ovs bridge_mappings extnet:br-ex openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini ovs local_ip 192.168.200.201 openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini securitygroup enable_security_group true openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini securitygroup firewall_driver iptables_hybridopenstack-config --set /etc/nova/nova.conf neutron auth_url http://192.168.200.200:5000/v3/ openstack-config --set /etc/nova/nova.conf neutron auth_type v3password openstack-config --set /etc/nova/nova.conf neutron project_domain_name Default openstack-config --set /etc/nova/nova.conf neutron user_domain_name Default openstack-config --set /etc/nova/nova.conf neutron region_name RegionOne openstack-config --set /etc/nova/nova.conf neutron project_name services openstack-config --set /etc/nova/nova.conf neutron username neutron openstack-config --set /etc/nova/nova.conf neutron password 000000systemctl enable neutron-openvswitch-agent.service systemctl start neutron-openvswitch-agent.serviceovs-vsctl add-br br-ex ovs-vsctl add-port br-ex ens33 echo "TYPE=Ethernet" >> /etc/sysconfig/network-scripts/ifcfg-ens33 echo "BOOTPROTO=none" >> /etc/sysconfig/network-scripts/ifcfg-ens33 echo "NAME=ens33" >> /etc/sysconfig/network-scripts/ifcfg-ens33 echo "DEVICE=ens33" >> /etc/sysconfig/network-scripts/ifcfg-ens33 echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-ens33rm -f /etc/sysconfig/network-scripts/ifcfg-br-ex echo "TYPE=Ethernet" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "BOOTPROTO=none" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "NAME=br-ex" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "DEVICE=br-ex" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "IPADDR=192.168.100.101" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "PREFIX=24" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "GATEWAY=192.168.100.2" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "DEFROUTE=yes" >> /etc/sysconfig/network-scripts/ifcfg-br-ex echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-br-ex service network restart

cinder_storage

openstack-config --set /etc/cinder/cinder.conf database connection mysql+pymysql://cinder:000000@192.168.200.200/cinder openstack-config --set /etc/cinder/cinder.conf DEFAULT auth_strategy keystone openstack-config --set /etc/cinder/cinder.conf DEFAULT my_ip 192.168.200.201 openstack-config --set /etc/cinder/cinder.conf DEFAULT transport_url rabbit://openstack:000000@192.168.200.200:5672/ openstack-config --set /etc/cinder/cinder.conf keystone_authtoken www_authenticate_uri http://192.168.200.200:5000/v3/ openstack-config --set /etc/cinder/cinder.conf keystone_authtoken auth_url http://192.168.200.200:5000/v3/ openstack-config --set /etc/cinder/cinder.conf keystone_authtoken memcached_servers 192.168.200.200:11211 openstack-config --set /etc/cinder/cinder.conf keystone_authtoken auth_type password openstack-config --set /etc/cinder/cinder.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/cinder/cinder.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/cinder/cinder.conf keystone_authtoken project_name services openstack-config --set /etc/cinder/cinder.conf keystone_authtoken username cinder openstack-config --set /etc/cinder/cinder.conf keystone_authtoken password 000000 openstack-config --set /etc/cinder/cinder.conf oslo_concurrency lock_path /var/lib/cinder/tmpscp root@controller:/etc/ceph/ceph.client.cinder.keyring /etc/ceph/ scp root@controller:/etc/ceph/uuid-client.cinder /etc/ceph/ scp root@controller:/etc/ceph/client.cinder.key /etc/ceph/ virsh secret-define --file /etc/ceph/secret-client.cinder.xml virsh secret-set-value --secret $(cat /etc/ceph/uuid-client.cinder) --base64 $(cat /etc/ceph/client.cinder.key)openstack-config --set /etc/cinder/cinder.conf DEFAULT enabled_backends ceph openstack-config --set /etc/cinder/cinder.conf DEFAULT default_volume_type ceph openstack-config --set /etc/cinder/cinder.conf DEFAULT glance_api_servers http://192.168.200.200:9292 openstack-config --set /etc/cinder/cinder.conf ceph volume_driver cinder.volume.drivers.rbd.RBDDriver openstack-config --set /etc/cinder/cinder.conf ceph volume_backend_name ceph openstack-config --set /etc/cinder/cinder.conf ceph rbd_pool volumes openstack-config --set /etc/cinder/cinder.conf ceph rbd_ceph_conf /etc/ceph/ceph.conf openstack-config --set /etc/cinder/cinder.conf ceph rbd_flatten_volume_from_snapshot false openstack-config --set /etc/cinder/cinder.conf ceph rbd_max_clone_depth 5 openstack-config --set /etc/cinder/cinder.conf ceph rbd_store_chunk_size 4 openstack-config --set /etc/cinder/cinder.conf ceph rados_connect_timeout -1 openstack-config --set /etc/cinder/cinder.conf ceph glance_api_version 2 openstack-config --set /etc/cinder/cinder.conf ceph rbd_user cinder openstack-config --set /etc/cinder/cinder.conf ceph rbd_secret_uuid $(cat /etc/ceph/uuid-client.cinder)chgrp glance /etc/ceph/ceph.client.cinder.keyringsystemctl start openstack-cinder-volume.service systemctl enable openstack-cinder-volume.service

熱遷移

結合參數:

libvirt live_migration_scheme = ssh libvirt live_migration_inbound_addr = 192.168.200.200libvirt live_migration_scheme = ssh libvirt live_migration_inbound_addr = 192.168.200.201 usermod -s "/bin/bash" nova echo "nova" | passwd nova --stdin su - nova ssh-keygen ssh-copy-id root@controller ssh-copy-id root@compute

總結

以上是生活随笔為你收集整理的OPENSTACK的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。