一键安装openstack juno 之controller node.

原文名称: OpenStack Juno Scripted Installation on CentOS 7

Step I:  本机信息配置

CONTROLLER_IP=192.168.173.133
ADMIN_TOKEN=ADMIN123
SERVICE_PWD=Service123
ADMIN_PWD=password

#this host IP info
THISHOST_NAME=juno-controller
THISHOST_IP=192.168.173.133
THISHOST_NETMASK=255.255.255.0
THISHOST_GATEWAY=192.168.173.2
THISHOST_DNS=192.168.173.2

+++++++++++++++++++++++++++++++我是分割线+++++++++++++++++++++++++++++

另存文件为: config

Step III:  本机IP 设定

#!/bin/bash

#get config info
source config

#enumerate NICs
for i in $(ls /sys/class/net); do
    NIC=$i
    MY_MAC=$(cat /sys/class/net/$i/address)
    if [ "$(cat /sys/class/net/$i/ifindex)" == ‘2‘ ]; then
        #setup the IP configuration for 1st NIC
        sed -i.bak "s/dhcp/none/g" /etc/sysconfig/network-scripts/ifcfg-$NIC
        sed -i "s/HWADDR/#HWADDR/g" /etc/sysconfig/network-scripts/ifcfg-$NIC
        sed -i "/#HWADDR/a HWADDR=\"$MY_MAC\"" /etc/sysconfig/network-scripts/ifcfg-$NIC
        sed -i "s/UUID/#UUID/g" /etc/sysconfig/network-scripts/ifcfg-$NIC
        echo "IPADDR=\"$THISHOST_IP\"" >> /etc/sysconfig/network-scripts/ifcfg-$NIC
        echo "NETMASK=\"$THISHOST_NETMASK\"" >> /etc/sysconfig/network-scripts/ifcfg-$NIC
        echo "GATEWAY=\"$THISHOST_GATEWAY\"" >> /etc/sysconfig/network-scripts/ifcfg-$NIC
        echo "DNS1=\"$THISHOST_DNS\"" >> /etc/sysconfig/network-scripts/ifcfg-$NIC
        mv /etc/sysconfig/network-scripts/ifcfg-$NIC.bak .
    fi
    if [ "$(cat /sys/class/net/$i/ifindex)" == ‘3‘ ]; then
        #create config file for 2nd NIC
        echo "HWADDR=\"$MY_MAC\"" > /etc/sysconfig/network-scripts/ifcfg-$NIC
        echo "TYPE=\"Ethernet\"" >> /etc/sysconfig/network-scripts/ifcfg-$NIC
        echo "BOOTPROTO=\"none\"" >> /etc/sysconfig/network-scripts/ifcfg-$NIC
        echo "IPV4_FAILURE_FATAL=\"no\"" >> /etc/sysconfig/network-scripts/ifcfg-$NIC
        echo "NAME=\"$NIC\"" >> /etc/sysconfig/network-scripts/ifcfg-$NIC
        echo "ONBOOT=\"yes\"" >> /etc/sysconfig/network-scripts/ifcfg-$NIC
    fi
done

#setup hostname
echo "$THISHOST_NAME" > /etc/hostname
echo "$THISHOST_IP    $THISHOST_NAME" >> /etc/hosts

reboot
+++++++++++++++++++++++++++++++我是分割线+++++++++++++++++++++++++++++sudo ./ipconfig.sh

Step III:  安装配置 OpenStack controller services

#!/bin/bash

#get the configuration info
source config

#install ntp
yum -y install ntp
systemctl enable ntpd.service
systemctl start ntpd.service

#openstack repos
yum -y install yum-plugin-priorities
yum -y install epel-release
yum -y install http://rdo.fedorapeople.org/openstack-juno/rdo-release-juno.rpm
yum -y upgrade
#yum -y install openstack-selinux

#loosen things up
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i ‘s/enforcing/disabled/g‘ /etc/selinux/config
echo 0 > /sys/fs/selinux/enforce

#install database server
yum -y install mariadb mariadb-server MySQL-python

#edit /etc/my.cnf
sed -i.bak "10i\bind-address = $CONTROLLER_IP\ndefault-storage-engine = innodb\ninnodb_file_per_table\ncollation-server = utf8_general_ci\ninit-connect = ‘SET NAMES utf8‘\ncharacter-set-server = utf8\n" /etc/my.cnf

