首页 > 系统相关 >Linux 脚本一键安装openstack(queens版本)

Linux 脚本一键安装openstack(queens版本)

时间:2023-02-24 10:06:53浏览次数:40  
标签:set -- nova etc conf Linux openstack neutron queens


                        Linux 脚本一键安装openstack(queens版本)

分为三个文件,一个配置文件local_settings,两个脚本文件,一个为主节点脚本,一个为计算节点脚本。在脚本内使用的是我的IP192.168.0.16,这个是主节点IP,另一个为192.168.0.17,这个是计算节点。

使用方法为:打开主节点脚本,搜索192字段,将所有ip地址改为自己的主节点IP地址,搜索ens33,将所有ens33修改为主节点的网卡名称。打开计算节点脚本,同样的操作,保存后退出、

然后bash执行脚本即可。三个文件的内容如下:

openstack-master-install.sh

#!/bin/bash

virtual=`egrep -c '(vmx|svm)' /proc/cpuinfo`
if [ $virtual -eq 0 ];then
echo "请先开启虚拟化!"
exit 9
fi

if [ ! -f cirros-0.3.4-x86_64-disk.img ];then
echo "the cirros-0.3.4-x86_64-disk.img is not exist"
exit 6
fi

if [ ! -f local_settings ];then
echo "the local_settings is not exist"
exit 8
fi

echo "[aliyun]
name=aliyun
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
enable=1
gpgcheck=0

[openstack-queens]
name=openstack-queens
baseurl=https://mirrors.aliyun.com/centos-vault/7.8.2003/cloud/x86_64/openstack-queens/
enable=1
gpgcheck=0
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/epel-testing.repo http://mirrors.aliyun.com/repo/epel-testing.repo" >/etc/yum.repos.d/openstack-queens.repo
#if [ $? -ne 0 ];then
# umount /mnt &>/dev/null
# mount /dev/cdrom /mnt &>/dev/null
# if [ $? -ne 0 ];then
# echo "mount: no medium found on /dev/sr0"
# exit 7
# fi
#fi

CUR_PATH=$(cd $(dirname $0); pwd)
host_ip=`ifconfig ens33|awk 'NR==2{print $2}'`
CIDR=`echo $host_ip|sed -r 's#\.[0-9]{1,3}$##'`
gateway=`ip r|awk 'NR==1{print$3}'`
#主机名
hostname controller
hostnamectl set-hostname controller
export HOSTNAME=controller
echo '192.168.0.16 controller' >>/etc/hosts

#yum源
yum clean all
yum makecache
yum install wget -y
#时间同步
yum install -y chrony.x86_64
sed -i '/^server/d' /etc/chrony.conf
sed -i '2a server ntp2.aliyun.com iburst\nallow 10/8' /etc/chrony.conf
systemctl start chronyd.service
systemctl enable chronyd.service
sleep 5
date

yum install centos-release-openstack-mitaka -y
yum install python-openstackclient -y

#数据库
yum install mariadb mariadb-server python2-PyMySQL -y
echo '[mysqld]
bind-address = 192.168.0.16
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8' >/etc/my.cnf.d/openstack.cnf
systemctl enable mariadb.service
systemctl start mariadb.service
mysql -e "DELETE FROM mysql.user WHERE User='';"
mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
mysql -e "DROP DATABASE IF EXISTS test;"
mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
mysql -e "FLUSH PRIVILEGES;"
mysql -e "create database keystone;"
mysql -e "grant all on keystone.* to 'keystone'@'localhost' identified by 'KEYSTONE_DBPASS';"
mysql -e "grant all on keystone.* to 'keystone'@'%' identified by 'KEYSTONE_DBPASS';"
mysql -e "create database glance;"
mysql -e "grant all on glance.* to 'glance'@'localhost' identified by 'GLANCE_DBPASS';"
mysql -e "grant all on glance.* to 'glance'@'%' identified by 'GLANCE_DBPASS';"
mysql -e "create database nova;"
mysql -e "grant all on nova.* to 'nova'@'localhost' identified by 'NOVA_DBPASS';"
mysql -e "grant all on nova.* to 'nova'@'%' identified by 'NOVA_DBPASS';"
mysql -e "create database nova_api;"
mysql -e "grant all on nova_api.* to 'nova'@'localhost' identified by 'NOVA_DBPASS';"
mysql -e "grant all on nova_api.* to 'nova'@'%' identified by 'NOVA_DBPASS';"
mysql -e "create database neutron;"
mysql -e "grant all on neutron.* to 'neutron'@'localhost' identified by 'NEUTRON_DBPASS';"
mysql -e "grant all on neutron.* to 'neutron'@'%' identified by 'NEUTRON_DBPASS';"
mysql -e "select user,host from mysql.user;"

#消息队列
yum install rabbitmq-server -y
systemctl start rabbitmq-server.service
systemctl enable rabbitmq-server.service
rabbitmqctl add_user openstack RABBIT_PASS
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

#memcached
yum install memcached python-memcached -y
sed -i "s#127.0.0.1#0.0.0.0#g" /etc/sysconfig/memcached
systemctl start memcached
systemctl enable memcached

#安装
yum install openstack-utils -y
yum install openstack-keystone httpd mod_wsgi -y
yum install openstack-glance -y
yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler -y
yum install openstack-nova-compute -y
yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables ipset -y
yum install openstack-dashboard -y

#keystone
#cat keystone.conf >/etc/keystone/keystone.conf
openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token ADMIN_TOKEN
openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
openstack-config --set /etc/keystone/keystone.conf token provider fernet
su -s /bin/sh -c "keystone-manage db_sync" keystone
mysql -h 192.168.0.16 -ukeystone -p'KEYSTONE_DBPASS' -e "use keystone;show tables;"
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

