openstack controller节点 shell脚本一键部署(Q版)

controller节点 shell脚本一键部署(Q版)

(文档在资源处,Q版HA部署)

注意变量:

vi  openrc.sh

HOST_IP=
HOST_NAME=controller
HOST_IP_NODE=
HOST_NAME_NODE=compute
RABBIT_USER=openstack
RABBIT_PASS=
DB_PASS=
DOMAIN_NAME=default
ADMIN_PASS=
DEMO_PASS=
KEYSTONE_DBPASS=
GLANCE_DBPASS=
GLANCE_PASS=
NOVA_DBPASS=
NOVA_PASS=
NEUTRON_DBPASS=
NEUTRON_PASS=

写入一下脚本(这里不包括修改网卡)

#!/bin/bash
source openrc.sh

#配置主机名
echo "配置主机名"
sleep 3
ip=`ifconfig |grep -w inet|awk 'NR==1{print$2}'`
if [[ $ip == $HOST_IP ]];then
    hostnamectl set-homename $HOST_NAME
else
    hostnamectl set-homename $HOST_NAME_NODE
fi

#配置映射
echo "配置映射"
sleep 3
echo "$HOST_IP $HOST_NAME" >> /etc/hosts
echo "$HOST_IP_NODE $HOST_NAME_NODE" >> /etc/hosts

#配置防火墙和SELinux
echo "配置防火墙和SELinux"
iptables -F
iptables -X
iptables -Z
/usr/sbin/iptables-save

#配置时间同步服务
echo "配置时间同步服务"
sleep 3
yum install -y chrony
name=`hostname`
if [[ $name == $HOST_NAME ]];then
    sed -i '3,6s/^/#/g' /etc/chrony.conf
    echo "local stratum 10" >>/etc/chrony.conf
    echo "server controller iburst" >>/etc/chrony.conf
    echo "allow 10.32.24.0/23" >>/etc/chrony.conf
    systemctl enable chronyd.service
    systemctl start chronyd.service
else
    sed -i '3,6s/^/#/g' /etc/chrony.conf
    echo "local stratum 10" >>/etc/chrony.conf
    echo "server controller iburst" >>/etc/chrony.conf
    systemctl enable chronyd.service
    systemctl start chronyd.service
    chronyc sources
fi

#更新yum源
echo更新yum源
sleep 3
yum upgrade -y
rm -rfv /etc/yum.repos.d/C*

#安装openstack client端
echo "安装openstack client端"
yum install python-openstackclient -y

#安装openstack-selinux
echo "安装openstack-selinux"
yum install openstack-selinux -y

#配置DNS
echo配置DNS
yum install -y bind
sed -i -e '13,14s/^/\/\//g' \
-e '19s/^/\/\//g' \
-e '31s/yes/no/g' \
-e '33s/yes/no/g' \
-e '34s/yes/no/g' \
-e '37s/^/\/\//g' \
-e '39s/^/\/\//g' \
-e '41s/^/\/\//g' \
-e '42s/^/\/\//g' /etc/named.conf

#配置数据库
echo 配置数据库
yum install mariadb mariadb-server python2-PyMySQL -y
touch -p /etc/my.cnf.d/openstack.cnf
echo "[mysqld]
bind-address = '$HOST_IP'
default-storage-engine = innodb
innodb_file_per_table = on
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

#设置数据库
echo置数据库
yum install -y expect
expect -c "
spawn /usr/bin/mysql_secure_installation
expect \"Enter current password for root (enter for none):\"
send \"\r\"
expect \"Set root password?\"
send \"y\r\"
expect \"New password:\"
send \"$DB_PASS\r\"
expect \"Re-enter new password:\"
send \"$DB_PASS\r\"
expect \"Remove anonymous users?\"
send \"y\r\"
expect \"Disallow root login remotely?\"
send \"n\r\"
expect \"Remove test database and access to it?\"
send \"y\r\"
expect \"Reload privilege tables now?\"
send \"y\r\"
expect eof
"

#配置消息队列服务
echo "配置消息队列服务"
yum install rabbitmq-server -y
systemctl start rabbitmq-server.service
systemctl enable rabbitmq-server.service

rabbitmqctl add_user $RABBIT_USER $RABBIT_PASS
rabbitmqctl set_permissions $RABBIT_USER ".*" ".*" ".*"

#配置缓存服务
echo "配置缓存服务"
yum install -y memcached memcached-python
sed -i 's/OPTIONS.*/OPTIONS="-l 127.0.0.1,::1,'$HOST_NAME'"/g' /etc/sysconfig/memcached
systemctl restart memcached
systemctl enable memcached