#start database server
systemctl enable mariadb.service
systemctl start mariadb.service

echo ‘now run through the mysql_secure_installation‘
mysql_secure_installation

#create databases
echo ‘Enter the new MySQL root password‘
mysql -u root -p <<EOF
CREATE DATABASE nova;
CREATE DATABASE cinder;
CREATE DATABASE glance;
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON nova.* TO ‘nova‘@‘localhost‘ IDENTIFIED BY ‘$SERVICE_PWD‘;
GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder‘@‘localhost‘ IDENTIFIED BY ‘$SERVICE_PWD‘;
GRANT ALL PRIVILEGES ON glance.* TO ‘glance‘@‘localhost‘ IDENTIFIED BY ‘$SERVICE_PWD‘;
GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone‘@‘localhost‘ IDENTIFIED BY ‘$SERVICE_PWD‘;
GRANT ALL PRIVILEGES ON nova.* TO ‘nova‘@‘%‘ IDENTIFIED BY ‘$SERVICE_PWD‘;
GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder‘@‘%‘ IDENTIFIED BY ‘$SERVICE_PWD‘;
GRANT ALL PRIVILEGES ON glance.* TO ‘glance‘@‘%‘ IDENTIFIED BY ‘$SERVICE_PWD‘;
GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone‘@‘%‘ IDENTIFIED BY ‘$SERVICE_PWD‘;
FLUSH PRIVILEGES;
EOF

#install messaging service
yum -y install rabbitmq-server
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service

#install keystone
yum -y install openstack-keystone python-keystoneclient

#edit /etc/keystone.conf
sed -i.bak "s/#admin_token=ADMIN/admin_token=$ADMIN_TOKEN/g" /etc/keystone/keystone.conf

sed -i "/\[database\]/a connection = mysql://keystone:[email protected]$CONTROLLER_IP/keystone" /etc/keystone/keystone.conf

sed -i "/\[token\]/a provider = keystone.token.providers.uuid.Provider\ndriver = keystone.token.persistence.backends.sql.Token\n" /etc/keystone/keystone.conf

#finish keystone setup
keystone-manage pki_setup --keystone-user keystone --keystone-group keystone
chown -R keystone:keystone /var/log/keystone
chown -R keystone:keystone /etc/keystone/ssl
chmod -R o-rwx /etc/keystone/ssl
su -s /bin/sh -c "keystone-manage db_sync" keystone

#start keystone
systemctl enable openstack-keystone.service
systemctl start openstack-keystone.service

#schedule token purge
(crontab -l -u keystone 2>&1 | grep -q token_flush) ||   echo ‘@hourly /usr/bin/keystone-manage token_flush >/var/log/keystone/keystone-tokenflush.log 2>&1‘   >> /var/spool/cron/keystone

#create users and tenants
export OS_SERVICE_TOKEN=$ADMIN_TOKEN
export OS_SERVICE_ENDPOINT=http://$CONTROLLER_IP:35357/v2.0
keystone tenant-create --name admin --description "Admin Tenant"
keystone user-create --name admin --pass $ADMIN_PWD
keystone role-create --name admin
keystone user-role-add --tenant admin --user admin --role admin
keystone role-create --name _member_
keystone user-role-add --tenant admin --user admin --role _member_
keystone tenant-create --name demo --description "Demo Tenant"
keystone user-create --name demo --pass password
keystone user-role-add --tenant demo --user demo --role _member_
keystone tenant-create --name service --description "Service Tenant"
keystone service-create --name keystone --type identity   --description "OpenStack Identity"
keystone endpoint-create   --service-id $(keystone service-list | awk ‘/ identity / {print $2}‘)   --publicurl http://$CONTROLLER_IP:5000/v2.0   --internalurl http://$CONTROLLER_IP:5000/v2.0   --adminurl http://$CONTROLLER_IP:35357/v2.0   --region regionOne
unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT

#create credentials file
echo "export OS_TENANT_NAME=admin" > creds
echo "export OS_USERNAME=admin" >> creds
echo "export OS_PASSWORD=$ADMIN_PWD" >> creds
echo "export OS_AUTH_URL=http://$CONTROLLER_IP:35357/v2.0" >> creds
source creds