sed -i "95a ServerName controller" /etc/httpd/conf/httpd.conf
#\mv wsgi-keystone.conf /etc/httpd/conf.d/
echo 'Listen 5000
Listen 35357

<VirtualHost *:5000>
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /usr/bin/keystone-wsgi-public
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined

<Directory /usr/bin>
Require all granted
</Directory>
</VirtualHost>

<VirtualHost *:35357>
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined

<Directory /usr/bin>
Require all granted
</Directory>
</VirtualHost>' >/etc/httpd/conf.d/wsgi-keystone.conf
systemctl start httpd.service
systemctl enable httpd.service

export OS_TOKEN=ADMIN_TOKEN
export OS_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3

openstack domain create --description "Default Domain" default
openstack project create --domain default --description "Admin Project" admin
openstack user create --domain default --password ADMIN_PASS admin
openstack role create admin
openstack role add --project admin --user admin admin
openstack project create --domain default --description "Demo Project" demo
openstack user create --domain default --password DEMO_PASS demo
openstack role create user
openstack role add --project demo --user demo user
openstack project create --domain default --description "Service Project" service
openstack user create --domain default --password GLANCE_PASS glance
openstack role add --project service --user glance admin
openstack user create --domain default --password NOVA_PASS nova
openstack role add --project service --user nova admin
openstack user create --domain default --password NEUTRON_PASS neutron
openstack role add --project service --user neutron admin

openstack service create --name keystone --description "OpenStack Identity" identity
openstack endpoint create --region RegionOne identity public http://controller:5000/v3
openstack endpoint create --region RegionOne identity internal http://controller:5000/v3
openstack endpoint create --region RegionOne identity admin http://controller:35357/v3
unset OS_TOKEN OS_URL
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:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

echo '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:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2' >/root/admin-openrc

echo 'export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
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' >/root/demo-openrc

openstack token issue

#glance
yum install openstack-glance -y
#cat glance-api.conf >/etc/glance/glance-api.conf
openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
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/
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers controller: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
#cat glance-registry.conf >/etc/glance/glance-registry.conf
openstack-config --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers controller: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

su -s /bin/sh -c "glance-manage db_sync" glance
mysql -h 192.168.0.16 -uglance -p'GLANCE_DBPASS' -e "use glance;show tables;"

systemctl start openstack-glance-api.service openstack-glance-registry.service
systemctl enable openstack-glance-api.service openstack-glance-registry.service
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

#wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
#wget http://10.0.0.1/cirros-0.3.4-x86_64-disk.img
openstack image create "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 \
--container-format bare --public
openstack image list

#nova
yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler -y
yum install openstack-nova-compute -y
openstack service create --name nova --description "OpenStack Compute" compute
openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1/%\(tenant_id\)s
openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1/%\(tenant_id\)s
openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1/%\(tenant_id\)s

#cat nova.conf >/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 rpc_backend rabbit
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.0.16
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_database connection mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
openstack-config --set /etc/nova/nova.conf database connection mysql+pymysql://nova:NOVA_DBPASS@controller/nova
openstack-config --set /etc/nova/nova.conf glance api_servers http://controller:9292
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller: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 oslo_concurrency lock_path /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_password RABBIT_PASS
openstack-config --set /etc/nova/nova.conf libvirt virt_type qemu
openstack-config --set /etc/nova/nova.conf libvirt cpu_mode none
openstack-config --set /etc/nova/nova.conf vnc enabled True
openstack-config --set /etc/nova/nova.conf vnc vncserver_listen 0.0.0.0
openstack-config --set /etc/nova/nova.conf vnc vncserver_proxyclient_address '$my_ip'
openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://controller:6080/vnc_auto.html
openstack-config --set /etc/nova/nova.conf neutron url http://controller:9696
openstack-config --set /etc/nova/nova.conf neutron auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf neutron auth_type password
openstack-config --set /etc/nova/nova.conf neutron project_domain_name default
openstack-config --set /etc/nova/nova.conf neutron user_domain_name default
openstack-config --set /etc/nova/nova.conf neutron region_name RegionOne
openstack-config --set /etc/nova/nova.conf neutron project_name service
openstack-config --set /etc/nova/nova.conf neutron username neutron
openstack-config --set /etc/nova/nova.conf neutron password NEUTRON_PASS
openstack-config --set /etc/nova/nova.conf neutron service_metadata_proxy True
openstack-config --set /etc/nova/nova.conf neutron metadata_proxy_shared_secret METADATA_SECRET

su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage db sync" nova
mysql -h 192.168.0.16 -unova -p'NOVA_DBPASS' -e "use nova;show tables;"
mysql -h 192.168.0.16 -unova -p'NOVA_DBPASS' -e "use nova_api;show tables;"
systemctl start openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service \
openstack-nova-conductor.service openstack-nova-novncproxy.service
systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service \
openstack-nova-conductor.service openstack-nova-novncproxy.service
sleep 5
systemctl start libvirtd
systemctl enable libvirtd
systemctl start openstack-nova-compute
systemctl enable openstack-nova-compute
nova service-list