#Etcd服务安装
echo "Etcd服务安装"
yum install etcd -y
sed -i -e '5s/#//g' \
-e '20s/#//g' \
-e '6s/#//g' \
-e '26s/#//g' \
-e '27s/#//g' \
-e '28s/#//g' \
-e '5,26s/localhost/'$HOST_IP'/g' \
-e '9s/default/'$HOST_NAME'/g' \
-e '26s/default/'$HOST_NAME'/g' \
-e '27s/etcd-cluster/etcd-cluster-01/g' /etc/etcd/etcd.conf

systemctl start etcd
systemctl enable etcd

#创建keystone数据库
echo "创建keystone数据库"
mysql -uroot -p$DB_PASS -e "CREATE DATABASE if not exists keystone;"
mysql -uroot -p$DB_PASS -e "grant all privileges on keystone.* to 'keystone'@'localhost' identified by 	'$KEYSTONE_DBPASS';"
mysql -uroot -p$DB_PASS -e "grant all privileges on keystone.* to 'keystone'@'%' identified by '$KEYSTONE_DBPASS';"


#安装keystone组件
echo "安装keystone组件"
yum install openstack-keystone httpd mod_wsgi -y

#编辑 /etc/keystone/keystone.conf
echo "编辑 /etc/keystone/keystone.conf"
sed -i -e '720s/^/connection = mysql+pymysql:\/\/keystone:'$KEYSTONE_DBPASS'@'$HOST_NAME'\/keystone/g' \
-e '2879s/^/provider = fernet/g' /etc/keystone/keystone.conf

#同步keystone数据库
echo "同步keystone数据库"
su -s /bin/sh -c "keystone-manage db_sync" keystone

#数据库初始化
echo "数据库初始化"
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

#引导身份认证服务
echo "引导身份认证服务"
keystone-manage bootstrap --bootstrap-password $ADMIN_PASS --bootstrap-admin-url http://$HOST_NAME:35357/v3/ --bootstrap-internal-url http://$HOST_NAME:5000/v3/ --bootstrap-public-url http://$HOST_NAME:5000/v3/ --bootstrap-region-id RegionOne

#配置apache http服务
echo "配置apache http服务"
sed -i '96s/^/ServerName controller/g' /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

#配置administrative账号
echo "配置administrative账号"
export OS_USERNAME=admin
export OS_PASSWORD=$ADMIN_PASS
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=$DOMAIN_NAME
export OS_PROJECT_DOMAIN_NAME=$DOMAIN_NAME
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3

#创建域
echo "创建域"
openstack domain create --description "Domain" example

#创建服务项目
echo "创建服务项目"
openstack project create --domain $DOMAIN_NAME --description "Service Project" service

#创建平台demo项目
echo "建平台demo项目"
openstack project create --domain $DOMAIN_NAME --description "Demo Project" demo

#创建demo用户
echo "建demo用户"
openstack user create --domain $DOMAIN_NAME --password $DEMO_PASS demo

#创建用户角色
echo "创建用户角色"
openstack role create user

#添加用户角色到demo项目和用户
echo "添加用户角色到demo项目和用户"
openstack role add --project demo --user demo user

cat > admin-openrc <<EOF
export OS_PROJECT_DOMAIN_NAME=$DOMAIN_NAME
export OS_USER_DOMAIN_NAME=$DOMAIN_NAME
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=$ADMIN_PASS
export OS_AUTH_URL=http://$HOST_NAME:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
EOF

cat > demo-openrc <<EOF
export OS_PROJECT_DOMAIN_NAME=$DOMAIN_NAME
export OS_USER_DOMAIN_NAME=$DOMAIN_NAME
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=$ADMIN_PASS
export OS_AUTH_URL=http://$HOST_NAME:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
EOF

openstack token issue >/dev/null 2>&1
if [ 0 -eq $? ];then
echo "keystone 配置成功"
sleep 2
else
echo "keystone 配置失败"
sleep 2
fi

#创建glance数据库
echo "创建glance数据库"
mysql -uroot -p$GLANCE_PASS -e "CREATE DATABASE if not exists glance;"
mysql -uroot -p$GLANCE_PASS -e "grant all privileges on glance.* to 'glance'@'localhost' identified by '$GLANCE_DBPASS';"
mysql -uroot -p$GLANCE_PASS -e "grant all privileges on glance.* to 'glance'@'%' identified by '$GLANCE_DBPASS';"