#create keystone entries for glance
keystone user-create --name glance --pass $SERVICE_PWD
keystone user-role-add --user glance --tenant service --role admin
keystone service-create --name glance --type image   --description "OpenStack Image Service"
keystone endpoint-create   --service-id $(keystone service-list | awk ‘/ image / {print $2}‘)   --publicurl http://$CONTROLLER_IP:9292   --internalurl http://$CONTROLLER_IP:9292   --adminurl http://$CONTROLLER_IP:9292   --region regionOne

#install glance
yum -y install openstack-glance python-glanceclient

#edit /etc/glance/glance-api.conf
sed -i.bak "/\[database\]/a connection = mysql://glance:[email protected]$CONTROLLER_IP/glance" /etc/glance/glance-api.conf

sed -i "/\[keystone_authtoken\]/a auth_uri = http://$CONTROLLER_IP:5000/v2.0\nidentity_uri = http://$CONTROLLER_IP:35357\nadmin_tenant_name = service\nadmin_user = glance\nadmin_password = $SERVICE_PWD" /etc/glance/glance-api.conf

sed -i "/\[paste_deploy\]/a flavor = keystone" /etc/glance/glance-api.conf

sed -i "/\[glance_store\]/a default_store = file\nfilesystem_store_datadir = /var/lib/glance/images/" /etc/glance/glance-api.conf

#edit /etc/glance/glance-registry.conf
sed -i.bak "/\[database\]/a connection = mysql://glance:[email protected]$CONTROLLER_IP/glance" /etc/glance/glance-registry.conf

sed -i "/\[keystone_authtoken\]/a auth_uri = http://$CONTROLLER_IP:5000/v2.0\nidentity_uri = http://$CONTROLLER_IP:35357\nadmin_tenant_name = service\nadmin_user = glance\nadmin_password = $SERVICE_PWD" /etc/glance/glance-registry.conf

sed -i "/\[paste_deploy\]/a flavor = keystone" /etc/glance/glance-registry.conf

#start glance
su -s /bin/sh -c "glance-manage db_sync" glance
systemctl enable openstack-glance-api.service openstack-glance-registry.service
systemctl start openstack-glance-api.service openstack-glance-registry.service

#upload the cirros image to glance
yum -y install wget
wget http://cdn.download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
glance image-create --name "cirros-0.3.3-x86_64" --file cirros-0.3.3-x86_64-disk.img   --disk-format qcow2 --container-format bare --is-public True --progress

#create the keystone entries for nova
keystone user-create --name nova --pass $SERVICE_PWD
keystone user-role-add --user nova --tenant service --role admin
keystone service-create --name nova --type compute   --description "OpenStack Compute"
keystone endpoint-create   --service-id $(keystone service-list | awk ‘/ compute / {print $2}‘)   --publicurl http://$CONTROLLER_IP:8774/v2/%\(tenant_id\)s   --internalurl http://$CONTROLLER_IP:8774/v2/%\(tenant_id\)s   --adminurl http://$CONTROLLER_IP:8774/v2/%\(tenant_id\)s   --region regionOne

#install the nova controller components
yum -y install openstack-nova-api openstack-nova-cert openstack-nova-conductor   openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler   python-novaclient

#edit /etc/nova/nova.conf
sed -i.bak "/\[database\]/a connection = mysql://nova:[email protected]$CONTROLLER_IP/nova" /etc/nova/nova.conf

sed -i "/\[DEFAULT\]/a rpc_backend = rabbit\nrabbit_host = $CONTROLLER_IP\nauth_strategy = keystone\nmy_ip = $CONTROLLER_IP\nvncserver_listen = $CONTROLLER_IP\nvncserver_proxyclient_address = $CONTROLLER_IP\nnetwork_api_class = nova.network.api.API\nsecurity_group_api = nova" /etc/nova/nova.conf

sed -i "/\[keystone_authtoken\]/i [database]\nconnection = mysql://nova:[email protected]$CONTROLLER_IP/nova" /etc/nova/nova.conf

sed -i "/\[keystone_authtoken\]/a auth_uri = http://$CONTROLLER_IP:5000/v2.0\nidentity_uri = http://$CONTROLLER_IP:35357\nadmin_tenant_name = service\nadmin_user = nova\nadmin_password = $SERVICE_PWD" /etc/nova/nova.conf