#neutron
yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables ipset -y
#cat neutron.conf >/etc/neutron/neutron.conf
openstack-config --set /etc/neutron/neutron.conf DEFAULT core_plugin ml2
openstack-config --set /etc/neutron/neutron.conf DEFAULT service_plugins
openstack-config --set /etc/neutron/neutron.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_status_changes True
openstack-config --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_data_changes True
openstack-config --set /etc/neutron/neutron.conf database connection mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_type password
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_name service
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken username neutron
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken password NEUTRON_PASS
openstack-config --set /etc/neutron/neutron.conf nova auth_url http://controller:35357
openstack-config --set /etc/neutron/neutron.conf nova auth_type password
openstack-config --set /etc/neutron/neutron.conf nova project_domain_name default
openstack-config --set /etc/neutron/neutron.conf nova user_domain_name default
openstack-config --set /etc/neutron/neutron.conf nova region_name RegionOne
openstack-config --set /etc/neutron/neutron.conf nova project_name service
openstack-config --set /etc/neutron/neutron.conf nova username nova
openstack-config --set /etc/neutron/neutron.conf nova password NOVA_PASS
openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmp
openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_password RABBIT_PASS
#cat ml2_conf.ini >/etc/neutron/plugins/ml2/ml2_conf.ini
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers flat,vlan
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers linuxbridge
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 extension_drivers port_security
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks provider
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_ipset True
#cat linuxbridge_agent.ini >/etc/neutron/plugins/ml2/linuxbridge_agent.ini
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini linux_bridge physical_interface_mappings provider:ens33
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup enable_security_group True
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan enable_vxlan False
#cat dhcp_agent.ini >/etc/neutron/dhcp_agent.ini
openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT interface_driver neutron.agent.linux.interface.BridgeInterfaceDriver
openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT dhcp_driver neutron.agent.linux.dhcp.Dnsmasq
openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT enable_isolated_metadata true
#cat metadata_agent.ini >/etc/neutron/metadata_agent.ini
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT nova_metadata_ip controller
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT metadata_proxy_shared_secret METADATA_SECRET
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
mysql -h 192.168.0.16 -uneutron -p'NEUTRON_DBPASS' -e "use neutron;show tables;"

systemctl start neutron-server.service neutron-linuxbridge-agent.service \
neutron-dhcp-agent.service neutron-metadata-agent.service
systemctl enable neutron-server.service neutron-linuxbridge-agent.service \
neutron-dhcp-agent.service neutron-metadata-agent.service

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

sleep 30
neutron agent-list

yum install openstack-dashboard -y
#wget http://10.0.0.1/local_settings
cat local_settings >/etc/openstack-dashboard/local_settings
neutron net-create --shared --provider:physical_network provider --provider:network_type flat WAN
neutron subnet-create --name subnet-wan --allocation-pool \
start=192.168.0.100,end=192.168.0.200 --dns-nameserver 61.128.144.166 \
--gateway 192.168.0.1 WAN 192.168.0.0/24

openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano
ssh-keygen -q -N "" -f ~/.ssh/id_rsa
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
openstack security group rule create --proto icmp default
openstack security group rule create --proto tcp --dst-port 22 default
#sleep 30
#openstack server create --flavor m1.nano --image cirros \
#--nic net-id=$(openstack network list|awk '$4~/WAN/{print $2}') \
#--security-group default --key-name mykey provider-instance

#openstack server list
sed -i '3a WSGIApplicationGroup %{GLOBAL}' /etc/httpd/conf.d/openstack-dashboard.conf
systemctl restart httpd.service memcached
echo "安装完成,使用浏览器访问http://${host_ip}/dashboard"

openstack-compute-install.sh

#!/bin/bash

#ip地址
IP=`ifconfig ens33|awk -F "[ ]+" 'NR==2{print $3}'`

#增加控制节点的host解析
echo '192.168.0.16 controller' >>/etc/hosts

#挂载光盘
#mount /dev/cdrom /mnt &>/dev/null
#if [ $? -ne 0 ];then
# umount /mnt &>/dev/null
# mount /dev/cdrom /mnt &>/dev/null
# if [ $? -ne 0 ];then
# echo "mount: no medium found on /dev/sr0"
# exit 7
# fi
#fi

#yum源配置


#时间同步配置
sed -i '/^server/d' /etc/chrony.conf
sed -i '3i server 192.168.0.16 iburst' /etc/chrony.conf
systemctl restart chronyd

#安装openstack客户端
yum install python-openstackclient.noarch -y

#nova-compute
yum install openstack-nova-compute -y
yum install openstack-utils.noarch -y
\cp /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 rpc_backend rabbit
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip $IP
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 glance api_servers http://controller:9292
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller: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 oslo_concurrency lock_path /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_password RABBIT_PASS
openstack-config --set /etc/nova/nova.conf libvirt virt_type qemu
openstack-config --set /etc/nova/nova.conf libvirt cpu_mode none
openstack-config --set /etc/nova/nova.conf vnc enabled True
openstack-config --set /etc/nova/nova.conf vnc vncserver_listen 0.0.0.0
openstack-config --set /etc/nova/nova.conf vnc vncserver_proxyclient_address '$my_ip'
openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://controller:6080/vnc_auto.html
openstack-config --set /etc/nova/nova.conf neutron url http://controller:9696
openstack-config --set /etc/nova/nova.conf neutron auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf neutron auth_type password
openstack-config --set /etc/nova/nova.conf neutron project_domain_name default
openstack-config --set /etc/nova/nova.conf neutron user_domain_name default
openstack-config --set /etc/nova/nova.conf neutron region_name RegionOne
openstack-config --set /etc/nova/nova.conf neutron project_name service
openstack-config --set /etc/nova/nova.conf neutron username neutron
openstack-config --set /etc/nova/nova.conf neutron password NEUTRON_PASS

#5:安装neutron-linuxbridge-agent
yum install openstack-neutron-linuxbridge ebtables ipset -y
\cp /etc/neutron/neutron.conf{,.bak}
grep -Ev '^$|#' /etc/neutron/neutron.conf.bak >/etc/neutron/neutron.conf
openstack-config --set /etc/neutron/neutron.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_type password
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_name service
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken username neutron
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken password NEUTRON_PASS
openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmp
openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_password RABBIT_PASS

\cp /etc/neutron/plugins/ml2/linuxbridge_agent.ini{,.bak}
grep '^[a-Z\[]' /etc/neutron/plugins/ml2/linuxbridge_agent.ini.bak >/etc/neutron/plugins/ml2/linuxbridge_agent.ini
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini linux_bridge physical_interface_mappings provider:ens33
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup enable_security_group True
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan enable_vxlan False

