Solaris下多节点OpenStack的详细搭建

来源:互联网 发布:充电器检测软件 编辑:程序博客网 时间:2024/06/06 21:10

本文用两台服务器搭建一个双计算节点和双存储节点的OpenStack环境

操作系统是Solaris11.3
Openstack版本为Juno

配置OpenStack 控制节点

配置NTP

本NTP 服务器安装在控制节点上

1. 安装 NTP 软件包。

ntp-server# pkg install ntp

2. 安装配置文件。

ntp-server# cp /etc/inet/ntp.server /etc/inet/ntp.conf

3. 编辑 /etc/inet/ntp.conf 文件:配置 server 和 driftfile 关键字。

例如:

server 127.127.1.0 prefer

...

driftfile /var/ntp/ntp.drift

注 - 127.127.1.0 不是 IP 地址。它是一种格式,用来引用向服务器提供准确时间的时

钟。请务必阅读 ntp.conf 文件中对 server 关键字进行解释的注释。

根据您之前的定义创建 /var/ntp/ntp.drift 文件。

ntp-server# touch /var/ntp/ntp.drift

5. 启动 ntp 服务。

ntp-server# svcadm enable ntp

 

配置NTP客户端

1cp /etc/inet/ntp.client /etc/inet/ntp.conf

2. 配置 /etc/inet/ntp.conf 文件。

a. 注释掉 multicastclient 选项。

b. 取消注释一个或多个服务器选项,并提供 NTP 服务器的具体名称或其 IP 地址。

如下例所示:

# multicastclient 224.0.1.1

...

server IPXXX  iburst

# server server_name2 iburst

# server server_name3 iburst

3. 启用 ntp 服务。

controller# svcadm enable ntp



创建IP

注:net0 供机房内部使用

net1存储网络、管理网络、内网

net2外网

ipadmcreate-ip net1

ipadmcreate-addr - T static -a 192.168.1.100/24 net1/v4

ipadmcreate-addr - T static -a 192.168.0.100/24 net1/v4a

ipadmcreate-ip net2

ipadmcreate-addr - T static -a 172.17.0.100/24 net2/v4

 

2 修改/etc/hosts

172.17.0.100   public_1

172.17.0.101   public_2

192.168.1.100   controller

192.168.1.101   compute

192.168.0.100   admin_1
192.168.0.101    admin_2

3以下都是root 用户

pkg install openstack

pkg install mysql-56 mysql-56/client python-mysql rabbitmq markupsafe rad-evs-controller

svcadm enable rabbitmq

 svcadm restart rad:local

 svcadm enable mysql

 mysqladmin -u root passwordmysql

mysql -u root -p

 delete from mysql.user where user='';

drop database if exists nova;

drop database if exists cinder;

drop database if exists glance;

drop database if exists keystone;

drop database if exists neutron;

drop database if exists heat;

create database cinder default character set utf8 default collate utf8_general_ci;

grant all privileges on cinder.* to 'cinder'@'admin_1' identified by 'cinder';

grant all privileges on cinder.* to 'cinder'@'localhost' identified by 'cinder';

grant all privileges on cinder.* to 'cinder'@'admin_2' identified by 'cinder';

create database glancedefault character set utf8 default collate utf8_general_ci;
grant all privileges on glance .* to 'glance'@'admin_1' identified by 'glance';
grant all privileges on glance .* to 'glance'@'localhost' identified by 'glance';


create databasekeystonedefault character set utf8 default collate utf8_general_ci;
grant all privileges on keystone.* to 'keystone'@'admin_1' identified by 'keystone';

grant all privileges on keystone.* to 'keystone'@'localhost' identified by 'keystone';

 

create databasenovadefault character set utf8 default collate utf8_general_ci;
grant all privileges on nova.* to 'nova'@'admin_1' identified by 'nova';

grant all privileges on nova.* to 'nova'@'localhost' identified by 'nova';

 

create databaseneutron default character set utf8 default collate utf8_general_ci;
grant all privileges on neutron.* to 'neutron'@'admin_1' identified by 'neutron';

grant all privileges on neutron.* to 'neutron'@'localhost' identified by 'neutron';



create databaseheat default character set utf8 default collate utf8_general_ci;
grant all privileges on heat.* to 'heat'@'admin_1' identified by 'heat';

grant all privileges on heat.* to 'heat'@'localhost' identified by 'heat';

flush privileges;

quit

安装 Keystone

1. 将令牌设置为某个环境变量。

 export SERVICE_TOKEN=ADMIN

2. 在 /etc/keystone/keystone.conf 文件中修改参数。

./openstack_config.pykeystone

3启用 Keystone SMF 服务。

controller# svcadm enable keystone

4. 填充 Keystone 数据库。

要使用样例脚本,请发出以下命令。

修改/usr/demo/openstack/keystone/sample_data.sh ,将localhost 改为主机名,否则在计算节点上创建实例会有问题

controller# CONTROLLER_PUBLIC_ADDRESS=admin_1 CONTROLLER_ADMIN_ADDRESS=admin_1 CONTROLLER_INTERNAL_ADDRESS=admin_1  SERVICE_TOKEN=ADMIN /usr/demo/openstack/keystone/sample_data.sh

 