sed -i "/\[glance\]/a host = $CONTROLLER_IP" /etc/nova/nova.conf

#start nova
su -s /bin/sh -c "nova-manage db sync" nova

systemctl enable openstack-nova-api.service openstack-nova-cert.service   openstack-nova-consoleauth.service openstack-nova-scheduler.service   openstack-nova-conductor.service openstack-nova-novncproxy.service
systemctl start openstack-nova-api.service openstack-nova-cert.service   openstack-nova-consoleauth.service openstack-nova-scheduler.service   openstack-nova-conductor.service openstack-nova-novncproxy.service

#install dashboard
yum -y install openstack-dashboard httpd mod_wsgi memcached python-memcached

#edit /etc/openstack-dashboard/local_settings
sed -i.bak "s/ALLOWED_HOSTS = \[‘horizon.example.com‘, ‘localhost‘\]/ALLOWED_HOSTS = [‘*‘]/" /etc/openstack-dashboard/local_settings
sed -i ‘s/OPENSTACK_HOST = "127.0.0.1"/OPENSTACK_HOST = "‘"$CONTROLLER_IP"‘"/‘ /etc/openstack-dashboard/local_settings

#start dashboard
setsebool -P httpd_can_network_connect on
chown -R apache:apache /usr/share/openstack-dashboard/static
systemctl enable httpd.service memcached.service
systemctl start httpd.service memcached.service

#create keystone entries for cinder
keystone user-create --name cinder --pass $SERVICE_PWD
keystone user-role-add --user cinder --tenant service --role admin
keystone service-create --name cinder --type volume   --description "OpenStack Block Storage"
keystone service-create --name cinderv2 --type volumev2   --description "OpenStack Block Storage"
keystone endpoint-create   --service-id $(keystone service-list | awk ‘/ volume / {print $2}‘)   --publicurl http://$CONTROLLER_IP:8776/v1/%\(tenant_id\)s   --internalurl http://$CONTROLLER_IP:8776/v1/%\(tenant_id\)s   --adminurl http://$CONTROLLER_IP:8776/v1/%\(tenant_id\)s   --region regionOne
keystone endpoint-create   --service-id $(keystone service-list | awk ‘/ volumev2 / {print $2}‘)   --publicurl http://$CONTROLLER_IP:8776/v2/%\(tenant_id\)s   --internalurl http://$CONTROLLER_IP:8776/v2/%\(tenant_id\)s   --adminurl http://$CONTROLLER_IP:8776/v2/%\(tenant_id\)s   --region regionOne

#install cinder controller
yum -y install openstack-cinder python-cinderclient python-oslo-db

#edit /etc/cinder/cinder.conf
sed -i.bak "/\[database\]/a connection = mysql://cinder:[email protected]$CONTROLLER_IP/cinder" /etc/cinder/cinder.conf

sed -i "/\[DEFAULT\]/a rpc_backend = rabbit\nrabbit_host = $CONTROLLER_IP\nauth_strategy = keystone\nmy_ip = $CONTROLLER_IP" /etc/cinder/cinder.conf

sed -i "/\[keystone_authtoken\]/a auth_uri = http://$CONTROLLER_IP:5000/v2.0\nidentity_uri = http://$CONTROLLER_IP:35357\nadmin_tenant_name = service\nadmin_user = cinder\nadmin_password = $SERVICE_PWD" /etc/cinder/cinder.conf

#start cinder controller
su -s /bin/sh -c "cinder-manage db sync" cinder
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
+++++++++++++++++++++++++++++++我是分割线+++++++++++++++++++++++++++++
sudo ./controller-node.sh

应该安装好。
时间: 2025-01-17 12:41:28

一键安装openstack juno 之controller node.的相关文章

Packstack单节点一键安装openstack

本文介绍在单节点上用packstack一键安装openstack的方法,其中节点的硬件架构为x86_64(必须是64位,32位不可以).操作系统为centos7.官方的安装文档地址为https://openstack.redhat.com/Quickstart. 1 安装软件库 更新安装的软件包,命令如下: sudo yum update -y 建立RDO库,命令如下: sudo yum install -y https://rdo.fedorapeople.org/rdo-release.rp