#启动服务
systemctl start libvirtd openstack-nova-compute neutron-linuxbridge-agent
systemctl enable libvirtd openstack-nova-compute neutron-linuxbridge-agent

local_settings

# -*- coding: utf-8 -*-

import os

from django.utils.translation import ugettext_lazy as _


from openstack_dashboard import exceptions
from openstack_dashboard.settings import

HORIZON_CONFIG

DEBUG = False
TEMPLATE_DEBUG = DEBUG


# WEBROOT is the location relative to

Webserver root
# should end with a slash.
WEBROOT = '/dashboard/'
#LOGIN_URL = WEBROOT +

'auth/login/'
#LOGOUT_URL = WEBROOT + 'auth/logout/'
#
# LOGIN_REDIRECT_URL can be used as an

alternative for
# HORIZON_CONFIG.user_home, if user_home is not set.
# Do not set it to

'/home/', as this will cause circular redirect loop
#LOGIN_REDIRECT_URL = WEBROOT

# If

horizon is running in production (DEBUG is False), set this
# with the list of host/domain

names that the application can serve.
# For more information see:
#

https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts
ALLOWED_HOSTS = ['*', ]

#

Set SSL proxy settings:
# Pass this header from the proxy after terminating the SSL,
# and

don't forget to strip it from the client's request.
# For more information see:
#

https://docs.djangoproject.com/en/1.8/ref/settings/#secure-proxy-ssl-header
#SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

# If Horizon is being served

through SSL, then uncomment the following two
# settings to better secure the cookies from

security exploits
#CSRF_COOKIE_SECURE = True
#SESSION_COOKIE_SECURE = True

# The absolute

path to the directory where message files are collected.
# The message file must have a

.json file extension. When the user logins to
# horizon, the message files collected are

processed and displayed to the user.
#MESSAGES_PATH=None

# Overrides for OpenStack API

versions. Use this setting to force the
# OpenStack dashboard to use a specific API version

for a given service API.
# Versions specified here should be integers or floats, not

strings.
# NOTE: The version should be formatted as it appears in the URL for the
# service

API. For example, The identity service APIs have inconsistent
# use of the decimal point,

so valid options would be 2.0 or 3.
OPENSTACK_API_VERSIONS = {
# "data-processing": 1.1,


"identity": 3,
"image": 2,
"volume": 2,
"compute": 2,
}

# Set this to True if

running on multi-domain model. When this is enabled, it
# will require user to enter the

Domain name in addition to username for login.
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT =

True

# Overrides the default domain used when running on single-domain model
# with Keystone

V3. All entities will be created in the default domain.
# NOTE: This value must be the ID

of the default domain, NOT the name.
# Also, you will most likely have a value in the

keystone policy file like this
# "cloud_admin": "rule:admin_required and domain_id:<your

domain id>"
# This value must match the domain id specified there.
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'default'

# Set this to True to enable panels that

provide the ability for users to
# manage Identity Providers (IdPs) and establish a set of

rules to map
# federation protocol attributes to Identity API attributes.
# This extension

requires v3.0+ of the Identity API.
#OPENSTACK_KEYSTONE_FEDERATION_MANAGEMENT = False

# Set

Console type:
# valid options are "AUTO"(default), "VNC", "SPICE", "RDP", "SERIAL" or None
#

Set to None explicitly if you want to deactivate the console.
#CONSOLE_TYPE = "AUTO"

# If

provided, a "Report Bug" link will be displayed in the site header
# which links to the