source admin-openrc
openstack user create --domain $DOMAIN_NAME --password $DEMO_PASS 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://$HOST_NAME:9292
openstack endpoint create --region RegionOne  image internal http://$HOST_NAME:9292
openstack endpoint create --region RegionOne  image admin http://$HOST_NAME:9292

yum install -y openstack-config
yum install -y crudini
rpm -ivh openstack-utils-2015.21+git.1451948894.092baf8-9.1.noarch.rpm 

yum install openstack-glance -y
openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:$GLANCE_PASS@$HOST_NAME/glance
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_uri http://$HOST_NAME:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://$HOST_NAME:35357
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers $HOST_NAME: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 $DOMAIN_NAME
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name $DOMAIN_NAME
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/

openstack-config --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:$GLANCE_PASS@$HOST_NAME/glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_uri http://$HOST_NAME:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://$HOST_NAME:35357
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers $HOST_NAME: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 $DOMAIN_NAME
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_name $DOMAIN_NAME
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
systemctl start openstack-glance-api.service  openstack-glance-registry.service
systemctl enable openstack-glance-api.service openstack-glance-registry.service

#安装nova数据库
echo "安装nova数据库"
mysql -uroot -p$NOVA_PASS <<eof
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';
eof

openstack user create --domain $DOMAIN_NAME --password $DEMO_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://$HOST_NAME:8774/v2.1
openstack endpoint create --region RegionOne compute internal http://$HOST_NAME:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://$HOST_NAME:8774/v2.1
openstack user create --domain $DOMAIN_NAME --password $DEMO_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://$HOST_NAME:8778
openstack endpoint create --region RegionOne placement internal http://$HOST_NAME:8778
openstack endpoint create --region RegionOne placement admin http://$HOST_NAME:8778

#安装和配置组件
echo "安装和配置组件"
yum install -y openstack-nova-api openstack-nova-conductor  openstack-nova-console openstack-nova-novncproxy  openstack-nova-scheduler openstack-nova-placement-api

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:$NOVA_PASS@$HOST_NAME
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 10.32.25.31
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_PASS@$HOST_NAME/nova_api

openstack-config --set /etc/nova/nova.conf database connection mysql+pymysql://nova:$NOVA_PASS@$HOST_NAME/nova

openstack-config --set /etc/nova/nova.conf api auth_strategy keystone

openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://$HOST_NAME:5000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://$HOST_NAME:35357
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers $HOST_NAME:11211
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name $DOMAIN_NAME
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name $DOMAIN_NAME
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 $HOST_IP
openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address $HOST_IP

openstack-config --set /etc/nova/nova.conf glance api_servers http://$HOST_NAME:9292

openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp

openstack-config --set /etc/nova/nova.conf placement os_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://$HOST_NAME:35357/v3
openstack-config --set /etc/nova/nova.conf placement username placement
openstack-config --set /etc/nova/nova.conf placement password $NOVA_PASS



echo "
<Directory /usr/bin>
   <IfVersion >= 2.4>
   Require all granted
  </IfVersion>
  <IfVersion < 2.4>
	  Order allow,deny
 	 Allow from all
</IfVersion>
</Directory>">>/etc/httpd/conf.d/00-nova-placement-api.conf
systemctl restart httpd
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
nova-manage cell_v2 list_cells

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
systemctl status openstack-nova-api.service  openstack-nova-consoleauth.service openstack-nova-scheduler.service  openstack-nova-conductor.service openstack-nova-novncproxy.service|grep Active

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
nova-status upgrade check

yum install -y openstack-dashboard
sed -i -e '188s/127.0.0.1/controller/g' \
-e "s/ALLOWED_HOSTS.*/ALLOWED_HOSTS= ['*', 'two.example.com']/g" \
-e '76s/^/OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT =True/g' \
-e "98s/^/OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'Default'/g" \
-e 's/OPENSTACK_KEYSTONE_DEFAULT_ROLE.*/OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"/g' /etc/openstack-dashboard/local_settings

echo "
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
'default': {
    'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
    'LOCATION': 'controller:11211',
}
}

OPENSTACK_API_VERSIONS = {
"\"identity"\": 3,
"\"image"\": 2,
"\"volume"\": 2,
}" >> /etc/openstack-dashboard/local_settings

sed -i '4s/^/WSGIApplicationGroup %{GLOBAL}/g' /etc/httpd/conf.d/openstack-dashboard.conf

systemctl restart httpd memcached
curl -L http://10.32.25.31/dashboard
if [ 0 -eq $? ];then
echo "dashboard安装成功"
sleep 2
else
echo "dashboard安装失败"
sleep 2
fi

