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 ">>/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 =2.4> Requireallgranted Orderallow,deny Allowfromall
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。