Centos8 minimal deployment and installation of OpenStack Ussuri detailed tutorial

Centos8 minimal deployment and installation of OpenStack Ussuri tutorial is as follows:

#! /bin/bash
# Centos8 minimal deployment installation OpenStack Ussuri
# There are two hosts in total, one control node and one computing node
#1、 The memory of the control node is 4096M. Dual network cards, respectively eth0:10.0.0.11,eth1:10.0.0.12
#2、 The computing node memory is 2048M. Dual network cards, respectively eth0:10.0.0.31,eth1:10.0.0.32
# Set up Alibaba Cloud Yum source
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
rm -f /etc/yum.repos.d/CentOS-AppStream.repo /etc/yum.repos.d/CentOS-PowerTools.repo /etc/yum.repos.d/CentOS-centosplus.repo /etc/yum.repos.d/CentOS-Extras.repo && rm -rf /var/cache/yum && yum makecache && yum -y update && yum -y autoremove
# Turn off the firewall
systemctl stop firewalld && systemctl disable firewalld
# Turn off SELinux
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g"/etc/selinux/config
# Close the swap partition
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g'/etc/fstab
# Set up the kernel
modprobe bridge
modprobe br_netfilter
cat >/etc/sysconfig/modules/neutron.modules <<EOF
#! /bin/bash
modprobe -- bridge
modprobe -- br_netfilter
EOF
chmod 755/etc/sysconfig/modules/neutron.modules && bash /etc/sysconfig/modules/neutron.modules
echo "vm.max_map_count=262144">>/etc/sysctl.conf
echo "net.ipv4.ip_forward=1">>/etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables=1">>/etc/sysctl.conf
echo "net.bridge.bridge-nf-call-ip6tables=1">>/etc/sysctl.conf
sysctl -p
# Set time synchronization
yum install -y chrony && yum -y autoremove
sed -i '/^pool/d'/etc/chrony.conf
sed -i '/^server/d'/etc/chrony.conf
echo "pool ntp.aliyun.com iburst">>/etc/chrony.conf
systemctl start chronyd.service && systemctl enable chronyd.service
# Control node setting hostname
hostnamectl set-hostname controller
# Compute node setting hostname
hostnamectl set-hostname compute1
# Add host
echo "10.0.0.11 controller">>/etc/hosts
echo "10.0.0.31 compute1">>/etc/hosts
# Install basic components
yum install -y centos-release-openstack-ussuri
yum config-manager --set-enabled PowerTools
yum upgrade -y
yum install -y python3-openstackclient
# Install Mariadb on the control node
yum install -y mariadb mariadb-server python2-PyMySQL
tee /etc/my.cnf.d/openstack.cnf <<-'EOF'[mysqld]
bind-address =10.0.0.11default-storage-engine = innodb
innodb_file_per_table = on
max_connections =4096
collation-server = utf8_general_ci
character-set-server = utf8
EOF
systemctl enable mariadb.service && systemctl start mariadb.service
echo -e "\nY\n123456\n123456\nY\nn\nY\nY\n"| mysql_secure_installation
# Install RabbitMQ on the control node
yum install -y rabbitmq-server
systemctl enable rabbitmq-server.service && systemctl start rabbitmq-server.service
rabbitmqctl add_user openstack 123456
rabbitmqctl set_permissions openstack ".*"".*"".*"
# Install Memcached on the control node
yum install -y memcached python3-memcached
sed -i "s/-l 127.0.0.1,::1/-l 127.0.0.1,::1,controller/g"/etc/sysconfig/memcached
systemctl enable memcached.service && systemctl start memcached.service
# Install Etcd on the control node
yum install -y etcd
rm -f /etc/etcd/etcd.conf
tee /etc/etcd/etcd.conf <<-'EOF'
#[ Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://10.0.0.11:2380"
ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"
ETCD_NAME="controller"
#[ Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"
ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
EOF
systemctl enable etcd && systemctl start etcd
# Install Identity service on the control node
mysql -uroot -p123456 -e "CREATE DATABASE keystone"
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '123456'"
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '123456'"
yum install -y openstack-keystone httpd python3-mod_wsgi
sed -i "556c connection = mysql+pymysql://keystone:123456@controller/keystone"/etc/keystone/keystone.conf
sed -i "2418c provider = fernet"/etc/keystone/keystone.conf
su -s /bin/sh -c "keystone-manage db_sync" 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 123456 \
- - 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
echo "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.service
echo "export OS_USERNAME=admin">>/etc/profile
echo "export OS_PASSWORD=123456">>/etc/profile
echo "export OS_PROJECT_NAME=admin">>/etc/profile
echo "export OS_USER_DOMAIN_NAME=Default">>/etc/profile
echo "export OS_PROJECT_DOMAIN_NAME=Default">>/etc/profile
echo "export OS_AUTH_URL=http://controller:5000/v3">>/etc/profile
echo "export OS_IDENTITY_API_VERSION=3">>/etc/profile
source /etc/profile
openstack project create --domain default--description "Service Project" service
# Install Image service on control node
mysql -uroot -p123456 -e "CREATE DATABASE glance"
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY '123456'"
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '123456'"
openstack user create --domain default--password 123456 glance
openstack role add --project service --user glance admin
openstack service create --name glance --description "OpenStack Image" image
openstack endpoint create --region RegionOne image public http://controller:9292
openstack endpoint create --region RegionOne image internal http://controller:9292
openstack endpoint create --region RegionOne image admin http://controller:9292
yum install -y openstack-glance
sed -i "2062c connection = mysql+pymysql://glance:123456@controller/glance"/etc/glance/glance-api.conf
sed -i "5034c www_authenticate_uri = http://controller:5000"/etc/glance/glance-api.conf
sed -i "5035c auth_url = http://controller:5000"/etc/glance/glance-api.conf
sed -i "5036c memcached_servers = controller:11211"/etc/glance/glance-api.conf
sed -i "5037c auth_type = password"/etc/glance/glance-api.conf
sed -i "5038c project_domain_name = Default"/etc/glance/glance-api.conf
sed -i "5039c user_domain_name = Default"/etc/glance/glance-api.conf
sed -i "5040c project_name = service"/etc/glance/glance-api.conf
sed -i "5041c username = glance"/etc/glance/glance-api.conf
sed -i "5042c password = 123456"/etc/glance/glance-api.conf
sed -i "5678c flavor = keystone"/etc/glance/glance-api.conf
sed -i "3413c stores = file,http"/etc/glance/glance-api.conf
sed -i "3414c default_store = file"/etc/glance/glance-api.conf
sed -i "3415c filesystem_store_datadir = /var/lib/glance/images/"/etc/glance/glance-api.conf
su -s /bin/sh -c "glance-manage db_sync" glance
systemctl enable openstack-glance-api.service && systemctl start openstack-glance-api.service
# Placement service on the control node
mysql -uroot -p123456 -e "CREATE DATABASE placement"
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY '123456'"
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY '123456'"
openstack user create --domain default--password 123456 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
yum install -y openstack-placement-api
sed -i "507c connection = mysql+pymysql://placement:123456@controller/placement"/etc/placement/placement.conf
sed -i "192c auth_strategy = keystone"/etc/placement/placement.conf
sed -i "241c auth_url = http://controller:5000/v3"/etc/placement/placement.conf
sed -i "242c memcached_servers = controller:11211"/etc/placement/placement.conf
sed -i "243c auth_type = password"/etc/placement/placement.conf
sed -i "244c project_domain_name = Default"/etc/placement/placement.conf
sed -i "245c user_domain_name = Default"/etc/placement/placement.conf
sed -i "246c project_name = service"/etc/placement/placement.conf
sed -i "247c username = placement"/etc/placement/placement.conf
sed -i "248c password = 123456"/etc/placement/placement.conf
su -s /bin/sh -c "placement-manage db sync" placement
systemctl restart httpd
# Install Compute service on the control node
mysql -uroot -p123456 -e "CREATE DATABASE nova_api"
mysql -uroot -p123456 -e "CREATE DATABASE nova"
mysql -uroot -p123456 -e "CREATE DATABASE nova_cell0"
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '123456'"
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY '123456'"
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY '123456'"
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '123456'"
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY '123456'"
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY '123456'"
openstack user create --domain default--password 123456 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
yum install -y openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler
sed -i "2c enabled_apis = osapi_compute,metadata"/etc/nova/nova.conf
sed -i "3c transport_url = rabbit://openstack:123456@controller:5672/"/etc/nova/nova.conf
sed -i "4c my_ip = 10.0.0.11"/etc/nova/nova.conf
sed -i "1079c connection = mysql+pymysql://nova:123456@controller/nova_api"/etc/nova/nova.conf
sed -i "1622c connection = mysql+pymysql://nova:123456@controller/nova"/etc/nova/nova.conf
sed -i "872c auth_strategy = keystone"/etc/nova/nova.conf
sed -i "2561c www_authenticate_uri = http://controller:5000/"/etc/nova/nova.conf
sed -i "2562c auth_url = http://controller:5000/"/etc/nova/nova.conf
sed -i "2563c memcached_servers = controller:11211"/etc/nova/nova.conf
sed -i "2564c auth_type = password"/etc/nova/nova.conf
sed -i "2565c project_domain_name = Default"/etc/nova/nova.conf
sed -i "2566c user_domain_name = Default"/etc/nova/nova.conf
sed -i "2567c project_name = service"/etc/nova/nova.conf
sed -i "2568c username = nova"/etc/nova/nova.conf
sed -i "2569c password = 123456"/etc/nova/nova.conf
sed -i "5171c enabled = true"/etc/nova/nova.conf
sed -i '5172c server_listen = $my_ip'/etc/nova/nova.conf
sed -i '5173c server_proxyclient_address = $my_ip'/etc/nova/nova.conf
sed -i "1937c api_servers = http://controller:9292"/etc/nova/nova.conf
sed -i "3571c lock_path = /var/lib/nova/tmp"/etc/nova/nova.conf
sed -i "4093c region_name = RegionOne"/etc/nova/nova.conf
sed -i "4094c project_domain_name = Default"/etc/nova/nova.conf
sed -i "4095c project_name = service"/etc/nova/nova.conf
sed -i "4096c auth_type = password"/etc/nova/nova.conf
sed -i "4097c user_domain_name = Default"/etc/nova/nova.conf
sed -i "4098c auth_url = http://controller:5000/v3"/etc/nova/nova.conf
sed -i "4099c username = placement"/etc/nova/nova.conf
sed -i "4100c password = 123456"/etc/nova/nova.conf
sed -i "4509c discover_hosts_in_cells_interval = 300"/etc/nova/nova.conf
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
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
# Install Compute service on compute nodes
yum install -y openstack-nova-compute
sed -i "2c enabled_apis = osapi_compute,metadata"/etc/nova/nova.conf
sed -i "3c transport_url = rabbit://openstack:123456@controller"/etc/nova/nova.conf
sed -i "4c my_ip = 10.0.0.31"/etc/nova/nova.conf
sed -i "872c auth_strategy = keystone"/etc/nova/nova.conf
sed -i "2561c www_authenticate_uri = http://controller:5000/"/etc/nova/nova.conf
sed -i "2562c auth_url = http://controller:5000/"/etc/nova/nova.conf
sed -i "2563c memcached_servers = controller:11211"/etc/nova/nova.conf
sed -i "2564c auth_type = password"/etc/nova/nova.conf
sed -i "2565c project_domain_name = Default"/etc/nova/nova.conf
sed -i "2566c user_domain_name = Default"/etc/nova/nova.conf
sed -i "2567c project_name = service"/etc/nova/nova.conf
sed -i "2568c username = nova"/etc/nova/nova.conf
sed -i "2569c password = 123456"/etc/nova/nova.conf
sed -i "5171c enabled = true"/etc/nova/nova.conf
sed -i "5172c server_listen = 0.0.0.0"/etc/nova/nova.conf
sed -i '5173c server_proxyclient_address = $my_ip'/etc/nova/nova.conf
sed -i "5174c novncproxy_base_url = http://controller:6080/vnc_auto.html"/etc/nova/nova.conf
sed -i "1937c api_servers = http://controller:9292"/etc/nova/nova.conf
sed -i "3571c lock_path = /var/lib/nova/tmp"/etc/nova/nova.conf
sed -i "4093c region_name = RegionOne"/etc/nova/nova.conf
sed -i "4094c project_domain_name = Default"/etc/nova/nova.conf
sed -i "4095c project_name = service"/etc/nova/nova.conf
sed -i "4096c auth_type = password"/etc/nova/nova.conf
sed -i "4097c user_domain_name = Default"/etc/nova/nova.conf
sed -i "4098c auth_url = http://controller:5000/v3"/etc/nova/nova.conf
sed -i "4099c username = placement"/etc/nova/nova.conf
sed -i "4100c password = 123456"/etc/nova/nova.conf
# Execute the command to check whether CPU virtualization is supported. If it is greater than 0, it is supported.
egrep -c '(vmx|svm)'/proc/cpuinfo
# If it is not supported, you need to execute the following command
sed -i "2722c virt_type = qemu"/etc/nova/nova.conf
systemctl enable libvirtd.service openstack-nova-compute.service && systemctl start libvirtd.service openstack-nova-compute.service
# The control node computing node will have a delay from registration to discovery, according to discover_hosts_in_cells_interval Configure the polling discovery time, you can execute the following command to manually discover the computing node
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
# Install Networking service on the control node
mysql -uroot -p123456 -e "CREATE DATABASE neutron"
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY '123456'"
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY '123456'"
openstack user create --domain default--password 123456 neutron
openstack role add --project service --user neutron admin
openstack service create --name neutron --description "OpenStack Networking" network
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
yum install -y openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
# Configure server components
sed -i "2c core_plugin = ml2"/etc/neutron/neutron.conf
sed -i "3c service_plugins = router"/etc/neutron/neutron.conf
sed -i "4c allow_overlapping_ips = true"/etc/neutron/neutron.conf
sed -i "5c transport_url = rabbit://openstack:123456@controller"/etc/neutron/neutron.conf
sed -i "6c auth_strategy = keystone"/etc/neutron/neutron.conf
sed -i "7c notify_nova_on_port_status_changes = true"/etc/neutron/neutron.conf
sed -i "8c notify_nova_on_port_data_changes = true"/etc/neutron/neutron.conf
sed -i "254c connection = mysql+pymysql://neutron:123456@controller/neutron"/etc/neutron/neutron.conf
sed -i "359c www_authenticate_uri = http://controller:5000"/etc/neutron/neutron.conf
sed -i "360c auth_url = http://controller:5000"/etc/neutron/neutron.conf
sed -i "361c memcached_servers = controller:11211"/etc/neutron/neutron.conf
sed -i "362c auth_type = password"/etc/neutron/neutron.conf
sed -i "363c project_domain_name = default"/etc/neutron/neutron.conf
sed -i "364c user_domain_name = default"/etc/neutron/neutron.conf
sed -i "365c project_name = service"/etc/neutron/neutron.conf
sed -i "366c username = neutron"/etc/neutron/neutron.conf
sed -i "367c password = 123456"/etc/neutron/neutron.conf
sed -i "521c lock_path = /var/lib/neutron/tmp"/etc/neutron/neutron.conf
echo "[nova]">>/etc/neutron/neutron.conf
echo "auth_url = http://controller:5000">>/etc/neutron/neutron.conf
echo "auth_type = password">>/etc/neutron/neutron.conf
echo "project_domain_name = default">>/etc/neutron/neutron.conf
echo "user_domain_name = default">>/etc/neutron/neutron.conf
echo "region_name = RegionOne">>/etc/neutron/neutron.conf
echo "project_name = service">>/etc/neutron/neutron.conf
echo "username = nova">>/etc/neutron/neutron.conf
echo "password = 123456">>/etc/neutron/neutron.conf
# Configure Modular Layer 2(ML2) plug-in
echo "[ml2]">>/etc/neutron/plugins/ml2/ml2_conf.ini
echo "type_drivers = flat,vlan,vxlan">>/etc/neutron/plugins/ml2/ml2_conf.ini
echo "tenant_network_types = vxlan">>/etc/neutron/plugins/ml2/ml2_conf.ini
echo "mechanism_drivers = linuxbridge,l2population">>/etc/neutron/plugins/ml2/ml2_conf.ini
echo "extension_drivers = port_security">>/etc/neutron/plugins/ml2/ml2_conf.ini
echo "[ml2_type_flat]">>/etc/neutron/plugins/ml2/ml2_conf.ini
echo "flat_networks = provider">>/etc/neutron/plugins/ml2/ml2_conf.ini
echo "vni_ranges = 1:1000">>/etc/neutron/plugins/ml2/ml2_conf.ini
echo "[securitygroup]">>/etc/neutron/plugins/ml2/ml2_conf.ini
echo "enable_ipset = true">>/etc/neutron/plugins/ml2/ml2_conf.ini
# Configure Linux bridge agent
echo "[linux_bridge]">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
# eth1 is another second network card
echo "physical_interface_mappings = provider:eth1">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
echo "[vxlan]">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
echo "enable_vxlan = true">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
#10.0.0.12 Is the IP of the second network card
echo "local_ip = 10.0.0.12">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
echo "l2_population = true">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
echo "[securitygroup]">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
echo "enable_security_group = true">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
echo "firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
# Configure layer-3 agent
sed -i "2c interface_driver = linuxbridge"/etc/neutron/l3_agent.ini
# Configure DHCP agent
sed -i "2c interface_driver = linuxbridge"/etc/neutron/dhcp_agent.ini
sed -i "3c dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq"/etc/neutron/dhcp_agent.ini
sed -i "4c enable_isolated_metadata = true"/etc/neutron/dhcp_agent.ini
# Configure metadata agent
sed -i "2c nova_metadata_host = controller"/etc/neutron/metadata_agent.ini
sed -i "3c metadata_proxy_shared_secret = 123456"/etc/neutron/metadata_agent.ini
# Configure computing services to use network services
sed -i " 3334c auth_url = http://controller:5000"/etc/nova/nova.conf
sed -i " 3335c auth_type = password"/etc/nova/nova.conf
sed -i " 3336c project_domain_name = default"/etc/nova/nova.conf
sed -i " 3337c user_domain_name = default"/etc/nova/nova.conf
sed -i " 3338c region_name = RegionOne"/etc/nova/nova.conf
sed -i " 3339c project_name = service"/etc/nova/nova.conf
sed -i " 3340c username = neutron"/etc/nova/nova.conf
sed -i " 3341c password = 123456"/etc/nova/nova.conf
sed -i " 3342c service_metadata_proxy = true"/etc/nova/nova.conf
sed -i " 3343c metadata_proxy_shared_secret = 123456"/etc/nova/nova.conf
ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
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
systemctl restart openstack-nova-api.service
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
systemctl enable neutron-l3-agent.service && systemctl start neutron-l3-agent.service
# Install Networking service on compute nodes
yum install -y openstack-neutron-linuxbridge ebtables ipset
sed -i "2c transport_url = rabbit://openstack:123456@controller"/etc/neutron/neutron.conf
sed -i "3c auth_strategy = keystone"/etc/neutron/neutron.conf
sed -i "359c www_authenticate_uri = http://controller:5000"/etc/neutron/neutron.conf
sed -i "360c auth_url = http://controller:5000"/etc/neutron/neutron.conf
sed -i "361c memcached_servers = controller:11211"/etc/neutron/neutron.conf
sed -i "362c auth_type = password"/etc/neutron/neutron.conf
sed -i "363c project_domain_name = default"/etc/neutron/neutron.conf
sed -i "364c user_domain_name = default"/etc/neutron/neutron.conf
sed -i "365c project_name = service"/etc/neutron/neutron.conf
sed -i "366c username = neutron"/etc/neutron/neutron.conf
sed -i "367c password = 123456"/etc/neutron/neutron.conf
sed -i "521c lock_path = /var/lib/neutron/tmp"/etc/neutron/neutron.conf
echo "[linux_bridge]">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
# eth1 is another second network card
echo "physical_interface_mappings = provider:eth1">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
echo "[vxlan]">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
echo "enable_vxlan = true">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
#10.0.0.32 Is the IP of the second network card
echo "local_ip = 10.0.0.32">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
echo "l2_population = true">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
echo "[securitygroup]">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
echo "enable_security_group = true">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
echo "firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver">>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
# Configure computing services to use network services
sed -i " 3334c auth_url = http://controller:5000"/etc/nova/nova.conf
sed -i " 3335c auth_type = password"/etc/nova/nova.conf
sed -i " 3336c project_domain_name = default"/etc/nova/nova.conf
sed -i " 3337c user_domain_name = default"/etc/nova/nova.conf
sed -i " 3338c region_name = RegionOne"/etc/nova/nova.conf
sed -i " 3339c project_name = service"/etc/nova/nova.conf
sed -i " 3340c username = neutron"/etc/nova/nova.conf
sed -i " 3341c password = 123456"/etc/nova/nova.conf
systemctl restart openstack-nova-compute.service
systemctl enable neutron-linuxbridge-agent.service && systemctl start neutron-linuxbridge-agent.service
# Control node installation Dashboard
yum install -y openstack-dashboard
sed -i '118c OPENSTACK_HOST = "controller"'/etc/openstack-dashboard/local_settings
sed -i "39c ALLOWED_HOSTS = ['*']"/etc/openstack-dashboard/local_settings
sed -i "104c SESSION_ENGINE = 'django.contrib.sessions.backends.cache'"/etc/openstack-dashboard/local_settings
sed -i "94c CACHES = {"/etc/openstack-dashboard/local_settings
sed -i "95c 'default': {"/etc/openstack-dashboard/local_settings
sed -i "96c 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',"/etc/openstack-dashboard/local_settings
sed -i "97c 'LOCATION': 'controller:11211',"/etc/openstack-dashboard/local_settings
sed -i "98c }"/etc/openstack-dashboard/local_settings
sed -i "99c }"/etc/openstack-dashboard/local_settings
sed -i '119c OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST'/etc/openstack-dashboard/local_settings
echo 'OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True'>>/etc/openstack-dashboard/local_settings
echo 'OPENSTACK_API_VERSIONS = {'>>/etc/openstack-dashboard/local_settings
echo '  "identity": 3,'>>/etc/openstack-dashboard/local_settings
echo '  "image": 2,'>>/etc/openstack-dashboard/local_settings
echo '  "volume": 3'>>/etc/openstack-dashboard/local_settings
echo '}'>>/etc/openstack-dashboard/local_settings
echo 'OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"'>>/etc/openstack-dashboard/local_settings
echo 'OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"'>>/etc/openstack-dashboard/local_settings
sed -i '123c TIME_ZONE = "Asia/Shanghai"'/etc/openstack-dashboard/local_settings
echo "WEBROOT = '/dashboard/'">>/etc/openstack-dashboard/local_settings
echo 'WSGIApplicationGroup %{GLOBAL}'>>/etc/httpd/conf.d/openstack-dashboard.conf
systemctl restart httpd.service memcached.service
# Installation is complete, you can visit http://10.0.0.11/dashboard/View

