openstack pike单机一键安装shell的方法
#VM虚拟机8G内存,安装完毕,半个小时左右
#在线安装
#环境centos7.4.1708x86_64
#在线安装openstackpike
curlhttp://elven.vip/ks/openstack/pike.install.sh>pike.install.sh&&shpike.install.sh
更新日期2017-11-21
新增内容:
安装完成后,自动创建秘钥、主机类型、cirros测试镜像、网络、虚拟机kvm01
也就是安装完成后,就自动创建启动了虚拟机kvm01
#有兴趣的小伙伴,可以测试反馈
已安装的VMware虚拟机镜像下载地址:https://www.nhooo.com/softs/60337.html
#shell代码分享(最新代码以在线安装为准,以下shell无错误,不在更新)
#!/bin/sh
#openstackpike单机一键安装
#环境centos7.4.1708x86_64
#更多内容http://dwz.cn/openstack
#MydebyElven
[[`uname-r`=*el7*]]&&{echo'开启安装openstackpike';}||{echo'请在CentOS7.4环境运行';exit;}
##########################################
#参数
#获取第一块网卡名、ip地址
Net=`ipadd|egrepglobal|awk'{print$NF}'|head-n1`
IP=`ipadd|grepglobal|awk-F'[/]+''{print$3}'|head-n1`
echo"网卡名称:$Net"
echo"IP地址:$IP"
#参数
DBPass=elven2017#SQLroot密码
Node=controller#节点名(controller不要改动)
Netname=$Net#网卡名称
MyIP=$IP#IP地址
VncProxy=$IP#VNC代理外网IP地址
Imgdir=/date/glance#自定义glance镜像目录
VHD=/date/nova#自定义Nova实例路径
Kvm=qemu#QEMU或KVM,KVM需要硬件支持
##########################################
#1、设置
echo'关闭selinux、防火墙'
systemctlstopfirewalld.service
systemctldisablefirewalld.service
firewall-cmd--state
sed-i'/^SELINUX=.*/cSELINUX=disabled'/etc/selinux/config
sed-i's/^SELINUXTYPE=.*/SELINUXTYPE=disabled/g'/etc/selinux/config
grep--color=auto'^SELINUX'/etc/selinux/config
setenforce0
echo'时间同步'
/usr/sbin/ntpdatentp6.aliyun.com
echo"*/3****/usr/sbin/ntpdatentp6.aliyun.com&>/dev/null">/tmp/crontab
crontab/tmp/crontab
echo'设置hostname'
hostnamectlset-hostname$Node
echo"$MyIP$Node">>/etc/hosts
#使用阿里源
rm-f/etc/yum.repos.d/*
wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo
wget-O/etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-7.repo
sed-i'/aliyuncs.com/d'/etc/yum.repos.d/*.repo#删除阿里内网地址
echo'自定义openstack源'
wget-O/etc/yum.repos.d/Ali-pike.repohttp://elven.vip/ks/openstack/Ali-pike.repo
yumcleanall&&yummakecache#生成缓存
##########################################
#2安装
functioninstallrpm()
{
echo'OpenStacktools安装'
yuminstall-ypython-openstackclientopenstack-selinux\
python2-PyMySQLopenstack-utils
echo'MariaDB安装'
yuminstallmariadbmariadb-servermariadb-galera-server-y
yuminstallexpect-y
echo'RabbitMQ安装'
yuminstallrabbitmq-servererlangsocat-y
echo'Keystone安装'
yuminstall-yopenstack-keystonehttpdmod_wsgimemcachedpython-memcached
yuminstallaprapr-util-y
echo'安装Glance'
yuminstall-yopenstack-glancepython-glance
echo'安装nova'
yuminstall-yopenstack-nova-apiopenstack-nova-conductor\
openstack-nova-consoleopenstack-nova-novncproxy\
openstack-nova-scheduleropenstack-nova-placement-api\
openstack-nova-compute
echo'安装neutron'
yuminstall-yopenstack-neutronopenstack-neutron-ml2\
openstack-neutron-linuxbridgepython-neutronclientebtablesipset
echo'安装dashboard'
yuminstallopenstack-dashboard-y
}
echo'安装openstack'
installrpm
echo'再次安装,防止下载失败'
installrpm
##########################################
#3、配置
##------------------#####################
echo'SQL数据库配置'
cp/etc/my.cnf.d/openstack.cnf{,.bak}
echo"#
[mysqld]
bind-address=0.0.0.0
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
echo'启动数据库服务'
systemctlenablemariadb.service
systemctlstartmariadb.service
sleep5
netstat-antp|grepmysqld
#mysql_secure_installation#初始化设置密码,自动交互
[[-f/usr/bin/expect]]||{yuminstallexpect-y;}#若没expect则安装
/usr/bin/expect</etc/rabbitmq/rabbitmq-env.conf
systemctlenablerabbitmq-server.service
systemctlstartrabbitmq-server.service
sleep3
rabbitmq-pluginsenablerabbitmq_management#启动web插件端口15672
sleep6
##########
#rabbit创建用户及密码
rabbitmqctladd_useradminadmin
rabbitmqctlset_user_tagsadminadministrator
rabbitmqctladd_useropenstackopenstack
rabbitmqctlset_permissionsopenstack".*"".*"".*"
rabbitmqctlset_user_tagsopenstackadministrator
systemctlrestartrabbitmq-server.service
sleep3
netstat-antp|grep'5672'
[[`rabbitmqctllist_users|grepopenstack|wc-l`=1]]||{
echo'rabbit创建用户失败';
echo'rabbit创建用户失败,请手动执行命令创建用户'>>./error.install.log;}
##------------------#####################
#Keystone
#memcached启动
cp/etc/sysconfig/memcached{,.bak}
systemctlenablememcached.service
systemctlstartmemcached.service
netstat-antp|grep11211
echo'Keystone配置'
cp/etc/keystone/keystone.conf{,.bak}#备份默认配置
Keys=$(opensslrand-hex10)#生成随机密码
echo$Keys
echo"kestone$Keys">/root/openstack.log
echo"
[DEFAULT]
admin_token=$Keys
verbose=true
[database]
connection=mysql+pymysql://keystone:keystone@controller/keystone
[token]
provider=fernet
driver=memcache
[memcache]
servers=controller:11211
">/etc/keystone/keystone.conf
#初始化身份认证服务的数据库
su-s/bin/sh-c"keystone-managedb_sync"keystone
#检查表是否创建成功
mysql-hcontroller-ukeystone-pkeystone-e"usekeystone;showtables;"
#初始化密钥存储库
keystone-managefernet_setup--keystone-userkeystone--keystone-groupkeystone
keystone-managecredential_setup--keystone-userkeystone--keystone-groupkeystone
#设置admin用户(管理用户)和密码
keystone-managebootstrap--bootstrap-passwordadmin\
--bootstrap-admin-urlhttp://controller:35357/v3/\
--bootstrap-internal-urlhttp://controller:5000/v3/\
--bootstrap-public-urlhttp://controller:5000/v3/\
--bootstrap-region-idRegionOne
#apache配置
cp/etc/httpd/conf/httpd.conf{,.bak}
echo"ServerNamecontroller">>/etc/httpd/conf/httpd.conf
ln-s/usr/share/keystone/wsgi-keystone.conf/etc/httpd/conf.d/
#ApacheHTTP启动并设置开机自启动
systemctlenablehttpd.service
systemctlrestarthttpd.service
sleep3
netstat-antp|egrep':5000|:35357|:80'
#创建OpenStack客户端环境脚本
#admin环境脚本
echo"
exportOS_PROJECT_DOMAIN_NAME=default
exportOS_USER_DOMAIN_NAME=default
exportOS_PROJECT_NAME=admin
exportOS_USERNAME=admin
exportOS_PASSWORD=admin
exportOS_AUTH_URL=http://controller:35357/v3
exportOS_IDENTITY_API_VERSION=3
exportOS_IMAGE_API_VERSION=2
">./admin-openstack.sh
#测试脚本是否生效
source./admin-openstack.sh
openstacktokenissue
#创建service项目,创建glance,nova,neutron用户,并授权
openstackprojectcreate--domaindefault--description"ServiceProject"service
openstackusercreate--domaindefault--password=glanceglance
openstackroleadd--projectservice--userglanceadmin
openstackusercreate--domaindefault--password=novanova
openstackroleadd--projectservice--usernovaadmin
openstackusercreate--domaindefault--password=neutronneutron
openstackroleadd--projectservice--userneutronadmin
#创建demo项目(普通用户密码及角色)
openstackprojectcreate--domaindefault--description"DemoProject"demo
openstackusercreate--domaindefault--password=demodemo
openstackrolecreateuser
openstackroleadd--projectdemo--userdemouser
#demo环境脚本
echo"
exportOS_PROJECT_DOMAIN_NAME=default
exportOS_USER_DOMAIN_NAME=default
exportOS_PROJECT_NAME=demo
exportOS_USERNAME=demo
exportOS_PASSWORD=demo
exportOS_AUTH_URL=http://controller:5000/v3
exportOS_IDENTITY_API_VERSION=3
exportOS_IMAGE_API_VERSION=2
">./demo-openstack.sh
#测试脚本是否生效
source./demo-openstack.sh
openstacktokenissue
##------------------#####################
echo'Glance镜像服务'
#keystone上服务注册,创建glance服务实体,API端点(公有、私有、admin)
source./admin-openstack.sh||{echo"加载前面设置的admin-openstack.sh环境变量脚本";exit;}
openstackservicecreate--nameglance--description"OpenStackImage"image
openstackendpointcreate--regionRegionOneimagepublichttp://controller:9292
openstackendpointcreate--regionRegionOneimageinternalhttp://controller:9292
openstackendpointcreate--regionRegionOneimageadminhttp://controller:9292
cp/etc/glance/glance-api.conf{,.bak}
cp/etc/glance/glance-registry.conf{,.bak}
#images默认/var/lib/glance/images/
#Imgdir=/date/glance
mkdir-p$Imgdir
chownglance:nobody$Imgdir
echo"镜像目录:$Imgdir"
echo"#
[database]
connection=mysql+pymysql://glance:glance@controller/glance
[keystone_authtoken]
auth_uri=http://controller:5000/v3
auth_url=http://controller:35357/v3
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=glance
password=glance
[paste_deploy]
flavor=keystone
[glance_store]
stores=file,http
default_store=file
filesystem_store_datadir=$Imgdir
#">/etc/glance/glance-api.conf
#
echo"#
[database]
connection=mysql+pymysql://glance:glance@controller/glance
[keystone_authtoken]
auth_uri=http://controller:5000/v3
auth_url=http://controller:35357/v3
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=glance
password=glance
[paste_deploy]
flavor=keystone
#">/etc/glance/glance-registry.conf
#同步数据库,检查数据库
su-s/bin/sh-c"glance-managedb_sync"glance
mysql-hcontroller-uglance-pglance-e"useglance;showtables;"
#启动服务并设置开机自启动
systemctlenableopenstack-glance-apiopenstack-glance-registry
systemctlstartopenstack-glance-apiopenstack-glance-registry
netstat-antp|egrep'9292|9191'#检测服务端口
##------------------#####################
#创建Nova数据库、用户、认证,前面已设置
source./admin-openstack.sh
#keystone上服务注册,创建nova用户、服务、API
#nova用户前面已建
openstackservicecreate--namenova--description"OpenStackCompute"compute
openstackendpointcreate--regionRegionOnecomputepublichttp://controller:8774/v2.1
openstackendpointcreate--regionRegionOnecomputeinternalhttp://controller:8774/v2.1
openstackendpointcreate--regionRegionOnecomputeadminhttp://controller:8774/v2.1
#创建placement用户、服务、API
openstackusercreate--domaindefault--password=placementplacement
openstackroleadd--projectservice--userplacementadmin
openstackservicecreate--nameplacement--description"PlacementAPI"placement
openstackendpointcreate--regionRegionOneplacementpublichttp://controller:8778
openstackendpointcreate--regionRegionOneplacementinternalhttp://controller:8778
openstackendpointcreate--regionRegionOneplacementadminhttp://controller:8778
mkdir-p$VHD
chown-Rnova:nova$VHD
echo'nova配置'
echo'#
[DEFAULT]
instances_path='$VHD'
enabled_apis=osapi_compute,metadata
transport_url=rabbit://openstack:openstack@controller
my_ip='$MyIP'
use_neutron=True
firewall_driver=nova.virt.firewall.NoopFirewallDriver
osapi_compute_listen_port=8774
[api_database]
connection=mysql+pymysql://nova:nova@controller/nova_api
[database]
connection=mysql+pymysql://nova:nova@controller/nova
[api]
auth_strategy=keystone
[keystone_authtoken]
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=nova
[vnc]
enabled=true
vncserver_listen=$my_ip
vncserver_proxyclient_address=$my_ip
novncproxy_base_url=http://'$VncProxy':6080/vnc_auto.html
[glance]
api_servers=http://controller:9292
[oslo_concurrency]
lock_path=/var/lib/nova/tmp
[placement]
os_region_name=RegionOne
project_domain_name=Default
project_name=service
auth_type=password
user_domain_name=Default
auth_url=http://controller:35357/v3
username=placement
password=placement
[scheduler]
discover_hosts_in_cells_interval=300
[libvirt]
virt_type='$Kvm'
#'>/etc/nova/nova.conf
echo"
#PlacementAPI
=2.4>
Requireallgranted
Orderallow,deny
Allowfromall
">>/etc/httpd/conf.d/00-nova-placement-api.conf
systemctlrestarthttpd
sleep5
#同步数据库
su-s/bin/sh-c"nova-manageapi_dbsync"nova
su-s/bin/sh-c"nova-managecell_v2map_cell0"nova
su-s/bin/sh-c"nova-managecell_v2create_cell--name=cell1--verbose"nova
su-s/bin/sh-c"nova-managedbsync"nova
#检测数据
nova-managecell_v2list_cells
mysql-hcontroller-unova-pnova-e"usenova_api;showtables;"
mysql-hcontroller-unova-pnova-e"usenova;showtables;"
mysql-hcontroller-unova-pnova-e"usenova_cell0;showtables;"
##------------------#####################
echo'Neutron服务'
source./admin-openstack.sh
#创建Neutron服务实体,API端点
openstackservicecreate--nameneutron--description"OpenStackNetworking"network
openstackendpointcreate--regionRegionOnenetworkpublichttp://controller:9696
openstackendpointcreate--regionRegionOnenetworkinternalhttp://controller:9696
openstackendpointcreate--regionRegionOnenetworkadminhttp://controller:9696
#Neutron备份配置
cp/etc/neutron/neutron.conf{,.bak2}
cp/etc/neutron/plugins/ml2/ml2_conf.ini{,.bak}
ln-s/etc/neutron/plugins/ml2/ml2_conf.ini/etc/neutron/plugin.ini
cp/etc/neutron/plugins/ml2/linuxbridge_agent.ini{,.bak}
cp/etc/neutron/dhcp_agent.ini{,.bak}
cp/etc/neutron/metadata_agent.ini{,.bak}
cp/etc/neutron/l3_agent.ini{,.bak}
#配置
echo'
#
[neutron]
url=http://controller:9696
auth_url=http://controller:35357
auth_type=password
project_domain_name=default
user_domain_name=default
region_name=RegionOne
project_name=service
username=neutron
password=neutron
service_metadata_proxy=true
metadata_proxy_shared_secret=metadata
#'>>/etc/nova/nova.conf
#
echo'
[DEFAULT]
nova_metadata_ip=controller
metadata_proxy_shared_secret=metadata
#'>/etc/neutron/metadata_agent.ini
#
echo'#
[ml2]
tenant_network_types=
type_drivers=vlan,flat
mechanism_drivers=linuxbridge
extension_drivers=port_security
[ml2_type_flat]
flat_networks=provider
[securitygroup]
enable_ipset=True
#'>/etc/neutron/plugins/ml2/ml2_conf.ini
echo'#
[linux_bridge]
physical_interface_mappings=provider:'$Netname'
[vxlan]
enable_vxlan=false
[agent]
prevent_arp_spoofing=True
[securitygroup]
firewall_driver=neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
enable_security_group=True
#'>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
#
echo'#
[DEFAULT]
interface_driver=linuxbridge
dhcp_driver=neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata=true
#'>/etc/neutron/dhcp_agent.ini
#
echo'
[DEFAULT]
core_plugin=ml2
service_plugins=router
allow_overlapping_ips=true
transport_url=rabbit://openstack:openstack@controller
auth_strategy=keystone
notify_nova_on_port_status_changes=true
notify_nova_on_port_data_changes=true
[keystone_authtoken]
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=neutron
password=neutron
[nova]
auth_url=http://controller:35357
auth_type=password
project_domain_id=default
user_domain_id=default
region_name=RegionOne
project_name=service
username=nova
password=nova
[database]
connection=mysql://neutron:neutron@controller:3306/neutron
[oslo_concurrency]
lock_path=/var/lib/neutron/tmp
#'>/etc/neutron/neutron.conf
#
echo'
[DEFAULT]
interface_driver=linuxbridge
#'>/etc/neutron/l3_agent.ini
#
#同步数据库
su-s/bin/sh-c"neutron-db-manage--config-file/etc/neutron/neutron.conf\
--config-file/etc/neutron/plugins/ml2/ml2_conf.iniupgradehead"neutron
#检测数据
mysql-hcontroller-uneutron-pneutron-e"useneutron;showtables;"
##------------------#####################
#dashboard
echo'配置openstackWeb'
cp/etc/openstack-dashboard/local_settings{,.bak}
Setfiles=/etc/openstack-dashboard/local_settings
sed-i's#_member_#user#g'$Setfiles
sed-i's#OPENSTACK_HOST="127.0.0.1"#OPENSTACK_HOST="controller"#'$Setfiles
##允许所有主机访问#
sed-i"/ALLOWED_HOSTS/cALLOWED_HOSTS=['*',]"$Setfiles
#去掉memcached注释#
sed-in'153,158s/#//'$Setfiles
sed-in'160,164s/.*/#&/'$Setfiles
sed-i's#UTC#Asia/Shanghai#g'$Setfiles
sed-i's#%s:5000/v2.0#%s:5000/v3#'$Setfiles
sed-i'/ULTIDOMAIN_SUPPORT/cOPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT=True'$Setfiles
sed-i"s@^#OPENSTACK_KEYSTONE_DEFAULT@OPENSTACK_KEYSTONE_DEFAULT@"$Setfiles
echo'
#set
OPENSTACK_API_VERSIONS={
"identity":3,
"image":2,
"volume":2,
}
#'>>$Setfiles
systemctlrestarthttpd
sleep5
##########################################
echo'启动服务'
#Apache
systemctlenablehttpd.service
#systemctlrestarthttpdhaproxy
#netstat-antp|egrep'httpd'
#glance服务
systemctlenableopenstack-glance-apiopenstack-glance-registry
systemctlrestartopenstack-glance-apiopenstack-glance-registry
#nova服务
systemctlenableopenstack-nova-api.service\
openstack-nova-consoleauth.serviceopenstack-nova-scheduler.service\
openstack-nova-conductor.serviceopenstack-nova-novncproxy.service\
libvirtd.serviceopenstack-nova-compute.service
#启动
systemctlstartopenstack-nova-api.service\
openstack-nova-consoleauth.serviceopenstack-nova-scheduler.service\
openstack-nova-conductor.serviceopenstack-nova-novncproxy.service\
libvirtd.serviceopenstack-nova-compute.service
#neutron服务
systemctlenableneutron-server.service\
neutron-linuxbridge-agent.serviceneutron-dhcp-agent.service\
neutron-metadata-agent.serviceneutron-l3-agent.service
systemctlstartneutron-server.service\
neutron-linuxbridge-agent.serviceneutron-dhcp-agent.service\
neutron-metadata-agent.serviceneutron-l3-agent.service
##########################################
#cheack
echo"查看节点"
source./admin-openstack.sh
openstackcomputeservicelist
openstacknetworkagentlist
##########################################
#end
echo'
安装完毕!
数据库root密码'$DBPass'
登录Web管理http://'$MyIP'/dashboard
域default
用户admin
密码admin
推荐火狐浏览器
'
##########################################
##在线安装
#yuminstall-ywget&&wget-Opike.install.sh\
http://elven.vip/ks/openstack/pike.install.sh&&shpike.install.sh
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。