2025.3.19

admin
39
2025-03-19

越到后面实操越没味,一昧的复制粘贴,没一点趣味

source admin-openrc

#install nova placement

yum install -y openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler openstack-placement-api

#nova mysql

mysql -uroot -p000000 -e "create database IF NOT EXISTS nova ;"
mysql -uroot -p000000 -e "create database IF NOT EXISTS nova_api ;"
mysql -uroot -p000000 -e "create database IF NOT EXISTS nova_cell0 ;"
mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY '000000' ;"
mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '000000' ;"
mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '000000' ;"
mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY '000000' ;"
mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY '000000' ;"
mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY '000000' ;"

#placement mysql

mysql -uroot -p000000 -e "create database IF NOT EXISTS placement ;"
mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY '000000' ;"
mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY '000000' ;"
mysql -uroot -p000000 -e "flush privileges;"

#nova user role service endpoint

openstack user create --domain demo --password 000000 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://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

#placement user role service endpoint

openstack user create --domain demo --password 000000 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://controller:8778
openstack endpoint create --region RegionOne placement internal http://controller:8778
openstack endpoint create --region RegionOne placement admin http://controller:8778

#/etc/nova/nova.conf

crudini --set /etc/nova/nova.conf DEFAULT enabled_apis  osapi_compute,metadata
crudini --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:000000@controller
crudini --set /etc/nova/nova.conf DEFAULT my_ip $HOST_IP
crudini --set /etc/nova/nova.conf DEFAULT use_neutron  True
crudini --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
crudini --set /etc/nova/nova.conf api auth_strategy keystone
crudini --set /etc/nova/nova.conf api_database connection  mysql+pymysql://nova:000000@controller/nova_api
crudini --set /etc/nova/nova.conf database connection  mysql+pymysql://nova:000000@controller/nova
crudini --set /etc/nova/nova.conf glance api_servers http://controller:9292
crudini --set /etc/nova/nova.conf keystone_authtoken www_authenticate_uri  http://controller:5000
crudini --set /etc/nova/nova.conf keystone_authtoken auth_url  http://controller:5000
crudini --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller:11211
crudini --set /etc/nova/nova.conf keystone_authtoken auth_type password
crudini --set /etc/nova/nova.conf keystone_authtoken project_domain_name demo
crudini --set /etc/nova/nova.conf keystone_authtoken user_domain_name demo
crudini --set /etc/nova/nova.conf keystone_authtoken project_name service
crudini --set /etc/nova/nova.conf keystone_authtoken username nova
crudini --set /etc/nova/nova.conf keystone_authtoken password 000000
crudini --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp

#/etc/nova/nova.conf placement

crudini --set /etc/nova/nova.conf placement region_name RegionOne
crudini --set /etc/nova/nova.conf placement project_domain_name demo
crudini --set /etc/nova/nova.conf placement project_name service
crudini --set /etc/nova/nova.conf placement auth_type password
crudini --set /etc/nova/nova.conf placement user_domain_name demo
crudini --set /etc/nova/nova.conf placement auth_url http://controller:5000/v3
crudini --set /etc/nova/nova.conf placement username placement
crudini --set /etc/nova/nova.conf placement password 000000
crudini --set /etc/nova/nova.conf vnc enabled true

下面的两个$HOST_IP改成自己的ip地址

crudini --set /etc/nova/nova.conf vnc server_listen $HOST_IP

crudini --set /etc/nova/nova.conf vnc server_proxyclient_address $HOST_IP

crudini --set /etc/nova/nova.conf scheduler discover_hosts_in_cells_interval 300

#/etc/placement/placement.conf

crudini --set /etc/placement/placement.conf api auth_strategy keystone
crudini --set /etc/placement/placement.conf keystone_authtoken auth_url  http://controller:5000/v3
crudini --set /etc/placement/placement.conf keystone_authtoken memcached_servers controller:11211
crudini --set /etc/placement/placement.conf keystone_authtoken auth_type password
crudini --set /etc/placement/placement.conf keystone_authtoken project_domain_name demo
crudini --set /etc/placement/placement.conf keystone_authtoken user_domain_name demo
crudini --set /etc/placement/placement.conf keystone_authtoken project_name service
crudini --set /etc/placement/placement.conf keystone_authtoken username placement
crudini --set /etc/placement/placement.conf keystone_authtoken password 000000
crudini --set /etc/placement/placement.conf placement_database connection mysql+pymysql://placement:000000@controller/placement

#su placement mysql

su -s /bin/sh -c "placement-manage db sync" placement

#/etc/httpd/conf.d/00-placement-api.conf

echo "<Directory /usr/bin>" >> /etc/httpd/conf.d/00-placement-api.conf
echo "  <IfVersion >= 2.4>" >> /etc/httpd/conf.d/00-placement-api.conf
echo "    Require all granted" >> /etc/httpd/conf.d/00-placement-api.conf
echo "  </IfVersion>" >> /etc/httpd/conf.d/00-placement-api.conf
echo "  <IfVersion < 2.4>" >> /etc/httpd/conf.d/00-placement-api.conf
echo "    Order allow,deny" >> /etc/httpd/conf.d/00-placement-api.conf
echo "    Allow from all" >> /etc/httpd/conf.d/00-placement-api.conf
echo "  </IfVersion>" >> /etc/httpd/conf.d/00-placement-api.conf
echo "</Directory>" >> /etc/httpd/conf.d/00-placement-api.conf

systemctl restart httpd

#su nova mysql

su -s /bin/sh -c "nova-manage api_db sync" nova

su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

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

#restart

systemctl enable openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

systemctl restart openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

systemctl restart httpd memcached

动物装饰