value of this setting (ideally a URL containing
# information on how to report issues).
#HORIZON_CONFIG["bug_url"] = "http://bug-report.example.com"

# Show backdrop element

outside the modal, do not close the modal
# after clicking on backdrop.
#HORIZON_CONFIG

["modal_backdrop"] = "static"

# Specify a regular expression to validate user passwords.
#HORIZON_CONFIG["password_validator"] = {
# "regex": '.*',
# "help_text": _("Your

password does not meet the requirements."),
#}

# Disable simplified floating IP address

management for deployments with
# multiple floating IP pools or complex network

requirements.
#HORIZON_CONFIG["simple_ip_management"] = False

# Turn off browser

autocompletion for forms including the login form and
# the database creation workflow if

so desired.
#HORIZON_CONFIG["password_autocomplete"] = "off"

# Setting this to True will

disable the reveal button for password fields,
# including on the login form.
#HORIZON_CONFIG["disable_password_reveal"] = False

LOCAL_PATH = '/tmp'

# Set custom secret

key:
# You can either set it to a specific value or you can let horizon generate a
# default

secret key that is unique on this machine, e.i. regardless of the
# amount of Python WSGI

workers (if used behind Apache+mod_wsgi): However,
# there may be situations where you

would want to set this explicitly, e.g.
# when multiple dashboard instances are distributed

on different machines
# (usually behind a load-balancer). Either you have to make sure that

a session
# gets all requests routed to the same dashboard instance or you set the same
#

SECRET_KEY for all of them.
SECRET_KEY='65941f1393ea1c265ad7'

# We recommend you use

memcached for development; otherwise after every reload
# of the django development server,

you will have to login again. To use
# memcached set CACHES to something like
SESSION_ENGINE

= 'django.contrib.sessions.backends.cache'
CACHES = {
'default': {
'BACKEND':

'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION':

'controller:11211',
},
}

#CACHES = {
# 'default': {
# 'BACKEND':

'django.core.cache.backends.locmem.LocMemCache',
# },
#}

# Send email to the console by

default
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
# Or send them to

/dev/null
#EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend'

# Configure these

for your outgoing email host
#EMAIL_HOST = 'smtp.my-company.com'
#EMAIL_PORT = 25
#EMAIL_HOST_USER = 'djangomail'
#EMAIL_HOST_PASSWORD = 'top-secret!'

# For multiple regions

uncomment this configuration, and add (endpoint, title).
#AVAILABLE_REGIONS = [
#

('http://cluster1.example.com:5000/v2.0', 'cluster1'),
#

('http://cluster2.example.com:5000/v2.0', 'cluster2'),
#]

OPENSTACK_HOST = "controller"
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"

# Enables keystone web single-sign-on if set to

True.
#WEBSSO_ENABLED = False

# Determines which authentication choice to show as default.
#WEBSSO_INITIAL_CHOICE = "credentials"

# The list of authentication mechanisms which

include keystone
# federation protocols and identity provider/federation protocol
# mapping

keys (WEBSSO_IDP_MAPPING). Current supported protocol
# IDs are 'saml2' and 'oidc' which

represent SAML 2.0, OpenID
# Connect respectively.
# Do not remove the mandatory credentials

mechanism.
# Note: The last two tuples are sample mapping keys to a identity provider
# and

federation protocol combination (WEBSSO_IDP_MAPPING).
#WEBSSO_CHOICES = (
#

("credentials", _("Keystone Credentials")),
# ("oidc", _("OpenID Connect")),
#

("saml2", _("Security Assertion Markup Language")),
# ("acme_oidc", "ACME - OpenID

Connect"),
# ("acme_saml2", "ACME - SAML2"),
#)

# A dictionary of specific identity

provider and federation protocol
# combinations. From the selected authentication

mechanism, the value
# will be looked up as keys in the dictionary. If a match is found,
#

it will redirect the user to a identity provider and federation protocol
# specific WebSSO

endpoint in keystone, otherwise it will use the value
# as the protocol_id when redirecting

to the WebSSO by protocol endpoint.
# NOTE: The value is expected to be a tuple formatted

as: (<idp_id>, <protocol_id>).
#WEBSSO_IDP_MAPPING = {
# "acme_oidc": ("acme", "oidc"),
#

"acme_saml2": ("acme", "saml2"),
#}

# Disable SSL certificate checks (useful for self-

signed certificates):
#OPENSTACK_SSL_NO_VERIFY = True

# The CA certificate to use to verify

SSL connections
#OPENSTACK_SSL_CACERT = '/path/to/cacert.pem'

# The

OPENSTACK_KEYSTONE_BACKEND settings can be used to identify the
# capabilities of the auth

backend for Keystone.
# If Keystone has been configured to use LDAP as the auth backend

then set
# can_edit_user to False and name to 'ldap'.
#
# TODO(tres): Remove these once

Keystone has an API to identify auth backend.
OPENSTACK_KEYSTONE_BACKEND = {
'name':

'native',
'can_edit_user': True,
'can_edit_group': True,
'can_edit_project':

True,
'can_edit_domain': True,
'can_edit_role': True,
}

# Setting this to True, will

add a new "Retrieve Password" action on instance,
# allowing Admin session password

retrieval/decryption.
#OPENSTACK_ENABLE_PASSWORD_RETRIEVE = False

# The Launch Instance user

experience has been significantly enhanced.
# You can choose whether to enable the new

launch instance experience,
# the legacy experience, or both. The legacy experience will be

removed
# in a future release, but is available as a temporary backup setting to ensure
#

compatibility with existing deployments. Further development will not be
# done on the

legacy experience. Please report any problems with the new
# experience via the Launchpad

tracking system.
#
# Toggle LAUNCH_INSTANCE_LEGACY_ENABLED and LAUNCH_INSTANCE_NG_ENABLED

to
# determine the experience to enable. Set them both to true to enable
# both.
#LAUNCH_INSTANCE_LEGACY_ENABLED = True
#LAUNCH_INSTANCE_NG_ENABLED = False

# A dictionary of

settings which can be used to provide the default values for
# properties found in the

Launch Instance modal.
#LAUNCH_INSTANCE_DEFAULTS = {
# 'config_drive': False,
#}

# The Xen

Hypervisor has the ability to set the mount point for volumes
# attached to instances

(other Hypervisors currently do not). Setting
# can_set_mount_point to True will add the

option to set the mount point
# from the UI.
OPENSTACK_HYPERVISOR_FEATURES = {


'can_set_mount_point': False,
'can_set_password': False,
'requires_keypair': False,
}

# The OPENSTACK_CINDER_FEATURES settings can be used to enable optional
# services provided

by cinder that is not exposed by its extension API.
OPENSTACK_CINDER_FEATURES = {


'enable_backup': False,
}

# The OPENSTACK_NEUTRON_NETWORK settings can be used to enable

optional
# services provided by neutron. Options currently available are load
# balancer

service, security groups, quotas, VPN service.
OPENSTACK_NEUTRON_NETWORK = {


'enable_router': False,
'enable_quotas': False,
'enable_ipv6': False,


'enable_distributed_router': False,
'enable_ha_router': False,
'enable_lb': False,


'enable_firewall': False,
'enable_vpn': False,
'enable_fip_topology_check': False,



# Neutron can be configured with a default Subnet Pool to be used for IPv4
# subnet-

allocation. Specify the label you wish to display in the Address
# pool selector on the

create subnet step if you want to use this feature.
'default_ipv4_subnet_pool_label':

None,

# Neutron can be configured with a default Subnet Pool to be used for IPv6
#

subnet-allocation. Specify the label you wish to display in the Address
# pool selector

on the create subnet step if you want to use this feature.
# You must set this to

enable IPv6 Prefix Delegation in a PD-capable
# environment.


'default_ipv6_subnet_pool_label': None,

# The profile_support option is used to detect

if an external router can be
# configured via the dashboard. When using specific

plugins the
# profile_support can be turned on if needed.
'profile_support': None,


#'profile_support': 'cisco',

# Set which provider network types are supported. Only

the network types
# in this list will be available to choose from when creating a

network.
# Network types include local, flat, vlan, gre, and vxlan.


'supported_provider_types': ['*'],

# Set which VNIC types are supported for port

binding. Only the VNIC
# types in this list will be available to choose from when

creating a
# port.
# VNIC types include 'normal', 'macvtap' and 'direct'.
# Set

to empty list or None to disable VNIC type selection.
'supported_vnic_types': ['*'],
}

