(openstack搭建)openstack云平臺部署-詳細完整教程
openstack云平臺部署(完整教程)
環境要求
Openstack硬件環境:Vmware虛擬機3臺,控制節點配置需求4C8G20G,計算節點2C4G20G
Openstack網絡要求:至少一套網絡,使用Vmware虛擬機的網絡即可
操作系統要求:centos7*即可,openstack開源版本均支持大部分開源操作系統,centos、ubnutu、suse等等,centos7操作系統的安裝詳見操作系統安裝文檔。
本指南中使用的ip
控制節點:controller:192.168.44.3
計算節點:compute1:192.168.44.4
compute2:192.168.44.5
一、安裝openstack前的前置操作(以下3臺虛擬機均同樣操作):
1 關閉防火墻
systemctl stop firewalld && systemctl disable firewalld
2 關閉selinux
1、vim /etc/selinux/config
SELINUX=enforcing #把enforcing改為disabled
2、setenforce 0
3、reboot #重新啟動讓其生效
3、hostname機hosts配置
[root@localhost ~]hostnamectl set-hostname --pretty controller
[root@localhost ~]hostnamectl set-hostname --static controller
[root@localhost ~]hostnamectl set-hostname --transient controller
[root@localhost ~]vi /etc/hosts
192.168.44.3 controller
192.168.44.4 compute1
192.168.44.5 compute2
4、安裝openstack及ceph的yum源
能連接外網的情況下:
下載安裝openstack存儲庫:
yum install centos-release-openstack-train
安裝后會自行在源配置路徑/etc/yum.repo.d/下生成配置文件,之后加載即可使用
yum clean all && yum makecache
如果虛擬機無法上網的話,需要去
http://mirror.centos.org/centos-7/7.9.2009/cloud/x86_64/openstack-train/上拿取源包,放到虛擬機上配置本地源使用
5. 配置時間同步ntpd
[root@controller ~]yum -y install ntp*
[root@controller ~]systemctl start ntpd
[root@controller ~]systemctl enable ntpd
[root@controller ~]ntpdate ntp1.aliyun.com
二、安裝openstack總體步驟
安裝rabbitmq
安裝etcd
安裝memcached
安裝MySQL
安裝keystone
操作系統環境變量配置
安裝glance
安裝placement
安裝nova
計算節點nova
安裝neutron
計算節點neutron
安裝dashboard
安裝 cinder
計算節點cinder
1.Rabbitmq:安裝:
yum install rabbitmq-server -y
啟動并配置為自動啟動
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
在rabbitmq中添加openstack用戶:
[root@controller ~]rabbitmqctl add_user openstack RABBIT_PASS #RABBIT_PASS換成合適的密碼
Creating user "openstack" ...
配置改用戶的權限
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...
開啟管理界面插件:
rabbitmq-plugins enable rabbitmq_management
openstack部署成功后可以登錄rabbitmq web管理界面:http://192.168.44.3:15672 如出現無法訪問情況 檢查端口:
netstat -anlp | grep 15672 如果還無法訪問,手動添加安全組規則 端口15672 5672,然后重啟服務
輸入用戶名:guest 密碼:guest,點擊login就可以登錄
另,安裝openstack客戶端:
yum install python-openstackclient openstack-selinux -y
2.Etcd
安裝:
yum install etcd -y
編輯配置文件:
vi /etc/etcd/etcd.conf
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.44.3:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.44.3:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.44.3:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.44.3:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.44.3:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
啟動etcd
systemctl enable etcd
systemctl start etcd
3.Memcached
yum install memcached python-memcached -y
編輯配置文件/etc/sysconfig/memcached ,在最后添加上控制節點的主機名:
vi /etc/sysconfig/memcached
OPTIONS="-l 127.0.0.1,::1,controller"
啟動
systemctl enable memcached.service
systemctl start memcached.service
4.MySQL
yum install mariadb mariadb-server python2-PyMySQL -y
創建和編輯/etc/my.cnf.d/openstack.cnf /etc/my.cnf.d/文件(如果需要,備份現有的配置文件)并完成以下操作:
創建一個[mysqld]section,設置bind-address key為controller節點的管理IP地址,允許其他節點通過管理網絡訪問。設置附加鍵以啟用有用的選項和 UTF-8 字符集:
vi /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.44.3
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
完成安裝
啟動數據庫服務并配置它在系統啟動時啟動:
systemctl enable mariadb.service
systemctl start mariadb.service
初始化數據庫并設置密碼(123456)
mysql_secure_installation
5.Keystone
安裝mariadb數據庫
mysql -u root -p
創建keystone數據庫:
MariaDB [(none)]> CREATE DATABASE keystone;
授予對keystone數據庫的適當訪問權限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
#(用合適的密碼替換 KEYSTONE_DBPASS )
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '123456';
安裝keystone
yum install openstack-keystone httpd mod_wsgi -y
編輯/etc/keystone/keystone.conf文件并完成以下操作:
在該[database]部分中,配置數據庫訪問:
vim /etc/keystone/keystone.conf
[database]
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
#替換KEYSTONE_DBPASS為您為數據庫選擇的密碼。
#注釋掉或刪除connection該[database]部分中的任何其他選項 。
#在[token]部分中,配置 Fernet 令牌提供程序:
[token]
provider = fernet
填充身份服務數據庫:
su -s /bin/sh -c "keystone-manage db_sync" keystone
初始化 Fernet 密鑰庫:
在–keystone-user和–keystone-group標志用于指定將用于運行keystone操作系統的用戶/組。提供這些是為了允許在另一個操作系統用戶/組下運行
keystone。在下面的示例中,我們調用 user & group keystone。
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
引導身份服務:
keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://controller:5000/v3/ \
--bootstrap-internal-url http://controller:5000/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne
#替換ADMIN_PASS為適合管理用戶的密碼。
配置 Apache HTTP 服務器
編輯/etc/httpd/conf/httpd.conf文件并配置 ServerName選項以引用控制器節點:
vim etc/httpd/conf/httpd.conf
ServerName controller
如果該ServerName條目尚不存在,則需要添加該條目。
創建/usr/share/keystone/wsgi-keystone.conf文件鏈接:
vim usr/share/keystone/wsgi-keystone.conf
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
啟動 Apache HTTP 服務并配置它在系統啟動時啟動:
systemctl enable httpd.service
systemctl start httpd.service
通過設置適當的環境變量來配置管理帳戶:
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
創建域、項目、用戶和角色
1.盡管本指南中的keystone-manage 引導步驟中已經存在“默認”域,但創建新域的正式方法是:
openstack domain create --description "An Example Domain" example
2.本指南使用一個服務項目,其中包含每個用戶的唯一用戶 添加到環境中的服務。創建項目:service
openstack project create --domain default --description "Service Project" service
3.常規(非管理員)任務應使用非特權項目和用戶。例如,本指南創建myproject項目和myuser 用戶。
創建myproject項目:
openstack project create --domain default --description "Demo Project" myproject
為該項目創建其他用戶時不要重復此步驟。
創建myuser用戶:
openstack user create --domain default --password-prompt myuser
創建myrole角色:
openstack role create myrole
將myrole角色添加到myproject項目和myuser用戶:
$ openstack role add --project myproject --user myuser myrole
1
創建 OpenStack 客戶端環境腳本
為 和 項目和用戶創建客戶端環境腳本。本指南的后續部分將參考這些內容 用于為客戶端操作加載相應憑據的腳本。
1.創建并編輯文件并添加以下內容:admin-openrc
$ vi admin-openrc
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
#替換為您選擇的密碼 對于標識服務中的用戶。ADMIN_PASS admin
2.創建并編輯文件并添加以下內容:demo-openrc
$ vi demo-openrc
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=myproject
export OS_USERNAME=myuser
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
#替換為您選擇的密碼 對于標識服務中的用戶。DEMO_PASS videmo
使用腳本
要以特定項目和用戶身份運行客戶端,只需加載即可 運行它們之前的關聯客戶端環境腳本。 例如:
加載文件以填充 具有標識服務位置的環境變量 以及項目和用戶憑據:admin-openrc
$ sh admin-openrc
請求身份驗證令牌:
openstack token issue
6.操作系統環境配置
sysctl.conf文件配置:
vi /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_keepalive_intvl = 2
net.ipv4.tcp_keepalive_probes = 1
#net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_synack_retries = 2
net.ipv4.neigh.default.gc_stale_time=120
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_announce=2
net.ipv4.ip_forward = 1
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
net.core.somaxconn=8192
vm.swappiness = 0
/etc/sudoers文件配置:
cepher ALL=(ALL) NOPASSWD: ALL
nova ALL=(ALL) NOPASSWD: ALL
neutron ALL=(ALL) NOPASSWD: ALL
ceilometer ALL = (root) NOPASSWD: /usr/bin/ceilometer-rootwrap /etc/ceilometer/rootwrap.conf *
/etc/security/limits.conf文件配置(end前):
* soft nofile 65530
* hard nofile 65530
* - memlock unlimited
* - nofile 100000
* - nproc 32768
* - as unlimited
/etc/systemd/system.conf #資源限制連接數
DefaultLimitNOFILE=20480
DefaultLimitNPROC=20480
上面這些配置完后要重啟才能生效
7.Glance
在安裝和配置 Image 服務之前,您必須創建數據庫、服務憑證和 API 端點。
1.要創建數據庫,請完成以下步驟:
使用數據庫訪問客戶端以root用戶身份連接數據庫服務器:
mysql -u root -p
創建glance數據庫:
MariaDB [(none)]> CREATE DATABASE glance;
授予對glance數據庫的適當訪問權限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';
替換GLANCE_DBPASS為合適的密碼。
退出數據庫訪問客戶端。
2.來源admin憑據來訪問僅管理員CLI命令:
sh admin-openrc
報錯處理source admin-openrc
3.要創建服務憑證,請完成以下步驟:
創建glance用戶:
openstack user create --domain default --password-prompt glance
將admin角色添加到glance用戶和 service項目:
openstack role add --project service --user glance admin
創建glance服務實體:
openstack service create --name glance --description "OpenStack Image" image
創建鏡像服務 API 端點:
$ 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
安裝和配置組件
安裝軟件包:
yum install openstack-glance -y
編輯/etc/glance/glance-api.conf文件并完成以下操作:
在該[database]部分中,配置數據庫訪問:
#vi /etc/glance/glance-api.conf
[database]
# ...
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
替換GLANCE_DBPASS為您為Glance:服務數據庫選擇的密碼。
在[keystone_authtoken]和[paste_deploy]部分,配置身份服務訪問:
[keystone_authtoken]
...
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = GLANCE_PASS
[paste_deploy]
...
flavor = keystone
替換GLANCE_PASS為您glance在身份服務中為用戶選擇的密碼 。
在該[glance_store]部分中,配置本地文件系統存儲和鏡像文件的位置:
[glance_store]
# ...
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images
填充glance服務數據庫:
su -s /bin/sh -c "glance-manage db_sync" glance
編輯/etc/glance/glance-registry.conf文件并完成以下操作:
在該[database]部分中,配置數據庫訪問:
[database]
#...
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
替換GLANCE_DBPASS為您為Glance服務數據庫選擇的密碼。
在[keystone_authtoken]和[paste_deploy]部分,配置身份服務訪問:
[keystone_authtoken]
#...
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = GLANCE_PASS
[paste_deploy]
...
flavor = keystone
替換GLANCE_PASS為您glance在身份服務中為用戶選擇的密碼 。
完成安裝
啟動 Image 服務并將它們配置為在系統啟動時啟動:
systemctl enable openstack-glance-api.service
systemctl start openstack-glance-api.service
8.placement
1.創建數據庫
要創建數據庫,請完成以下步驟:
使用數據庫訪問客戶端以root用戶身份連接數據庫服務器:
$ mysql -u root -p
創建placement數據庫:
MariaDB [(none)]> CREATE DATABASE placement;
授予對數據庫的適當訪問權限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'PLACEMENT_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'PLACEMENT_DBPASS';
替換PLACEMENT_DBPASS為合適的密碼。
退出數據庫訪問客戶端。
2.配置用戶和端點
來源admin憑據來訪問僅管理員CLI命令:
$ . admin-openrc
使用您選擇的創建一個安置服務用戶PLACEMENT_PASS:
$ openstack user create --domain default --password-prompt placement
3.將 Placement 用戶添加到具有 admin 角色的服務項目:
$ openstack role add --project service --user placement admin
4.在服務目錄中創建 Placement API 條目:
$ openstack service create --name placement \
--description "Placement API" placement
5.創建 Placement API 服務端點:
(根據環境,端點的 URL 會因端口(可能是 8780 而不是 8778,或者根本沒有端口)和主機名而異。確定正確的 URL。)
$ openstack endpoint create --region RegionOne \
placement public http://controller:8778
$ openstack endpoint create --region RegionOne \
placement internal http://controller:8778
$ openstack endpoint create --region RegionOne \
placement admin http://controller:8778
安裝和配置組件
1.安裝軟件包:
yum install openstack-placement-api -y
2.編輯/etc/placement/placement.conf文件并完成以下操作:
#vi /etc/placement/placement.conf
在該[placement_database]部分中,配置數據庫訪問:
[placement_database]
# ...
connection = mysql+pymysql://placement:PLACEMENT_DBPASS@controller/placement
替換PLACEMENT_DBPASS為您為展示位置數據庫選擇的密碼。
在[api]和[keystone_authtoken]部分,配置身份服務訪問:
[api]
...
auth_strategy = keystone
[keystone_authtoken]
#...
auth_url = http://controller:5000/v3
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = PLACEMENT_PASS
替換PLACEMENT_PASS為您placement在身份服務中為用戶選擇的密碼 。
筆記 注釋掉或刪除該[keystone_authtoken] 部分中的任何其他選項。
、的值user_name,password,project_domain_name并
user_domain_name需要在你的keystone配置同步。
3.填充placement數據庫:
su -s /bin/sh -c "placement-manage db sync" placement
完成安裝
4.重啟httpd服務:
systemctl restart httpd
9.nova控制節點
1.使用數據庫訪問客戶端以root用戶身份連接數據庫服務器:
$ mysql -u root -p
創建nova_api,nova和nova_cell0數據庫:
MariaDB [(none)]> CREATE DATABASE nova_api;
MariaDB [(none)]> CREATE DATABASE nova;
MariaDB [(none)]> CREATE DATABASE nova_cell0;
授予對數據庫的適當訪問權限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
IDENTIFIED BY '123456';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
IDENTIFIED BY '123456';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
IDENTIFIED BY '123456';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
IDENTIFIED BY '123456';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \
IDENTIFIED BY '123456';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \
IDENTIFIED BY '123456';
替換NOVA_DBPASS為合適的密碼。(這里設置的是123456)
數據庫訪問客戶端。
2.來源admin憑據來訪問僅管理員CLI命令:
$ . admin-openrc
3.創建計算服務憑證:
創建nova用戶:
$ openstack user create --domain default --password-prompt nova
admin為nova用戶添加角色:
$ openstack role add --project service --user nova admin
此命令不提供任何輸出。
創建nova服務實體:
$ openstack service create --name nova \
--description "OpenStack Compute" compute
4.創建 Compute API 服務端點:
$ openstack endpoint create --region RegionOne \
compute public http://controller:8774/v2.1
$ openstack endpoint create --region RegionOne \
compute internal http://controller:8774/v2.1
$ openstack endpoint create --region RegionOne \
compute admin http://controller:8774/v2.1
安裝和配置組件
1.安裝軟件包:
yum install openstack-nova-api openstack-nova-conductor \
openstack-nova-novncproxy openstack-nova-scheduler libvirt -y
2.編輯/etc/nova/nova.conf文件并完成以下操作:
#vi /etc/nova/nova.conf
在該[DEFAULT]部分中,僅啟用計算和元數據 API:
[DEFAULT]
#...
enabled_apis = osapi_compute,metadata
在[api_database]和[database]部分,配置數據庫訪問:
[api_database]
...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
[database]
...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
替換NOVA_DBPASS為您為 數據庫選擇的密碼。
在該[DEFAULT]部分,配置RabbitMQ消息隊列訪問:
[DEFAULT]
...
transport_url = rabbit://openstack:RABBIT_PASS@controller:5672/
替換RABBIT_PASS為您為 中的openstack 帳戶選擇的密碼。
在[api]和[keystone_authtoken]部分,配置身份服務訪問:
[api]
...
auth_strategy = keystone
[keystone_authtoken]
...
www_authenticate_uri = http://controller:5000/
auth_url = http://controller:5000/
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = NOVA_PASS
替換NOVA_PASS為您nova在身份服務中為用戶選擇的密碼。
筆記 注釋掉或刪除該[keystone_authtoken] 部分中的任何其他選項。
在該[DEFAULT]部分中,配置my_ip選項以使用控制器節點的管理接口 IP 地址:
[DEFAULT]
...
my_ip = 192.168.44.3
在該[DEFAULT]部分中,啟用對網絡服務的支持:
[DEFAULT]
...
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver
筆記 默認情況下,Compute
使用內部防火墻驅動程序。由于網絡服務包括防火墻驅動程序,您必須使用nova.virt.firewall.NoopFirewallDriver防火墻驅動程序禁用計算防火墻驅動程序。
配置/etc/nova/nova.conf的[neutron]部分。有關更多詳細信息,請參閱網絡服務安裝指南。
在該[vnc]部分中,將 VNC 代理配置為使用控制器節點的管理接口 IP 地址:
[vnc]
enabled = true
...
server_listen = $my_ip
server_proxyclient_address = $my_ip
在該[glance]部分中,配置 Image 服務 API 的位置:
[glance]
...
api_servers = http://controller:9292
在該[oslo_concurrency]部分中,配置鎖定路徑:
[oslo_concurrency]
...
lock_path = /var/lib/nova/tmp
在[placement]部分中,配置對 Placement 服務的訪問:
[placement]
...
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:5000/v3
username = placement
password = PLACEMENT_PASS
替換PLACEMENT_PASS為您為placement安裝Placement時創建的服務用戶 選擇的密碼 。注釋掉或刪除該[placement]部分中的任何其他選項。
3.填充nova-api數據庫:
su -s /bin/sh -c "nova-manage api_db sync" nova
4.注冊cell0數據庫:
su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
5.創建cell1單元格:
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
6.填充 nova 數據庫:
su -s /bin/sh -c "nova-manage db sync" nova
7.驗證 nova cell0 和 cell1 是否正確注冊:
su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
完成安裝
啟動 Compute 服務并將它們配置為在系統啟動時啟動:
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
10.nova計算節點
安裝軟件包:
yum install openstack-nova-compute libvirt -y
編輯/etc/nova/nova.conf文件并完成以下操作:
#vi /etc/nova/nova.conf
在該[DEFAULT]部分中,僅啟用計算和元數據 API:
[DEFAULT]
...
enabled_apis = osapi_compute,metadata
在該[DEFAULT]部分,配置RabbitMQ消息隊列訪問:
[DEFAULT]
...
transport_url = rabbit://openstack:RABBIT_PASS@controller
替換RABBIT_PASS為您為 中的openstack 帳戶選擇的密碼。
在[api]和[keystone_authtoken]部分,配置身份服務訪問:
[api]
...
auth_strategy = keystone
[keystone_authtoken]
...
www_authenticate_uri = http://controller:5000/
auth_url = http://controller:5000/
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = NOVA_PASS
替換NOVA_PASS為您nova在身份服務中為用戶選擇的密碼。
在該[DEFAULT]部分中,配置my_ip選項:
[DEFAULT]
...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
替換MANAGEMENT_INTERFACE_IP_ADDRESS為計算節點上管理網絡接口的 IP 地址,
在該[DEFAULT]部分中,啟用對網絡服務的支持:
[DEFAULT]
...
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver
筆記 默認情況下,Compute 使用內部防火墻服務。由于網絡包括防火墻服務,您必須使用nova.virt.firewall.NoopFirewallDriver防火墻驅動程序禁用計算防火墻服務。
在[vnc]部分中,啟用和配置遠程控制臺訪問:
[vnc]
...
enabled = true
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html
服務器組件偵聽所有 IP 地址,代理組件僅偵聽計算節點的管理接口 IP 地址?;?URL 指示您可以使用 Web瀏覽器訪問此計算節點上實例的遠程控制臺的位置。 如果用于訪問遠程控制臺的 Web
瀏覽器駐留在無法解析controller主機名的主機上,則必須替換 controller為控制器節點的管理接口 IP 地址。
在該[glance]部分中,配置 Image 服務 API 的位置:
[glance]
...
api_servers = http://controller:9292
在該[oslo_concurrency]部分中,配置鎖定路徑:
[oslo_concurrency]
...
lock_path = /var/lib/nova/tmp
在[placement]部分中,配置 Placement API:
[placement]
...
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:5000/v3
username = placement
password = PLACEMENT_PASS
替換PLACEMENT_PASS為您placement在身份服務中為用戶選擇的密碼 。注釋掉該[placement]部分中的任何其他選項。
完成安裝
1.確定計算節點是否支持虛擬機的硬件加速:
$ egrep -c '(vmx|svm)' /proc/cpuinfo
如果此命令返回值one or greater,則計算節點支持硬件加速,這通常不需要額外配置。
如果此命令返回值zero,則計算節點不支持硬件加速,您必須配置libvirt為使用 QEMU 而不是 KVM。
編輯文件中的[libvirt]部分,/etc/nova/nova.conf如下所示:
[libvirt]
...
virt_type = qemu
啟動 Compute 服務及其依賴項,并將它們配置為在系統啟動時自動啟動:
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service
如果有遇到起不起來rabbitmq一直報連接不上的加下這條
compute_driver=libvirt.LibvirtDriver
將計算節點添加到單元數據庫
在控制器節點上運行以下命令:
1.獲取管理員憑據以啟用僅限管理員的 CLI 命令,然后確認數據庫中有計算主機:
$ . admin-openrc
$ openstack compute service list --service nova-compute
2.發現計算主機
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
11.neutron控制節點
1.要創建數據庫,請完成以下步驟:
用數據庫訪問客戶端以root用戶身份連接數據庫服務器:
$ mysql -u root -p
創建neutron數據庫:
MariaDB [(none)] CREATE DATABASE neutron;
授予對neutron數據庫的適當訪問權限,替換 NEUTRON_DBPASS為合適的密碼:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'NEUTRON_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'NEUTRON_DBPASS';
退出數據庫訪問客戶端。
2.來源admin憑據來訪問僅管理員CLI命令:
$ . admin-openrc
3.要創建服務憑證,請完成以下步驟:
創建neutron用戶:
$ openstack user create --domain default --password-prompt neutron
admin為neutron用戶添加角色:
$ openstack role add --project service --user neutron admin
此命令不提供任何輸出。
創建neutron服務實體:
$ openstack service create --name neutron \
--description "OpenStack Networking" network
4.創建網絡服務 API 端點:
$ openstack endpoint create --region RegionOne \
network public http://controller:9696
$ openstack endpoint create --region RegionOne \
network internal http://controller:9696
$ openstack endpoint create --region RegionOne \
network admin http://controller:9696
配置網絡選項 可以使用以下兩種體系結構之一部署網絡服務 以選項1和2為代表。
選項 1 部署了最簡單的體系結構,該體系結構僅支持 將實例附加到提供商(外部)網絡。沒有自助服務(私人) 網絡、路由器或浮動 IP
地址。只有 或其他 特權用戶可以管理提供商網絡。admin
選項 2 使用支持連接的第 1 層服務擴充選項 3 實例到自助服務網絡。或其他非特權 用戶可以管理自助服務網絡,包括提供
自助服務和提供商網絡之間的連接。此外 浮動 IP 地址使用自助服務提供與實例的連接 來自外部網絡(如互聯網)的網絡。demo
自助服務網絡通常使用覆蓋網絡。疊加網絡 VXLAN 等協議包括增加開銷的其他標頭 并減少可用于有效負載或用戶數據的空間。沒有知識
的虛擬網絡基礎結構,實例嘗試發送數據包 使用默認以太網最大傳輸單元 (MTU) 1500 字節。網絡服務自動提供正確的 MTU 值 通過
DHCP 傳輸到實例。但是,某些云映像不使用 DHCP 或忽略 DHCP MTU 選項,并需要使用元數據或腳本進行配置。
注意 選項 2 還支持將實例附加到提供商網絡。
選項1請參考官網:https://docs.openstack.org/neutron/train/install/controller-install-option1-rdo.html
網絡選項 2:自助服務網絡
yum install openstack-neutron openstack-neutron-ml2 \
openstack-neutron-linuxbridge ebtables ipset -y
配置服務器組件
編輯/etc/neutron/neutron.conf文件并完成以下操作:
#vi /etc/neutron/neutron.conf
在該[database]部分中,配置數據庫訪問:
[database]
...
connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
替換NEUTRON_DBPASS為您為數據庫選擇的密碼。
在該[DEFAULT]部分中,啟用模塊化第 2 層 (ML2) 插件、路由器服務和重疊 IP 地址:
[DEFAULT]
...
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = true
在該[DEFAULT]部分,配置RabbitMQ 消息隊列訪問:
[DEFAULT]
#...
transport_url = rabbit://openstack:RABBIT_PASS@controller
替換RABBIT_PASS為您openstack在 RabbitMQ 中為帳戶選擇的密碼 。
在[DEFAULT]和[keystone_authtoken]部分,配置身份服務訪問:
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = NEUTRON_PASS
替換NEUTRON_PASS為您neutron 在身份服務中為用戶選擇的密碼。
注釋掉或刪除該[keystone_authtoken]部分中的任何其他選項 。
在[DEFAULT]和[nova]部分中,配置 Networking 以通知 Compute 網絡拓撲更改:
[DEFAULT]
...
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
[nova]
...
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = NOVA_PASS
替換NOVA_PASS為您nova 在身份服務中為用戶選擇的密碼。
在該[oslo_concurrency]部分中,配置鎖定路徑:
[oslo_concurrency]
...
lock_path = /var/lib/neutron/tmp
配置模塊化第 2 層 (ML2) 插件
ML2 插件使用 Linux 橋接機制為實例構建第 2 層(橋接和交換)虛擬網絡基礎設施。
編輯/etc/neutron/plugins/ml2/ml2_conf.ini文件并完成以下操作:
#vi /etc/neutron/plugins/ml2/ml2_conf.ini
在該[ml2]部分中,啟用平面、VLAN 和 VXLAN 網絡:
[ml2]
...
type_drivers = flat,vlan,vxlan
在該[ml2]部分中,啟用 VXLAN 自助網絡:
[ml2]
...
tenant_network_types = vxlan
在該[ml2]部分中,啟用 Linux 橋接和二層填充機制:
[ml2]
...
mechanism_drivers = linuxbridge,l2population
警告 配置 ML2 插件后,刪除type_drivers選項中的值 可能會導致數據庫不一致。
Linux 網橋代理僅支持 VXLAN 覆蓋網絡。
在該[ml2]部分中,啟用端口安全擴展驅動程序:
[ml2]
...
extension_drivers = port_security
在該[ml2_type_flat]部分中,將提供者虛擬網絡配置為平面網絡:
[ml2_type_flat]
...
flat_networks = provider
在該[ml2_type_vxlan]部分中,配置自助網絡的 VXLAN 網絡標識符范圍:
[ml2_type_vxlan]
#...
vni_ranges = 1:1000
在該[securitygroup]部分中,啟用ipset以提高安全組規則的效率:
[securitygroup]
...
enable_ipset = true
配置 Linux 網橋代理
Linux 橋接代理為實例構建第 2 層(橋接和交換)虛擬網絡基礎架構并處理安全組。
編輯/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件并完成以下操作:
在該[linux_bridge]部分中,將提供者虛擬網絡映射到提供者物理網絡接口:
[linux_bridge]
physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
替換PROVIDER_INTERFACE_NAME為底層提供者物理網絡接口的名稱。ens33
在該[vxlan]部分中,啟用VXLAN覆蓋網絡,配置處理覆蓋網絡的物理網絡接口的IP地址,并啟用二層填充:
[vxlan]
enable_vxlan = true
local_ip = OVERLAY_INTERFACE_IP_ADDRESS
l2_population = true
替換OVERLAY_INTERFACE_IP_ADDRESS為處理覆蓋網絡的底層物理網絡接口的 IP 地址。示例架構使用管理接口將流量隧道傳輸到其他節點。因此,替換OVERLAY_INTERFACE_IP_ADDRESS為控制器節點的管理 IP 地址。有關詳細信息,請參閱 主機網絡。
在該[securitygroup]部分中,啟用安全組并配置 Linux 網橋 iptables 防火墻驅動程序:
[securitygroup]
...
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
通過驗證以下所有sysctl值都設置為,確保您的 Linux 操作系統內核支持網橋過濾器1:
編輯/etc/sysctl.conf加入:
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
保存退出,輸入modprobe br_netfilter加載內核模塊,最后sysctl -p查看是否生效
modprobe br_netfilter
sysctl -p
要啟用網絡橋接支持,通常br_netfilter需要加載內核模塊。有關啟用此模塊的其他詳細信息,請查看操作系統的文檔。
配置三層代理
第 3 層 (L3) 代理為自助服務虛擬網絡提供路由和 NAT 服務。
編輯/etc/neutron/l3_agent.ini文件并完成以下操作:
在該[DEFAULT]部分中,配置 Linux 橋接接口驅動程序:
[DEFAULT]
...
interface_driver = linuxbridge
配置 DHCP 代理
DHCP 代理為虛擬網絡提供 DHCP 服務。
編輯/etc/neutron/dhcp_agent.ini文件并完成以下操作:
在該[DEFAULT]部分中,配置 Linux 橋接接口驅動程序、Dnsmasq DHCP 驅動程序,并啟用隔離元數據,以便提供商網絡上的實例可以通過網絡訪問元數據:
[DEFAULT]
...
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
配置元數據代理
元數據代理向實例提供配置信息,例如憑據。
編輯/etc/neutron/metadata_agent.ini文件并完成以下操作:
在該[DEFAULT]部分中,配置元數據主機和共享密鑰:
[DEFAULT]
...
nova_metadata_host = controller
metadata_proxy_shared_secret = METADATA_SECRET
替換METADATA_SECRET為元數據代理的合適密鑰。
配置 Compute 服務以使用 Networking 服務
筆記 必須安裝 Nova 計算服務才能完成此步驟。有關更多詳細信息,請參閱文檔網站安裝指南部分下的計算安裝指南 。
編輯/etc/nova/nova.conf文件并執行以下操作:
在該[neutron]部分中,配置訪問參數,啟用元數據代理,并配置密鑰:
[neutron]
...
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = NEUTRON_PASS
service_metadata_proxy = true
metadata_proxy_shared_secret = METADATA_SECRET
替換NEUTRON_PASS為您neutron 在身份服務中為用戶選擇的密碼。
替換METADATA_SECRET為您為元數據代理選擇的機密。
請參閱計算服務配置指南 以獲取完整的選項集,包括必要時覆蓋服務目錄端點 URL。
完成安裝
1.網絡服務初始化腳本需要一個/etc/neutron/plugin.ini指向 ML2 插件配置文件的符號鏈接 /etc/neutron/plugins/ml2/ml2_conf.ini。如果此符號鏈接不存在,請使用以下命令創建它:
ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
2.填充數據庫:
su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
3.重啟計算 API 服務:
systemctl restart openstack-nova-api.service
4.啟動網絡服務并將它們配置為在系統啟動時啟動。
對于兩個網絡選項:
systemctl enable neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service
systemctl start neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service
對于網絡選項 2,還啟用并啟動第 3 層服務:
systemctl enable neutron-l3-agent.service
systemctl start neutron-l3-agent.service
12.neutron計算節點
安裝組件
yum install openstack-neutron-linuxbridge ebtables ipset -y
配置通用組件
Networking 通用組件配置包括身份驗證機制、消息隊列和插件。
編輯/etc/neutron/neutron.conf文件并完成以下操作:
在該[database]部分中,注釋掉所有connection選項,因為計算節點不直接訪問數據庫。
在該[DEFAULT]部分,配置RabbitMQ 消息隊列訪問:
[DEFAULT]
...
transport_url = rabbit://openstack:RABBIT_PASS@controller
替換RABBIT_PASS為您openstack 在 RabbitMQ 中為帳戶選擇的密碼。
在[DEFAULT]和[keystone_authtoken]部分,配置身份服務訪問:
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = NEUTRON_PASS
替換NEUTRON_PASS為您neutron 在身份服務中為用戶選擇的密碼。
在該[oslo_concurrency]部分中,配置鎖定路徑:
[oslo_concurrency]
...
lock_path = /var/lib/neutron/tmp
在計算節點上配置網絡組件。
配置 Linux 網橋代理
Linux 橋接代理為實例構建第 2 層(橋接和交換)虛擬網絡基礎架構并處理安全組。
編輯/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件并完成以下操作:
在該[linux_bridge]部分中,將提供者虛擬網絡映射到提供者物理網絡接口:
[linux_bridge]
physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
替換PROVIDER_INTERFACE_NAME為底層提供者物理網絡接口的名稱。有關 詳細信息,請參閱主機網絡。
在該[vxlan]部分中,啟用VXLAN覆蓋網絡,配置處理覆蓋網絡的物理網絡接口的IP地址,并啟用二層填充:
[vxlan]
enable_vxlan = true
local_ip = OVERLAY_INTERFACE_IP_ADDRESS
l2_population = true
替換OVERLAY_INTERFACE_IP_ADDRESS為處理覆蓋網絡的底層物理網絡接口的 IP 地址。示例架構使用管理接口將流量隧道傳輸到其他節點。因此,替換OVERLAY_INTERFACE_IP_ADDRESS為計算節點的管理IP地址。有關詳細信息,請參閱 主機網絡。
在該[securitygroup]部分中,啟用安全組并配置 Linux 網橋 iptables 防火墻驅動程序:
[securitygroup]
...
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
通過驗證以下所有sysctl值都設置為,確保您的 Linux 操作系統內核支持網橋過濾器1:
編輯/etc/sysctl.conf加入:
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
保存退出,輸入modprobe br_netfilter加載內核模塊,最后sysctl -p查看是否生效
modprobe br_netfilter
sysctl -p
要啟用網絡橋接支持,通常br_netfilter需要加載內核模塊。有關啟用此模塊的其他詳細信息,請查看操作系統的文檔。
配置 Compute 服務以使用 Networking 服務
編輯/etc/nova/nova.conf文件并完成以下操作:
在該[neutron]部分,配置訪問參數:
[neutron]
...
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = NEUTRON_PASS
替換NEUTRON_PASS為您neutron 在身份服務中為用戶選擇的密碼。
完成安裝
1.重啟計算服務:
systemctl restart openstack-nova-compute.service
2.啟動 Linux 網橋代理并將其配置為在系統啟動時啟動:
systemctl enable neutron-linuxbridge-agent.service
systemctl start neutron-linuxbridge-agent.service
13.dashboard:
本節假設使用 Apache HTTP 服務器和 Memcached 服務正確安裝、配置和操作 Identity 服務。
安裝和配置組件
1.安裝軟件包:
yum install openstack-dashboard -y
2.編輯 /etc/openstack-dashboard/local_settings 文件并完成以下操作:
配置儀表板以在controller節點上使用 OpenStack 服務 :
OPENSTACK_HOST = "controller"
ALLOWED_HOSTS = ['horizon.example.com', '*']
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
'default': {
'BACKEND':
'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'controller:11211',
}
}
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_lb': False,
'enable_firewall': False,
'enable_vpn': False,
'enable_auto_allocated_network': False,
'enable_distributed_router': False,
'enable_fip_topology_check': False,
'enable_ha_router': False,
'enable_ipv6': False,
'enable_quotas': False,
'enable_rbac_policy': False,
'enable_router': False,
}
TIME_ZONE = "Asia/Shanghai"
WEBROOT="/dashboard"
替換TIME_ZONE為適當的時區標識符。有關更多信息,請參閱時區列表。
/etc/httpd/conf.d/openstack-dashboard.conf如果不包括,則添加以下行 。
WSGIApplicationGroup %{GLOBAL}
完成安裝
重新啟動 Web 服務器和會話存儲服務:
systemctl restart httpd.service memcached.service
14.cinder控制節點
1.使用數據庫訪問客戶端以root用戶身份連接數據庫服務器:
$ mysql -u root -p
創建cinder數據庫:
MariaDB [(none)]> CREATE DATABASE cinder;
授予對cinder數據庫的適當訪問權限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
IDENTIFIED BY 'CINDER_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
IDENTIFIED BY 'CINDER_DBPASS';
替換CINDER_DBPASS為合適的密碼。
退出數據庫訪問客戶端。
2.來源admin憑據來訪問僅管理員CLI命令:
$ . admin-openrc
3.要創建服務憑證,請完成以下步驟:
創建cinder用戶:
$ openstack user create --domain default --password-prompt cinder
admin為cinder用戶添加角色:
$ openstack role add --project service --user cinder admin
創建cinderv2和cinderv3服務實體:
$ openstack service create --name cinderv2 \
--description "OpenStack Block Storage" volumev2
$ openstack service create --name cinderv3 \
--description "OpenStack Block Storage" volumev3
(塊存儲服務需要兩個服務實體。)
4.創建塊存儲服務 API 端點:
$ 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
(塊存儲服務需要每個服務實體的端點。)
安裝和配置組件
1.安裝軟件包:
yum install openstack-cinder -y
2.編輯/etc/cinder/cinder.conf文件并完成以下操作:
#vi /etc/cinder/cinder.conf
在該[database]部分中,配置數據庫訪問:
[database]
...
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
替換CINDER_DBPASS為您為 Block Storage 數據庫選擇的密碼。
在該[DEFAULT]部分,配置RabbitMQ 消息隊列訪問:
[DEFAULT]
...
transport_url = rabbit://openstack:RABBIT_PASS@controller
替換RABBIT_PASS為您為 中的openstack帳戶選擇的密碼 RabbitMQ。
在[DEFAULT]和[keystone_authtoken]部分,配置身份服務訪問:
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = CINDER_PASS
替換CINDER_PASS為您cinder在身份服務中為用戶選擇的密碼。
注釋掉或刪除該[keystone_authtoken]部分中的任何其他選項 。
在該[DEFAULT]部分中,配置my_ip選項以使用控制器節點的管理接口 IP 地址:
[DEFAULT]
...
my_ip = 192.168.44.3
3.在該[oslo_concurrency]部分中,配置鎖定路徑:
[oslo_concurrency]
...
lock_path = /var/lib/cinder/tmp
4.填充塊存儲數據庫:
su -s /bin/sh -c "cinder-manage db sync" cinder
(忽略此輸出中的任何棄用消息。)
配置 Compute 以使用塊存儲
1.編輯/etc/nova/nova.conf文件并將以下內容添加到其中:
[cinder]
os_region_name = RegionOne
完成安裝
1.重啟計算 API 服務:
systemctl restart openstack-nova-api.service
2.啟動塊存儲服務并配置它們在系統啟動時啟動:
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
15.cinder計算節點
1.安裝支持的實用程序包:
安裝 LVM 包:
yum install lvm2 device-mapper-persistent-data
啟動 LVM 元數據服務并將其配置為在系統啟動時啟動:
systemctl enable lvm2-lvmetad.service
systemctl start lvm2-lvmetad.service
2.創建 LVM 物理卷/dev/sdb;
$ pvcreate /dev/sdb
Physical volume "/dev/sda1" successfully created
3.創建 LVM 卷組cinder-volumes:
$ vgcreate cinder-volumes /dev/sdb
Volume group "cinder-volumes" successfully created
Block Storage 服務在這個卷組中創建邏輯卷。
4.只有實例可以訪問塊存儲卷。但是,底層操作系統管理與卷關聯的設備。默認情況下,LVM 卷掃描工具會掃描/dev包含卷的塊存儲設備的 目錄。如果項目在其卷上使用 LVM,掃描工具會檢測這些卷并嘗試緩存它們,這可能會導致底層操作系統和項目卷出現各種問題。您必須重新配置 LVM 以僅掃描包含cinder-volumes卷組的設備。編輯 /etc/lvm/lvm.conf文件并完成以下操作:
在該devices部分中,添加一個接受/dev/sdb設備并拒絕所有其他設備的過濾 器:
devices {
...
filter = [ "a/sdb/", "r/.*/"]
濾波器陣列中的每個項目開始于a用于接受或 r用于拒絕,并且包括用于所述裝置名稱的正則表達式。該陣列必須r/.*/以拒絕任何剩余設備結束。您可以使用vgs -vvvv命令來測試過濾器。
警告 如果您的存儲節點在操作系統磁盤上使用 LVM,您還必須將關聯的設備添加到過濾器中。例如,如果/dev/sda設備包含操作系統:
filter = [ “a/sda/”, “a/sdb/”, “r/./"] 同樣,如果您的計算節點在操作系統磁盤上使用
LVM,您還必須修改/etc/lvm/lvm.conf這些節點上文件中的過濾器 以僅包含操作系統磁盤。例如,如果/dev/sda
設備包含操作系統: filter = [ “a/sda/”, "r/./”]
安裝和配置組件
1.安裝軟件包:
yum install openstack-cinder targetcli python-keystone -y
2.編輯/etc/cinder/cinder.conf文件并完成以下操作:
在該[database]部分中,配置數據庫訪問:
[database]
...
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
替換CINDER_DBPASS為您為 Block Storage 數據庫選擇的密碼。
在該[DEFAULT]部分,配置RabbitMQ 消息隊列訪問:
[DEFAULT]
...
transport_url = rabbit://openstack:RABBIT_PASS@controller
替換RABBIT_PASS為您為 中的openstack帳戶選擇的密碼。
在[DEFAULT]和[keystone_authtoken]部分,配置身份服務訪問:
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = CINDER_PASS
替換CINDER_PASS為您cinder在身份服務中為用戶選擇的密碼 。
注釋掉或刪除該[keystone_authtoken]部分中的任何其他選項 。
在該[DEFAULT]部分中,配置my_ip選項:
[DEFAULT]
...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
替換MANAGEMENT_INTERFACE_IP_ADDRESS為存儲節點上管理網絡接口的 IP 地址
在該[lvm]部分中,使用 LVM 驅動程序、cinder-volumes卷組、iSCSI 協議和適當的 iSCSI 服務配置 LVM 后端。如果該[lvm]部分不存在,請創建它:
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
target_protocol = iscsi
target_helper = lioadm
在該[DEFAULT]部分中,啟用 LVM 后端:
[DEFAULT]
...
enabled_backends = lvm
后端名稱是任意的。例如,本指南使用驅動程序的名稱作為后端的名稱。
在該[DEFAULT]部分中,配置 Image 服務 API 的位置:
[DEFAULT]
...
glance_api_servers = http://controller:9292
在該[oslo_concurrency]部分中,配置鎖定路徑:
[oslo_concurrency]
#...
lock_path = /var/lib/cinder/tmp
完成安裝
啟動 Block Storage 卷服務及其依賴項,并將它們配置為在系統啟動時啟動:
systemctl enable openstack-cinder-volume.service target.service
systemctl start openstack-cinder-volume.service target.service
登錄dsahboard
http://192.168.44.3/dashboard
控制節點ip登錄
下面進行安裝好openstack后的操作,在控制節點上,加載. admin-openrc后進行創建網絡、規格、安全組、密鑰等
創建網絡:
openstack network create --share --external --provider-physical-network provider --provider-network-type flat provider
openstack subnet create --network provider --allocation-pool start=192.168.44.10,end=192.168.50.254 --gateway 192.168.0.254 --subnet-range 192.168.0.0/16 provider
創建規格:
openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano
創建密鑰對:
ssh-keygen -q -N ""
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
創建安全組并允許SSH訪問:
openstack security group rule create --proto icmp default
openstack security group rule create --proto tcp --dst-port 22 default
創建個user的,不然后面創建項目創建用戶會報找不到token
openstack role create user
創建一個鏡像文件
Touch cirros-0.5.2-x86_64-disk.img
上傳鏡像:
openstack image create NEW_IMAGE_NAME --container-format bare --disk-format qcow2 --file IMAGE_URL
最后,在dashboard界面臺中創建實例吧
openstack云鏡像下載地址:https://cloud.centos.org/centos/7/images/
官方文檔:https://docs.openstack.org/install-guide/
浙公網安備 33010602011771號