环境配置
1、关闭防火墙等安全策略,修改主机名,便于主机映射等操作
控制节点操作
1 | systemctl stop firewalld && setenforce 0 && hostnamectl set -hostname ct && su - |
计算节点操作
1 | systemctl stop firewalld && setenforce 0 && hostnamectl set -hostname c1 && su - |
2、更新组件
控制节点操作(执行多次,确保服务已更新)
1 | yum -y install net-tools bash-completion vim gcc gcc-c++ make pcre pcre-devel expat-devel cmake bzip2 lrzsz <br>yum -y install centos-release-openstack-train python-openstackclient openstack-selinux openstack-utils |
计算节点操作(执行多次,确保服务已更新)
1 | yum -y install net-tools bash-completion vim gcc gcc-c++ make pcre pcre-devel expat-devel cmake bzip2 lrzsz <br>yum -y install centos-release-openstack-train python-openstackclient openstack-selinux openstack-utils |
确保组件为最新版本,否则后期配置出错,只能重新部署
3、设置主机映射
控制节点操作
1 2 | echo "192.168.228.147 ct" >> /etc/hosts echo "192.168.228.154 c1" >> /etc/hosts |
计算节点操作
1 2 | echo "192.168.228.147 ct" >> /etc/hosts echo "192.168.228.154 c1" >> /etc/hosts |
4、设置免密登陆
控制节点操作
1 2 3 4 | ssh-keygen -t rsa #一路回车 ssh-copy-id ct ssh-copy-id c1 |
5、配置时间同步
控制节点操作
计算节点操作
6、配置环境部署 mariadb
控制节点操作
1 | yum -y install mariadb mariadb-server python2-PyMySQL |
mariadb:是mysql的一个分支,是一款完全兼容mysql的开源软件
mariadb-server:数据库服务
python2-PyMySQL:用于openstack的控制端连接mysql所需要的模块,如果不安装,则无法连接数据库;此包只安装在控制端
1 | yum -y install libibverbs |
libibverbs:远程直接内存访问
添加MySQL 子配置文件
1 2 3 4 5 6 7 8 9 | vim /etc/my.cnf.d/openstack.cnf [mysqld] bind-address = 192.168.228.147 default -storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character- set -server = utf8 |
开启服务
1 | systemctl enable mariadb && systemctl start mariadb |
执行 mariadb
配置操作
1 2 3 4 5 6 7 8 9 10 11 | mysql_secure_installation #执行安装数据库脚本 Enter current password for root (enter for none): #输入当前root密码,回车 OK, successfully used password, moving on ... Set root password? [Y/n] Y #是否需要更改root密码,Y确认 Remove anonymous users? [Y/n] Y #是否移除其他用户,Y确认移除 ... Success! Disallow root login remotely? [Y/n] n #是否不允许root用户远程登陆,输入n,允许root用户远程登陆 ... skipping. Remove test database and access to it? [Y/n] Y #是否删除test测试库,Y确认删除 Reload privilege tables now? [Y/n] Y #是否刷新规则,Y确认刷新 |
7、安装rabbit mq
1 | yum -y install rabbitmq-server |
1 2 3 4 5 6 7 8 9 10 11 12 | ===配置服务,启动RabbitMQ服务,并设置其开机启动=== systemctl enable rabbitmq-server.service systemctl start rabbitmq-server.service ===创建消息队列用户,用于controler和 计算节点连接rabbitmq的认证(关联)=== rabbitmqctl add_user openstack RABBIT_PASS ===配置openstack用户的操作权限(正则,配置读写权限)=== rabbitmqctl set_permissions openstack ".*" ".*" ".*" 查看rabbitmq插件列表 rabbitmq-plugins list |
1 2 3 4 5 | 开启rabbitmq的web管理界面的插件,端口为15672 rabbitmq-plugins enable rabbitmq_management 此时可查看25672和5672 两个端口(5672是Rabbitmq默认端口,25672是Rabbit的测试工具CLI的端口) netstat -natp | grep 5672 |
登陆rabbit mq 默认账号和密码都是guest,点击Login即可进入以下界面
8、安装 memcached
1 | yum install -y memcached python-memcached |
修改memcached 配置文件
1 2 3 4 5 6 | vim /etc/sysconfig/memcached PORT= "11211" #memcached端口11211 USER= "memcached" #用户memcached MAXCONN= "1024" #最大连接数1024 CACHESIZE= "64" #字符集大小64位 OPTIONS= "-l 127.0.0.1,::1,ct" #监听地址,127.0.0.1:本地地址,::是ipv6地址,ct是本地VMnet1地址 |
1 2 3 4 5 | 开启服务开机自启,启动服务 systemctl enable memcached systemctl start memcached netstat -nautp | grep 11211 |
9、安装etcd
1 | yum -y install etcd |
1 2 3 4 5 6 7 8 9 10 11 12 13 | cd /etc/etcd/ vim etcd.conf 删除所有内容,复制粘贴以下内容并进行修改 ETCD_DATA_DIR= "/var/lib/etcd/default.etcd" ETCD_LISTEN_PEER_URLS= "http://192.168.228.147:2380" ETCD_LISTEN_CLIENT_URLS= "http://192.168.228.147:2379" ETCD_NAME= "ct" ETCD_INITIAL_ADVERTISE_PEER_URLS= "http://192.168.228.147:2380" ETCD_ADVERTISE_CLIENT_URLS= "http://192.168.228.147:2379" ETCD_INITIAL_CLUSTER= "ct=http://192.168.228.147:2380" ETCD_INITIAL_CLUSTER_TOKEN= "etcd-cluster-01" ETCD_INITIAL_CLUSTER_STATE= "new" |
1 2 3 4 | systemctl enable etcd.service systemctl start etcd.service netstat -anutp |grep 2379 netstat -anutp |grep 2380 |
10、安装keystone
修改MySQL
1 2 3 4 5 | mysql -u root -p123456 MariaDB [(none)]> CREATE DATABASE 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 '<code class="has-numbering" style="position: unset">KEYSTONE_DBPASS</code>' ; |
1 | yum -y install openstack-keystone httpd mod_wsgi |
1 2 3 4 | openstack-config -- set /etc/keystone/keystone.conf database connection mysql+pymysql: //keystone:KEYSTONE_DBPASS@ct/keystone openstack-config -- set /etc/keystone/keystone.conf token provider fernet Fernet:一种安全的消息传递格式 |
初始化数据库
1 | su -s /bin/sh -c "keystone-manage db_sync" keystone |
初始化 fernet 密钥存储库
1 2 3 | keystone-manage fernet_setup --keystone-user keystone --keystone- group keystone keystone-manage credential_setup --keystone-user keystone --keystone- group keystone |
配置bootstrap身份认证服务
1 2 3 4 5 | keystone-manage bootstrap --bootstrap-password ADMIN_PASS \ --bootstrap-admin-url http: //ct:5000/v3/ \ --bootstrap- internal -url http: //ct:5000/v3/ \ --bootstrap- public -url http: //ct:5000/v3/ \ --bootstrap-region-id RegionOne |
配置 apache http 服务器
1 | echo "ServerName controller" >> /etc/httpd/conf/httpd.conf |
创建httpd 配置文件
1 2 3 4 5 6 | ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ 开启apache服务 systemctl enable httpd systemctl start httpd |
配置管理员账户
1 2 3 4 5 6 7 8 9 10 | cat >> ~/.bashrc << EOF 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: //ct:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 EOF |
1 2 3 4 | source ~/.bashrc 通过配置环境变量,可以使用openstack命令进行一些操作 openstack user list |
创建open stack 域 项目 用户 角色
1 | openstack project create --domain default --description "Service Project" service |
创建角色
1 | openstack role create useropenstack role list |
1 2 3 | 查看是否可以不指定密码就可以获取到token信息(验证认证服务) openstack token issue |
11、部署glance组件
1 2 3 4 5 | mysql -u root -p CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO 'glance' @ 'localhost' IDENTIFIED BY 'GLANCE_DBPASS' ; GRANT ALL PRIVILEGES ON glance.* TO 'glance' @ '%' IDENTIFIED BY 'GLANCE_DBPASS' ; flush privileges; |
创建用户修改配置文件
1 2 3 4 5 6 7 8 9 10 11 | openstack user create --domain default --password GLANCE_PASS glance openstack role add --project service --user glance admin #添加glance用户到service项目中,权限admin openstack service create --name glance --description "OpenStack Image" image #创建一个service服务 名叫glance 类型image 创建后openstack service list openstack endpoint create --region RegionOne image public http: //ct:9292 #创建镜像api端点 openstack endpoint create --region RegionOne image internal http: //ct:9292 openstack endpoint create --region RegionOne image admin http: //ct:9292 |
1 2 3 4 5 6 | 安装 openstack-glance 软件包 yum -y install openstack-glance ===添加glance-api.conf配置=== cp -a /etc/glance/glance-api.conf{,.bak} grep -Ev '^$|#' /etc/glance/glance-api.conf.bak > /etc/glance/glance-api.conf |
传参
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | openstack-config -- set /etc/glance/glance-api.conf database connection mysql+pymysql: //glance:GLANCE_DBPASS@ct/glance openstack-config -- set /etc/glance/glance-api.conf keystone_authtoken www_authenticate_uri http: //ct:5000 openstack-config -- set /etc/glance/glance-api.conf keystone_authtoken auth_url http: //ct:5000 openstack-config -- set /etc/glance/glance-api.conf keystone_authtoken memcached_servers ct: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 service openstack-config -- set /etc/glance/glance-api.conf keystone_authtoken username glance openstack-config -- set /etc/glance/glance-api.conf keystone_authtoken password GLANCE_PASS openstack-config -- set /etc/glance/glance-api.conf paste_deploy flavor keystone openstack-config -- set /etc/glance/glance-api.conf glance_store stores file,http openstack-config -- set /etc/glance/glance-api.conf glance_store default_store file openstack-config -- set /etc/glance/glance-api.conf glance_store filesystem_store_datadir / var /lib/glance/images/ cd /etc/glance cat glance-api.conf |
1 2 3 | ===修改glance-registry.conf 配置文件=== cp -a /etc/glance/glance-registry.conf{,.bak} grep -Ev '^$|#' /etc/glance/glance-registry.conf.bak > /etc/glance/glance-registry.conf |
传参
1 2 3 4 5 6 7 8 9 10 11 12 13 | openstack-config -- set /etc/glance/glance-registry.conf database connection mysql+pymysql: //glance:GLANCE_DBPASS@ct/glance openstack-config -- set /etc/glance/glance-registry.conf keystone_authtoken www_authenticate_uri http: //ct:5000 openstack-config -- set /etc/glance/glance-registry.conf keystone_authtoken auth_url http: //ct:5000 openstack-config -- set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers ct:11211 openstack-config -- set /etc/glance/glance-registry.conf keystone_authtoken auth_type password openstack-config -- set /etc/glance/glance-registry.conf keystone_authtoken project_domain_name Default openstack-config -- set /etc/glance/glance-registry.conf keystone_authtoken user_domain_name Default openstack-config -- set /etc/glance/glance-registry.conf keystone_authtoken project_name service openstack-config -- set /etc/glance/glance-registry.conf keystone_authtoken username glance openstack-config -- set /etc/glance/glance-registry.conf keystone_authtoken password GLANCE_PASS openstack-config -- set /etc/glance/glance-registry.conf paste_deploy flavor keystone cat glance-registry.conf |
初始化数据库
1 | su -s /bin/sh -c "glance-manage db_sync" glance |
1 2 3 4 5 6 7 8 9 10 | ===开启glance服务(此处开启之后会生成存放镜像的目录/ var /lib/glance/image)=== systemctl enable openstack-glance-api.service systemctl start openstack-glance-api.service ===查看端口(也可以使用lsof -i:9292) netstat -natp | grep 9292 ===赋予openstack-glance-api.service服务对存储设备的可写权限(-h:值对符号连接/软链接的文件修改)=== chown -hR glance:glance / var /lib/glance/ |
导入镜像
1 2 3 4 | 先上传cirros镜像到控制节点= cd /opt rz cirros-0.3.5-x86_64-disk.img openstack image create --file cirros-0.3.5-x86_64-disk.img --disk-format qcow2 --container-format bare -- public cirros<br><br>openstack image list<br>glance image-list<br> |
12、部署
placement
创建数据库实例和用户
1 2 3 4 5 6 | mysql -uroot -p CREATE DATABASE placement; GRANT ALL PRIVILEGES ON placement.* TO 'placement' @ 'localhost' IDENTIFIED BY 'PLACEMENT_DBPASS' ; GRANT ALL PRIVILEGES ON placement.* TO 'placement' @ '%' IDENTIFIED BY 'PLACEMENT_DBPASS' ; flush privileges; exit; |
创建服务用户
1 2 3 4 5 6 | openstack user create --domain default --password PLACEMENT_PASS placement openstack role add --project service --user placement admin openstack service create --name placement --description "Placement API" placement openstack endpoint create --region RegionOne placement public http: //ct:8778 openstack endpoint create --region RegionOne placement internal http: //ct:8778 openstack endpoint create --region RegionOne placement admin http: //ct:8778 |
安装服务
1 | yum -y install openstack-placement-api |
修改placement配置文件/etc/placement/placement.conf
1 2 3 4 5 6 7 8 9 10 11 12 | cp -a /etc/placement/placement.conf{,.bak} grep -Ev '^$|#' /etc/placement/placement.conf.bak > /etc/placement/placement.conf openstack-config -- set /etc/placement/placement.conf placement_database connection mysql+pymysql: //placement:PLACEMENT_DBPASS@ct/placement openstack-config -- set /etc/placement/placement.conf api auth_strategy keystone openstack-config -- set /etc/placement/placement.conf keystone_authtoken auth_url http: //ct:5000/v3 openstack-config -- set /etc/placement/placement.conf keystone_authtoken memcached_servers ct:11211 openstack-config -- set /etc/placement/placement.conf keystone_authtoken auth_type password openstack-config -- set /etc/placement/placement.conf keystone_authtoken project_domain_name Default openstack-config -- set /etc/placement/placement.conf keystone_authtoken user_domain_name Default openstack-config -- set /etc/placement/placement.conf keystone_authtoken project_name service openstack-config -- set /etc/placement/placement.conf keystone_authtoken username placement openstack-config -- set /etc/placement/placement.conf keystone_authtoken password PLACEMENT_PASS |
导入数据库
1 | su -s /bin/sh -c "placement-manage db sync" placement |
修改apache 配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 | cd /etc/httpd/conf.d vim 00-placement-api.conf ==末行添加== <Directory /usr/bin> <IfVersion >= 2.4> Require all granted </IfVersion> <IfVersion < 2.4> Order allow,deny Allow from all </IfVersion> </Directory> |
重启
1 | systemctl restart httpd |
测试
1 2 3 4 5 6 7 8 9 | curl 测试访问 curl ct:8778 查看端口占用(netstat、lsof) netstat -natp | grep 8778 检查placement状态 placement-status upgrade check |
13、nova组件安装
组件部署位置
控制节点
1 2 3 4 | nova-api(nova主服务) nova-scheduler(nova调度服务) nova-conductor(nova数据库服务,提供数据库访问) nova-novncproxy(nova的vnc服务,提供实例的控制台) |
计算节点
1 | nova-compute(nova计算服务) |
创建nova 数据库用户授权
1 2 3 4 5 6 7 8 9 10 11 12 | mysql -uroot -p CREATE DATABASE nova_api; CREATE DATABASE nova; CREATE DATABASE nova_cell0; GRANT ALL PRIVILEGES ON nova_api.* TO 'nova' @ 'localhost' IDENTIFIED BY 'NOVA_DBPASS' ; GRANT ALL PRIVILEGES ON nova_api.* TO 'nova' @ '%' IDENTIFIED BY 'NOVA_DBPASS' ; GRANT ALL PRIVILEGES ON nova.* TO 'nova' @ 'localhost' IDENTIFIED BY 'NOVA_DBPASS' ; GRANT ALL PRIVILEGES ON nova.* TO 'nova' @ '%' IDENTIFIED BY 'NOVA_DBPASS' ; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova' @ 'localhost' IDENTIFIED BY 'NOVA_DBPASS' ; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova' @ '%' IDENTIFIED BY 'NOVA_DBPASS' ; flush privileges; exit; |
创建nova用户
1 2 3 4 5 6 | openstack user create --domain default --password NOVA_PASS nova openstack role add --project service --user nova admin openstack service create --name nova --description "OpenStack Compute" compute openstack endpoint create --region RegionOne compute public http: //ct:8774/v2.1 openstack endpoint create --region RegionOne compute internal http: //ct:8774/v2.1 openstack endpoint create --region RegionOne compute admin http: //ct:8774/v2.1 |
安装nova组件
1 | yum -y install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler |
修改配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | cp -a /etc/nova/nova.conf{,.bak} grep -Ev '^$|#' /etc/nova/nova.conf.bak > /etc/nova/nova.conf ==传参== openstack-config -- set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata ==修改为ct的IP(内部IP)== openstack-config -- set /etc/nova/nova.conf DEFAULT my_ip 192.168.228.147 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:RABBIT_PASS@ct openstack-config -- set /etc/nova/nova.conf api_database connection mysql+pymysql: //nova:NOVA_DBPASS@ct/nova_api openstack-config -- set /etc/nova/nova.conf database connection mysql+pymysql: //nova:NOVA_DBPASS@ct/nova openstack-config -- set /etc/nova/nova.conf placement_database connection mysql+pymysql: //placement:PLACEMENT_DBPASS@ct/placement openstack-config -- set /etc/nova/nova.conf api auth_strategy keystone openstack-config -- set /etc/nova/nova.conf keystone_authtoken auth_url http: //ct:5000/v3 openstack-config -- set /etc/nova/nova.conf keystone_authtoken memcached_servers ct: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 service openstack-config -- set /etc/nova/nova.conf keystone_authtoken username nova openstack-config -- set /etc/nova/nova.conf keystone_authtoken password NOVA_PASS openstack-config -- set /etc/nova/nova.conf vnc enabled true openstack-config -- set /etc/nova/nova.conf vnc server_listen ' $my_ip' openstack-config -- set /etc/nova/nova.conf vnc server_proxyclient_address ' $my_ip' openstack-config -- set /etc/nova/nova.conf glance api_servers http: //ct: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 service 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: //ct:5000/v3 openstack-config -- set /etc/nova/nova.conf placement username placement openstack-config -- set /etc/nova/nova.conf placement password PLACEMENT_PASS |
初始化数据库
1 | su -s /bin/sh -c "nova-manage api_db sync" nova |
注册cell0 数据库
1 2 3 | su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova<br>su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova su -s /bin/sh -c "nova-manage db sync" nova su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova |
启动nova
1 2 | systemctl start openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service systemctl enable openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service |
检查端口
1 2 | netstat -tnlup|egrep '8774|8775' curl http: //ct:8774 |
计算节点操作
安装计算节点
1 | yum -y install openstack-nova-compute |
配置配置文件 改计算节点IP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | cp -a /etc/nova/nova.conf{,.bak} grep -Ev '^$|#' /etc/nova/nova.conf.bak > /etc/nova/nova.conf ==传参== openstack-config -- set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata openstack-config -- set /etc/nova/nova.conf DEFAULT transport_url rabbit: //openstack:RABBIT_PASS@ct ==此处为计算节点内部IP,c1、c2不同== openstack-config -- set /etc/nova/nova.conf DEFAULT my_ip 192.168.228.154 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 api auth_strategy keystone openstack-config -- set /etc/nova/nova.conf keystone_authtoken auth_url http: //ct:5000/v3 openstack-config -- set /etc/nova/nova.conf keystone_authtoken memcached_servers ct: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 service openstack-config -- set /etc/nova/nova.conf keystone_authtoken username nova openstack-config -- set /etc/nova/nova.conf keystone_authtoken password NOVA_PASS 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: //ct:6080/vnc_auto.html openstack-config -- set /etc/nova/nova.conf glance api_servers http: //ct: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 service 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: //ct:5000/v3 openstack-config -- set /etc/nova/nova.conf placement username placement openstack-config -- set /etc/nova/nova.conf placement password PLACEMENT_PASS openstack-config -- set /etc/nova/nova.conf libvirt virt_type qemu |
开启服务
1 | systemctl enable libvirtd.service openstack-nova-compute.service && systemctl start libvirtd.service openstack-nova-compute.service |
控制节点操作
查看是否注册了计算节点
1 | openstack compute service list --service nova-compute |
扫描当前openstack中有哪些计算节点可用
1 | su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova |
修改控制端nova的主配置文件
1 2 3 4 5 6 7 | vim /etc/nova/nova.conf [scheduler] discover_hosts_in_cells_interval = 300 ==重启服务== systemctl restart openstack-nova-api.service |
检查 nova 的各个服务是否都是正常
1 | openstack compute service list |
查看各个组件的 api 是否正常
1 | openstack catalog list |
查看是否能够拿到镜像
1 | openstack image list |
查看cell的api和placement的api是否正常,只要其中一个有误,后期无法创建虚拟机
1 | nova-status upgrade check |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统