#

The OPENSTACK_HEAT_STACK settings can be used to disable password
# field required while

launching the stack.
OPENSTACK_HEAT_STACK = {
'enable_user_pass': True,
}

# The

OPENSTACK_IMAGE_BACKEND settings can be used to customize features
# in the OpenStack

Dashboard related to the Image service, such as the list
# of supported image formats.
#OPENSTACK_IMAGE_BACKEND = {
# 'image_formats': [
# ('', _('Select format')),
#

('aki', _('AKI - Amazon Kernel Image')),
# ('ami', _('AMI - Amazon Machine

Image')),
# ('ari', _('ARI - Amazon Ramdisk Image')),
# ('docker', _

('Docker')),
# ('iso', _('ISO - Optical Disk Image')),
# ('ova', _('OVA - Open

Virtual Appliance')),
# ('qcow2', _('QCOW2 - QEMU Emulator')),
# ('raw', _

('Raw')),
# ('vdi', _('VDI - Virtual Disk Image')),
# ('vhd', _('VHD - Virtual

Hard Disk')),
# ('vmdk', _('VMDK - Virtual Machine Disk')),
# ],
#}

# The

IMAGE_CUSTOM_PROPERTY_TITLES settings is used to customize the titles for
# image custom

property attributes that appear on image detail pages.
IMAGE_CUSTOM_PROPERTY_TITLES = {


"architecture": _("Architecture"),
"kernel_id": _("Kernel ID"),
"ramdisk_id": _

("Ramdisk ID"),
"image_state": _("Euca2ools state"),
"project_id": _("Project ID"),


"image_type": _("Image Type"),
}

# The IMAGE_RESERVED_CUSTOM_PROPERTIES setting is used to

specify which image
# custom properties should not be displayed in the Image Custom

Properties
# table.
IMAGE_RESERVED_CUSTOM_PROPERTIES = []

# OPENSTACK_ENDPOINT_TYPE specifies

the endpoint type to use for the endpoints
# in the Keystone service catalog. Use this

setting when Horizon is running
# external to the OpenStack environment. The default is

'publicURL'.
#OPENSTACK_ENDPOINT_TYPE = "publicURL"

# SECONDARY_ENDPOINT_TYPE specifies the

fallback endpoint type to use in the
# case that OPENSTACK_ENDPOINT_TYPE is not present in

the endpoints
# in the Keystone service catalog. Use this setting when Horizon is running
#

external to the OpenStack environment. The default is None. This
# value should differ

from OPENSTACK_ENDPOINT_TYPE if used.
#SECONDARY_ENDPOINT_TYPE = "publicURL"

# The number of

objects (Swift containers/objects or images) to display
# on a single page before providing

a paging element (a "more" link)
# to paginate results.
API_RESULT_LIMIT = 1000
API_RESULT_PAGE_SIZE = 20

# The size of chunk in bytes for downloading objects from Swift
SWIFT_FILE_TRANSFER_CHUNK_SIZE = 512 * 1024

# Specify a maximum number of items to display

in a dropdown.
DROPDOWN_MAX_ITEMS = 30

# The timezone of the server. This should correspond

with the timezone
# of your entire OpenStack installation, and hopefully be in UTC.
TIME_ZONE = "Asia/Shanghai"

# When launching an instance, the menu of available flavors is
#

sorted by RAM usage, ascending. If you would like a different sort order,
# you can provide

another flavor attribute as sorting key. Alternatively, you
# can provide a custom callback

method to use for sorting. You can also provide
# a flag for reverse sort. For more info,

see
# http://docs.python.org/2/library/functions.html#sorted
#CREATE_INSTANCE_FLAVOR_SORT =