to sum up

So far, this article on the detailed tutorial of Centos8 minimal deployment and installation of OpenStack Ussuri is introduced. For more related Centos8 minimal deployment and installation of OpenStack Ussuri content, please search for ZaLou.Cn's previous articles or continue to browse related articles below. Everyone will support ZaLou.Cn a lot in the future!

Recommended Posts

Centos8 minimal deployment and installation of OpenStack Ussuri detailed tutorial
Centos7 installation and deployment of Airflow detailed
Centos7 installation of PHP and Nginx tutorial detailed
CentOS 8 installation of MariaDB detailed tutorial
CentOS6 minimal installation KVM detailed tutorial
Centos7 installation and deployment of gitlab server
Jenkins installation and deployment tutorial under CentOS 7
MySQL 8.0 installation and deployment under CentOS, super detailed!
MySQL 8.0 installation, deployment and configuration tutorial on CentOS 8
Centos8 (minimal installation) a new installation of Python3.8+pip method tutorial
Centos7 installation of Dameng database tutorial
CentOS7 installation and maintenance of Gitlab
Centos8 installation diagram (super detailed tutorial)
CentOs7 installation and deployment Zabbix3.4 original
Erlang 20.2 installation and deployment under CentOS 7
CentOS 7 system installation and configuration graphic tutorial
ubuntu Docker installation and deployment of Rancher
MySQL 8.0 installation, deployment and configuration under CentOS 6/7
Installation and configuration of redis under centos7
Installation and deployment of Nginx in Ubuntu
Zabbix installation and deployment and localization under CentOS
CentOS7 installation zabbix 4.0 tutorial (graphics and text)
Installation and configuration of JDK in CentOS 7 system
Installation and configuration of rsync server under CentOS 6.5
Installation and configuration of CentOS 7 in VMware Workstation
CentOS7 Docker Nginx deployment and operation detailed explanation
Detailed tutorial of installing nginx on centos8 (graphic)
Graphical installation of CentOS8
Linux CentOS 7 installation tutorial
Installation and cracking of confluence6.3 operation records under Centos
Installation and cracking of Jira7 operation records under Centos
Detailed installation steps of CentOS6.4 system in virtual machine
Detailed explanation of CentOS7 network setting tutorial in vmware
Detailed tutorial on installing JDK8 on Linux system (CentOS7 installation)
Centos mysql installation and configuration
CentOS 7 installation and configuration PPTP
CentOS7 installation and maintenance of nginx from entry to master
Deployment of graphite on centos7
CentOS installation and configuration cmake
Deployment of vulnerability scanning and analysis software Nessus under CentOS
Centos7.5 installation and configuration MongoDB4.0.4
CentOS 7 installation and configuration PPTP
Hyper-V + CentOS7 installation video tutorial
Centos7 silent installation of Oracle11g
vmware install CentOS 7 detailed tutorial
CentOS7 postgresql installation and use
CentOS environment installation of Docker
Introduction to CentOS7 installation process of openjdk, tomcat and mysql
Centos7.4 environment installation lamp-php7.0 tutorial
Centos7 elk7.1.1 installation and use
Detailed explanation of quick installation and configuration of Subversion (SVN) under Ubuntu
Detailed explanation of the installation and use of SSH in the Ubuntu environment
Using Elastic Stack on CentOS 8: Deployment and authentication configuration of Elasticsearch/Kibana 7.8
Analysis of Hyper-V installation CentOS 8 problem
Centos iso image file installation tutorial
Minimal install JDK 1.8 tutorial in CentOS 7
Installation under centos6.9 of jenkins learning
Detailed use of nmcli in CentOS8
Centos7 hadoop cluster installation and configuration
CentOS7.3 install iptables and detailed use
Detailed examples of Centos6 network configuration