mysql -uroot -p$DB_PASS <<eof
create database neutron;
grant all privileges on neutron.* to 'neutron'@'localhost' identified by '$NEUTRON_DBPASS';
grant all privileges on neutron.* to 'neutron'@'%' identified by '$NEUTRON_DBPASS';
eof
openstack user create --domain default --password $NEUTRON_PASS neutron
openstack role add --project service --user neutron admin
openstack service create --name neutron --description "openstack Netwoking" network
openstack endpoint create --region RegionOne network admin http://controller:9696
openstack endpoint create --region RegionOne network public http://controller:9696
openstack endpoint create --region RegionOne network internal http://controller:9696

yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables -y
openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone 
openstack-config --set /etc/neutron/neutron.conf DEFAULT core_plugin ml2
openstack-config --set /etc/neutron/neutron.conf DEFAULT service_plugins router
openstack-config --set /etc/neutron/neutron.conf DEFAULT transport_url rabbit://openstack:000000@controller
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 DEFAULT allow_overlapping_ips true

openstack-config --set /etc/neutron/neutron.conf database connection mysql+pymysql://neutron:000000@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 000000

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 000000

openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmp

openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers flat,vlan,vxlan
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vxlan
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers linuxbridge,l2population
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 ml2_type_vxlan vni_ranges 1:1000
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_ipset true

openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini linux_bridge physical_interface_mappings provider:eth1
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan enable_vxlan true
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan local_ip $INTERFACE_IP
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan l2_population true
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/l3_agent.ini DEFAULT interface_driver linuxbridge

openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT interface_driver linuxbridge
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


openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT nova_metadata_host controller
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT metadata_proxy_shared_secret 000000

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 000000
openstack-config --set /etc/nova/nova.conf neutron service_metadata_proxy true
openstack-config --set /etc/nova/nova.conf neutron metadata_proxy_shared_secret 000000

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 neutron-l3-agent.service

systemctl start neutron-server.service   neutron-linuxbridge-agent.service neutron-dhcp-agent.service   neutron-metadata-agent.service neutron-l3-agent.service

systemctl status neutron-server.service   neutron-linuxbridge-agent.service neutron-dhcp-agent.service   neutron-metadata-agent.service neutron-l3-agent.service|grep Active

openstack flavor create --id 1 --ram 2200 --disk 15 --vcpus 1 test 
ssh-keygen -q -N "" << eof
enter
eof

openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
openstack network create --share --external --provider-physical-network provider --provider-network-type flat provider
openstack subnet create --network provider --gateway 10.32.30.1 --subnet-range 10.32.30.0/24 provider
openstack network create selfservice
openstack subnet create --network selfservice --gateway 10.10.1.1 --subnet-range 10.10.1.0/24 selfservice
openstack router create router
neutron router-interface-add router selfservice
neutron router-gateway-set router provider
glance image-create --name CentOS6 --disk-format qcow2 --container-format bare --progress </root/cirros-0.3.5-x86_64-disk.img 

补充:dashboard

yum install -y openstack-dashboard
vi /etc/openstack-dashboard/local_settings
修改:
OPENSTACK_HOST = "controller"
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
ALLOWED_HOSTS = ['*','two.example.com']
添加:
:/CACHES
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
OPENSTACK_API_VERSIONS = {
"identity": 3,
"image": 2,
"volume": 2,
}
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'Default'

vi /etc/httpd/conf.d/openstack-dashboard.conf 
添加:
WSGIApplicationGroup %{GLOBAL}
重启http服务
systemctl restart httpd memcached

default
用户名:admin
密码:000000
查看本机cpu
cat /proc/cpuinfo
grep -E '(svm|vmx)' /proc/cpuinfo 
compute节点
vi /etc/nova/nova.conf 
添加:
virt_type=qemu
重启:
systemctl restart libvirtd.service openstack-nova-compute.service
创建虚拟机:
openstack flavor list
openstack flavor create --id 1 --ram 2200 --disk 15 --vcpus 1 test 
ssh-keygen -q -N ""
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
创建网络:
openstack network create --share --external --provider-physical-network provider --provider-network-type flat provider
创建子网:
openstack subnet create --network provider --gateway 10.32.30.1 --subnet-range 10.32.30.0/24 provider
openstack network create selfservice
openstack subnet create --network selfservice --gateway 10.10.1.1 --subnet-range 10.10.1.0/24 selfservice
路由
openstack router create router
neutron router-interface-add router selfservice
neutron router-gateway-set router provider
ip netns
创建虚拟机:
glance image-create --name CentOS6 --disk-format qcow2 --container-format bare --progress </root/CentOS_6.5_x86_64_XD.qcow2
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值