安装glance

./openstack_config.py glance
svcadm enable -rs glance-api glance-db glance-registry glance-scrubber

安装Nova

./openstack_config.py nova
controller# svcadm enable -rs nova-conductor

controller# svcadm enable -rs nova-api-osapi-computenova-cert nova-scheduler

svcadm enable -rs nova-compute

安装 Horizon

a 您的配置使用 HTTP。

a. 向 /etc/openstack_dashboard/local_settings.py 脚本提供设置。

controller# gsed -i -e s@SECURE_PROXY_SSL_HEADER@#SECURE_PROXY_SSL_HEADER@  -e s@CSRF_COOKIE_SECURE@#CSRF_COOKIE_SECURE@  -e s@SESSION_COOKIE_SECURE@#SESSION_COOKIE_SECURE@ /etc/openstack_dashboard/local_settings.py

b. 为 OpenStack 复制 HTTP 版的 http.conf 文件。

controller# cp /etc/apache2/2.4/samples-conf.d/openstack-dashboard-http.conf /etc/apache2/2.4/conf.d/

2. 启动 Apache 服务。

controller# svcadm enable apache24

安装 Cinder

./openstack_config.py cinder

controller# svcadm enable iscsi/target stmf

启用 Cinder SMF 服务。

controller# svcadm enable -rs cinder-db

controller# svcadm enable -rs cinder-api cinder-scheduler

storage# svcadm enable -rscinder-volume:default cinder-volume:setup(本机为块存储服务器)

安装Neutron

1 ./openstack_config.py neutron

2. 设置要使用的 SSH 密钥对。

a. 为 evsuser、neutron 和 root 用户创建 SSH 密钥对。

controller# su - evsuser -c "ssh-keygen -N '' -f /var/user/evsuser/.ssh/id_rsa -t rsa"

controller# su - neutron -c "ssh-keygen -N '' -f /var/lib/neutron/.ssh/id_rsa -t rsa"

controller# ssh-keygen -N '' -f /root/.ssh/id_rsa -t rsa

b. 在 evsuser 的 authorized_keys 文件中组合 evsuser、neutron 和 root 的 SSH 密

钥。

controller# cat /var/user/evsuser/.ssh/id_rsa.pub /var/lib/neutron/.ssh/id_rsa.pub /root/.ssh/id_rsa.pub >> /var/user/evsuser/.ssh/authorized_keys

c. 测试 SSH 连接以接受将存储在 known_host 文件中的指纹。

在配置的每个提示符处指定 Yes。

controller# su - evsuser -c "ssh evsuser@controllertrue"

controller# su - neutron -c "ssh evsuser@controller  true"

controller# ssh evsuser@controller  true

设置 .ssh 目录的所有权。

controller# chown -R evsuser:evsgroup /var/user/evsuser/.ssh

controller# chown -R neutron:neutron /var/lib/neutron/.ssh

3. 配置弹性虚拟交换机 (Elastic Virtual Switch, EVS)。

a. 设置 EVS 属性以指定 EVS 控制器的位置。

controller# evsadm set-prop -p controller=ssh://evsuser@controller

b. 配置 EVS 控制器的 l2-type、uplink-port 和 vlan-range 属性。

controller# evsadm set-controlprop -p l2-type=vlan

controller# evsadm set-controlprop -p vlan-range=200-300

外网flat网络,内网vlan

controller# evsadm set-controlprop -p uplink-port=net2,flat=yes

controller# evsadm set-controlprop -p uplink-port=net1,vlan-range=200-300

controller# evsadm show-controlprop -o all

查看上行链路的配置

root@controller:~# evsadm show-controlprop -oproperty,value,flat,vlan_range,vxlan_range,host -p uplink-port

4 启用 IP 转发。

controller# ipadm set-prop -p forwarding=on ipv4

5. 启动 IP 过滤器服务。

controller# svcadm enable -rs ipfilter

6. 启用 Neutron 服务器服务。

controller# svcadm enable -rs neutron-server neutron-dhcp-agent

controller# export OS_USERNAME=neutron

controller# export OS_PASSWORD=neutron

controller# export OS_TENANT_NAME=service

controller# export OS_AUTH_URL=http://controller:5000/v2.0


修改路由表

route -p delete default 10.182.42.1

 

创建并上传镜像

export OS_AUTH_URL=http://admin_1:5000/v2.0/

export OS_PASSWORD=glance

export OS_USERNAME=glance

export OS_TENANT_NAME=service

安装zone

zonecfg -z myfirstkz create -t SYSsolaris-kz(安装kernelzone)

//zonecfg -z myfirstkz create(安装non-global zone)

zoneadm -z myfirstkz install

zoneadm -z myfirstkz boot

zlogin -C myfirstkz

vi /etc/ssh/sshd_config

PermitRootLogin without-password

root@myzone:~# ~~.

archiveadm create -z myfirstkz  myfirstkz.uar

glance image-create --container-format bare --disk-format raw --is-public true --name "KernelZone" --property architecture=sparc64 --property hypervisor_type=solariszones --property vm_mode=solariszones < myfirstkz.uar