CentOS7.2下一键安装Openstack

CentOS7.2下一键安装Openstack   系统环境:Oracle VirtualBox 4.38CentOS-7.2-x86_64-bin-DVD1.iso   安装前需要修改 /etc/hosts文件,添加 127.0.0.1 dev-100 (dev-100为当前机器名)否则会报如下错误:Could not start Service[rabbitmq-server]: Execution of '/sbin/service rabbitmq-server start' retur

PackStack一键安装OpenStack

作者:独笔孤行@TaoCloud请添加链接描述OpenStack自动安装比手动搭建消耗的硬件资源较大,因此虚拟机或服务器最低配置为4核CPU+8G内存+20G磁盘,并开启CPU虚拟化.建议配置为8核CPU+16G内存或更高配置,并保证服务器能访问外网. 本次主要测试的成功案例有N.P.Q三个版本,其它版本同样可以借助packstack一键安装OpenStack,安装方式相同.只是Yum源的配置不同而已,主要区别也在于yum源的配置. 成功案例1:Q版OpenStack自动安装 操作系统:Cent

ubuntu14.04server 下安装openstack juno

系统使用ubuntu14.04server 安装之前所有服务器openstack更新源设定: apt-get install python-software-properties apt-get install software-properties-common add-apt-repository cloud-archive:juno apt-get update && apt-get dist-upgrade 安装时间同步服务 apt-get install -y ntp vim /

[IaaS与数据中心] centos7下安装openstack juno

最近不忙,安装了一下openstack juno与大家分享一下.根据以下安装步骤http://docs.openstack.org/juno/i ... ent/ch_preface.html                                openstack-install-guide-yum-juno.pdf                (1.03 MB, 下载次数: 313)先看一下安装完的效果.cryboy2001  2014-12-18一.整体效果,有两台实例aa与bb

使用Fuel安装OpenStack juno之一安装Fuel Master

安装OpenStack是一件很复杂的事情,特别是在想目中,如果一个组件一个组件,一台一台的coding部署,估计太消耗时间,而且出错的概率很高,所以使用工具推送部署的效率就很高了,而且必须得可靠.mirantis是一家专门做openstack服务的公司,对openstack的贡献也很高,目前已经实现盈利,其openstack部署工具Fuel也很高效稳定,可以在生产环境使用,而且可以购买其服务. 那就不多说此工具了,咱们开始部署,先来了解下大致的环境: 部署硬件:windows 7 (8GB RA

[openStack]使用Fuel安装OpenStack juno的fuel_master

安装OpenStack是一件很复杂的事情,特别是在想目中,如果一个组件一个组件,一台一台的coding部署,估计太消耗时间,而且出错的概率很高,所以使用工具推送部署的效率就很高了,而且必须得可靠.mirantis是一家专门做openstack服务的公司,对openstack的贡献也很高,目前已经实现盈利,其openstack部署工具Fuel也很高效稳定,可以在生产环境使用,而且可以购买其服务.    那就不多说此工具了,咱们开始部署,先来了解下大致的环境:部署硬件:windows 7 (8GB

[OpenStack]使用Fuel安装OpenStack juno

安装OpenStack是一件很复杂的事情,特别是在想目中,如果一个组件一个组件,一台一台的coding部署,估计太消耗时间,而且出错的概率很高,所以使用工具推送部署的效率就很高了,而且必须得可靠.mirantis是一家专门做openstack服务的公司,对openstack的贡献也很高,目前已经实现盈利,其openstack部署工具Fuel也很高效稳定,可以在生产环境使用,而且可以购买其服务.    那就不多说此工具了,咱们开始部署,先来了解下大致的环境:部署硬件:windows 7 (8GB

[Openstack]一键安装Openstack测试环境

搭建OpenStack测试环境,供初学者学习使用. OpenStack提供一种最简单的安装方法,ALLinone. 只需要一条命令即可完成Openstack的整个安装 安装环境如下: 1.VMware Fusion 7 PRO 虚拟化平台(也可使用 VMware Workstation) 2.创建VM虚拟机(Redhat 7),vCPU*1/8G/100G,网卡模式为NAT可上网 3.安装CentOS7.1操作系统 4.计算机名称:Allinone IP地址:192.168.100.136/24