{
# 'key': 'name',
# # or
# 'key': my_awesome_callback_method,
# 'reverse':

False,
#}

# Set this to True to display an 'Admin Password' field on the Change Password
#

form to verify that it is indeed the admin logged-in who wants to change
# the password.
#ENFORCE_PASSWORD_CHECK = False

# Modules that provide /auth routes that can be used to

handle different types
# of user authentication. Add auth plugins that require extra route

handling to
# this list.
#AUTHENTICATION_URLS = [
# 'openstack_auth.urls',
#]

# The Horizon

Policy Enforcement engine uses these values to load per service
# policy rule files. The

content of these files should match the files the
# OpenStack services are using to

determine role based access control in the
# target installation.

# Path to directory

containing policy.json files
POLICY_FILES_PATH = '/etc/openstack-dashboard'

# Map of local

copy of service policy files.
# Please insure that your identity policy file matches the

one being used on
# your keystone servers. There is an alternate policy file that may be

used
# in the Keystone v3 multi-domain case, policy.v3cloudsample.json.
# This file is not

included in the Horizon repository by default but can be
# found at
#

http://git.openstack.org/cgit/openstack/keystone/tree/etc/ \
# policy.v3cloudsample.json
#

Having matching policy files on the Horizon and Keystone servers is essential
# for normal

operation. This holds true for all services and their policy files.
#POLICY_FILES = {
#

'identity': 'keystone_policy.json',
# 'compute': 'nova_policy.json',
# 'volume':

'cinder_policy.json',
# 'image': 'glance_policy.json',
# 'orchestration':

'heat_policy.json',
# 'network': 'neutron_policy.json',
# 'telemetry':

'ceilometer_policy.json',
#}

# TODO: (david-lyle) remove when plugins support adding

settings.
# Note: Only used when trove-dashboard plugin is configured to be used by
#

Horizon.
# Trove user and database extension support. By default support for
# creating

users and databases on database instances is turned on.
# To disable these extensions set

the permission here to something
# unusable such as ["!"].
#TROVE_ADD_USER_PERMS = []
#TROVE_ADD_DATABASE_PERMS = []

# Change this patch to the appropriate list of tuples

containing
# a key, label and static directory containing two files:
# _variables.scss and

_styles.scss
#AVAILABLE_THEMES = [
# ('default', 'Default', 'themes/default'),
#

('material', 'Material', 'themes/material'),
#]

LOGGING = {
'version': 1,
# When set

to True this will disable all logging except
# for loggers specified in this

configuration dictionary. Note that
# if nothing is specified here and

disable_existing_loggers is True,
# django.db.backends will still log unless it is

disabled explicitly.
'disable_existing_loggers': False,
'handlers': {
'null':

{
'level': 'DEBUG',
'class': 'logging.NullHandler',
},


'console': {
# Set the level to "DEBUG" for verbose output logging.


'level': 'INFO',
'class': 'logging.StreamHandler',
},
},


'loggers': {
# Logging from django.db.backends is VERY verbose, send to null


# by default.
'django.db.backends': {
'handlers': ['null'],


'propagate': False,
},
'requests': {
'handlers': ['null'],


'propagate': False,
},
'horizon': {
'handlers': ['console'],


'level': 'DEBUG',
'propagate': False,
},


'openstack_dashboard': {
'handlers': ['console'],
'level': 'DEBUG',


'propagate': False,
},
'novaclient': {
'handlers':

['console'],
'level': 'DEBUG',
'propagate': False,
},


'cinderclient': {
'handlers': ['console'],
'level': 'DEBUG',


'propagate': False,
},
'keystoneclient': {
'handlers':

['console'],
'level': 'DEBUG',
'propagate': False,
},


'glanceclient': {
'handlers': ['console'],
'level': 'DEBUG',


'propagate': False,
},
'neutronclient': {
'handlers':

['console'],
'level': 'DEBUG',
'propagate': False,
},


'heatclient': {
'handlers': ['console'],
'level': 'DEBUG',


'propagate': False,
},
'ceilometerclient': {
'handlers':

['console'],
'level': 'DEBUG',
'propagate': False,
},


'swiftclient': {
'handlers': ['console'],
'level': 'DEBUG',


'propagate': False,
},
'openstack_auth': {
'handlers':

['console'],
'level': 'DEBUG',
'propagate': False,
},


'nose.plugins.manager': {
'handlers': ['console'],
'level': 'DEBUG',


'propagate': False,
},
'django': {
'handlers':

['console'],
'level': 'DEBUG',
'propagate': False,
},


'iso8601': {
'handlers': ['null'],
'propagate': False,
},


'scss': {
'handlers': ['null'],
'propagate': False,
},


},
}

# 'direction' should not be specified for all_tcp/udp/icmp.
# It is specified in the

form.
SECURITY_GROUP_RULES = {
'all_tcp': {
'name': _('All TCP'),


'ip_protocol': 'tcp',
'from_port': '1',
'to_port': '65535',
},


'all_udp': {
'name': _('All UDP'),
'ip_protocol': 'udp',
'from_port':

'1',
'to_port': '65535',
},
'all_icmp': {
'name': _('All ICMP'),


'ip_protocol': 'icmp',
'from_port': '-1',
'to_port': '-1',
},
'ssh':

{
'name': 'SSH',
'ip_protocol': 'tcp',
'from_port': '22',


'to_port': '22',
},
'smtp': {
'name': 'SMTP',
'ip_protocol': 'tcp',


'from_port': '25',
'to_port': '25',
},
'dns': {
'name': 'DNS',


'ip_protocol': 'tcp',
'from_port': '53',
'to_port': '53',
},


'http': {
'name': 'HTTP',
'ip_protocol': 'tcp',
'from_port': '80',


'to_port': '80',
},
'pop3': {
'name': 'POP3',
'ip_protocol':

'tcp',
'from_port': '110',
'to_port': '110',
},
'imap': {


'name': 'IMAP',
'ip_protocol': 'tcp',
'from_port': '143',
'to_port':

'143',
},
'ldap': {
'name': 'LDAP',
'ip_protocol': 'tcp',


'from_port': '389',
'to_port': '389',
},
'https': {
'name': 'HTTPS',


'ip_protocol': 'tcp',
'from_port': '443',
'to_port': '443',
},


'smtps': {
'name': 'SMTPS',
'ip_protocol': 'tcp',
'from_port': '465',


'to_port': '465',
},
'imaps': {
'name': 'IMAPS',
'ip_protocol':

'tcp',
'from_port': '993',
'to_port': '993',
},
'pop3s': {


'name': 'POP3S',
'ip_protocol': 'tcp',
'from_port': '995',
'to_port':

'995',
},
'ms_sql': {
'name': 'MS SQL',
'ip_protocol': 'tcp',


'from_port': '1433',
'to_port': '1433',
},
'mysql': {
'name': 'MYSQL',


'ip_protocol': 'tcp',
'from_port': '3306',
'to_port': '3306',
},


'rdp': {
'name': 'RDP',
'ip_protocol': 'tcp',
'from_port': '3389',


'to_port': '3389',
},
}

# Deprecation Notice:
#
# The setting FLAVOR_EXTRA_KEYS has

been deprecated.
# Please load extra spec metadata into the Glance Metadata Definition

Catalog.
#
# The sample quota definitions can be found in:
#

<glance_source>/etc/metadefs/compute-quota.json
#
# The metadata definition catalog supports

CLI and API:
# $glance --os-image-api-version 2 help md-namespace-import
# $glance-manage

db_load_metadefs <directory_with_definition_files>
#
# See Metadata Definitions on:

http://docs.openstack.org/developer/glance/

# TODO: (david-lyle) remove when plugins

support settings natively
# Note: This is only used when the Sahara plugin is configured

and enabled
# for use in Horizon.
# Indicate to the Sahara data processing service whether

or not
# automatic floating IP allocation is in effect. If it is not
# in effect, the user

will be prompted to choose a floating IP
# pool for use in their cluster. False by

default. You would want
# to set this to True if you were running Nova Networking with
#

auto_assign_floating_ip = True.
#SAHARA_AUTO_IP_ALLOCATION_ENABLED = False

# The hash

algorithm to use for authentication tokens. This must
# match the hash algorithm that the

identity server and the
# auth_token middleware are using. Allowed values are the
#

algorithms supported by Python's hashlib library.
#OPENSTACK_TOKEN_HASH_ALGORITHM = 'md5'

#

Hashing tokens from Keystone keeps the Horizon session data smaller, but it
# doesn't work

in some cases when using PKI tokens. Uncomment this value and
# set it to False if using

PKI tokens and there are 401 errors due to token
# hashing.
#OPENSTACK_TOKEN_HASH_ENABLED =

True

# AngularJS requires some settings to be made available to
# the client side. Some

settings are required by in-tree / built-in horizon
# features. These settings must be

added to REST_API_REQUIRED_SETTINGS in the
# form of ['SETTING_1','SETTING_2'], etc.
#
# You

may remove settings from this list for security purposes, but do so at
# the risk of

breaking a built-in horizon feature. These settings are required
# for horizon to function

properly. Only remove them if you know what you
# are doing. These settings may in the

future be moved to be defined within
# the enabled panel configuration.
# You should not add

settings to this list for out of tree extensions.
# See:

https://wiki.openstack.org/wiki/Horizon/RESTAPI
REST_API_REQUIRED_SETTINGS =

['OPENSTACK_HYPERVISOR_FEATURES',
'LAUNCH_INSTANCE_DEFAULTS']

# Additional settings can be made available to the client side for
# extensibility by

specifying them in REST_API_ADDITIONAL_SETTINGS
# !! Please use extreme caution as the

settings are transferred via HTTP/S
# and are not encrypted on the browser. This is an

experimental API and
# may be deprecated in the future without notice.
#REST_API_ADDITIONAL_SETTINGS = []

# DISALLOW_IFRAME_EMBED can be used to prevent Horizon

from being embedded
# within an iframe. Legacy browsers are still vulnerable to a Cross-

Frame
# Scripting (XFS) vulnerability, so this option allows extra security hardening
#

where iframes are not used in deployment. Default setting is True.
# For more information

see:
# http://tinyurl.com/anticlickjack
#DISALLOW_IFRAME_EMBED = True

local_settings这个文件不需要改动。剩下两个脚本需要改动

标签:set,--,nova,etc,conf,Linux,openstack,neutron,queens
From: https://blog.51cto.com/u_15966109/6082641

相关文章

  • Linux 快速永久关闭iptables
               Linux快速永久关闭iptables分三步,第一步:执行命令iptables-F第二步:执行命令whereisiptables 查询出iptables这个程序的位置第三步:......
  • Linux 使用脚本速配Jdk8.20
                Linux使用脚本速配Jdk8.20#!/bin/bashwgethttp://dl.mycat.org.cn/jdk-8u20-linux-x64.tar.gztar-zxf`find/-namejdk-8u20-linu......
  • Linux 基于history命令记录操作用户,命令执行时间,登陆IP等信息
      Linux基于history命令记录操作用户,命令执行时间,登陆IP等信息Linux默认的history命令是一个常用的系统内置命令,该命令用来记录在某一个的所有使用过的命令的历史,但默......
  • Linux用户权限管理之 su和sudo
                      Linux用户权限管理之su和sudo首先需要说明,su和sudo这两个命令产生的原因。根本原因在于Linux系统是一个多角色的......
  • Linux docker的网络隔离方案和网络模式的使用问题
        Linuxdocker的网络隔离方案和网络模式的使用问题docker的网络管理比较复杂,是由于它的网络是基于Linux内核的namespace开始。docker刚安装完毕后,最开始的docker......
  • Linux centos7升级内核(两种方法:内核编译和yum更新)
          Linuxcentos7升级内核(两种方法:内核编译和yum更新)Linux的内核概念不用说大家也很清楚,正是内核版本的不同,才有Linux发行版本的说法,现在主流的centos应该都......
  • Linux docker的网络独立IP的配置(pipework实现方式)
         Linux docker的网络独立IP的配置(pipework实现方式)docker一个镜像作为容器启动后,通常会在宿主机同时生成一个名称为docker0的虚拟网卡,该网卡作为桥接网卡......
  • Linux学习总结
    Linux学习笔记一、基本Liunx命令二、管道符、重定向与环境变量三、Vim编辑器四、Shell命令脚本五、用户身份与文件权限六、存储结构与磁盘划分七、RAID与LVM磁盘阵列技......
  • linux 移植 i2CTools
    一、I2C-Tools介绍i2c-tools工具是一个专门用来调试i2c的。并且是开源的。它可以:1、检测有几组i2c总线在系统上。2、查看挂载在i2c上面设备寄......
  • 2023年2月24日学习Linux: 硬盘,文件格式
    )掌握在Linux系统中,每个设备都被当初一个文件来对待。2)掌握各种设备在Linux中的文件名2.硬盘的结构及硬盘分区(详见linux系统管理P301)1)了解为什么要进行硬盘分区:a)......