配置内网

export OS_USERNAME=neutron

export OS_PASSWORD=neutron

export OS_TENANT_NAME=service

export OS_AUTH_URL=http://admin_1:5000/v2.0

 

controller#neutron net-create internal_network

controller#neutron subnet-create --name internal_subnetwork--disable-dhcp  internal_network  192.168.111.0/24

配置外网

controller#neutron router-create provider_router

id####################

 修改/etc/neutron/l3_agent.ini 

router_id = ########################

controller # svcadm enable neutron-l3-agent

 controller# svcs neutron-l3-agent
controller#neutron net-create --provider:network_type=flat \
   --router:external=true  external_network

 

controller# neutron subnet-create --disable-dhcp --nameexternal_subnet --allocation-pool start=172.17.0.103,end=172.17.0.254  --gateway 172.17.0.101 external_network 172.17.0.0/24

 

controller#neutron router-gateway-set provider_router external_network 

 

 controller# neutron net-list 

controller#neutron router-interface-add provider_router internal_subnetwork


配置OpenStackNova节点

安装NTP客户端

pkg install ntp

cp /etc/inet/ntp.client /etc/inet/ntp.conf

3. 配置 /etc/inet/ntp.conf 文件。

a. 注释掉 multicastclient 选项。

b. 取消注释一个或多个服务器选项,并提供 NTP 服务器的具体名称或其 IP 地址。

例如,如果您配置的 NTP 服务器的主机名为 system1,则配置文件将如下例所示:

# multicastclient 224.0.1.1

...

server 10.182.42.56 iburst

# server server_name2 iburst

# server server_name3 iburst

4. 启用 ntp 服务。

controller# svcadm enable ntp

创建IP

ipadm create-ip net1

ipadm create-addr - T static -a192.168.1.101/24 net1/v4

ipadm create-addr - T static -a192.168.0.101/24 net1/v4a

ipadm create-ip net2

ipadm create-addr - T static -a 172.17.0.101/24net2/v4

 

2 修改/etc/hosts

172.17.0.100   public_1

172.17.0.101   public_2

192.168.1.100   controller

192.168.1.101   compute

192.168.0.100   admin_1

192.168.0.101   admin_2

 

安装Nova

pkg installnova

svcadm restartrad:local

scp root@controller:/usr/lib/python2.7/vendor-packages/nova/usr/lib/python2.7/vendor-packages

compute#svcadm enable nova-compute

启用IP转发:

 ipadm set-prop -p forwarding=on ipv4

 

安装EVS

compute# pkg install evs

compute# evsadm set-prop -pcontroller=ssh://evsuser@controller

在计算节点上为 root 用户创建一个 SSH 公钥。

compute# su - root -c "ssh-keygen -N'' -f /root/.ssh/id_rsa -t rsa"

b. (可选) 检查 SSH 密钥的内容。

compute# cat /root/.ssh/id_rsa.pub

c. 将 SSH 密钥 /root/.ssh/id_rsa.pub 复制到控制器节点中的某个位置。

d. 在控制器节点上,将 SSH 密钥附加到 evsuser 的 authorized_keys 文件。

controller# cat location/id_rsa.pub>> /var/user/evsuser/.ssh/authorized_keys

e. (可选) 验证是否已将计算节点中的 SSH 密钥附加到 authorized_keys 文件。

controller# cat/var/user/evsuser/.ssh/authorized_keys

测试计算节点到控制器的 SSH 连接,并接受要存储在 known_host 文件中的指纹。

在提示符处指定 Yes 进行确认。

root@compute# ssh evsuser@controller  true



返回到controller  把controller的evsuser的id_rsa.pub复制到compute 的/var/user/evsuser/.ssh/authorized_keys中

controller #scp /var/evsuser/.ssh/id_rsa.pub  solaris@compute:/export/home/solaris

 

返回到compute

compute# cat /export/home/solaris/id_rsa.pub >> /var/user/evsuser/.ssh/authorized_keys

监测controller的evsuser ssh到evsuser@compute

evsuser @controller# ssh evsuser@computetrue

compute# evsadm set-controlprop  –h compute-p uplink-port=net2,flat=yes

compute # evsadm set-controlprop–h compute -p uplink-port=net1,vlan-range=200-300

compute # evsadm show-controlprop -o all

查看上行链路的配置

root@controller:~# evsadmshow-controlprop -o property,value,flat,vlan_range,vxlan_range,host -puplink-port

 

配置OpenStack  Cinder节点

pkginstall cinder

./openstack_cinder_config.pycinder

controller# svcadm enable iscsi/target stmf

启用 Cinder SMF 服务。

controller# svcadm enable -rs cinder-db

storage# svcadm enable -rscinder-volume:default cinder-volume:setup(本机为块存储服务器)

export OS_AUTH_URL=http://admin_1:5000/v2.0/

export OS_PASSWORD=cinder

export OS_USERNAME= cinder

export OS_TENANT_NAME=service

cinder service-list;

查看存储的服务是否都正常

0 0
原创粉丝点击