使用director 部署openstack

红帽director项目是基于openstack的Triple O项目发展而来,包括两套openstack环境:undercloud和overcloud

先部署好undercloud,然后利用undercloud部署overcloud,overcloud用于生产环境。

[实验拓扑]

使用director 部署openstack 

[实验环境]

系统版本

openstack版本

RHEL7.3

RHOSP10

 

1.开始工作

配置yum

设置/etc/hosts

关闭selinux

关闭防火墙

自行安装虚拟化且保证正常工作

删除已经存在的虚拟机

#!/bin/bash

file=$(mktemp)

virsh list --all | tail -n +3 | grep -v ^$ | awk '{print $2}' > $file

while read line ; do

virsh undefine $line

done < $file

rm -rf /var/lib/libvirt/images/*

定义网络,执行脚本net_destroy.sh

cat net_destroy.sh

#!/bin/bash

################清除原有网络##########

virsh net-destroy default

virsh net-undefine default

 

#####创建新的网络#####关闭网络的DHCP####

cat > /tmp/external.xml <<EOF

<network>

   <name>external</name>

   <forward mode='nat'>

      <nat> <port start='1024' end='65535'/>

      </nat>

   </forward>

   <ip address='192.168.122.1' netmask='255.255.255.0'>

   </ip>

</network>

EOF

cat > /tmp/pri.xml <<EOF

<network>

   <name>pri</name>

   <ip address='192.168.130.254' netmask='255.255.255.0'>

   </ip>

</network>

EOF

virsh net-define /tmp/external.xml

virsh net-autostart external

virsh net-start external

 

virsh net-define /tmp/pri.xml

virsh net-autostart pri

virsh net-start pri

 

定义新虚拟机

cd /var/lib/libvirt/images/

for i in {1..3}; do qemu-img create -f qcow2 -o preallocation=metadata overcloud-node$i.qcow2 100G; done

chown qemu.qemu over*

for i in {1..3}; do virt-install --ram 10240 --vcpus 4 --os-variant rhel7 --disk path=/var/lib/libvirt/images/overcloud-node$i.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc --network network:pri --network network:external --name overcloud-node$i --cpu SandyBridge,+vmx --dry-run --print-xml > /tmp/overcloud-node$i.xml; virsh define --file /tmp/overcloud-node$i.xml; done

 

2.部署overcloud

在undercloud上做操作

创建一个普通用户

useradd stack

echo redhat | passwd --stdin stack

 

设置其在使用sudo时不用密码,且可以使用所有权限

echo "stack ALL=(root) NOPASSWD:ALL"  > /etc/sudoers.d/stack

chmod 0440 /etc/sudoers.d/stack

安装director软件包

sudo yum install -y python-tripleoclient

cp /usr/share/instack-undercloud/undercloud.conf.sample ~/undercloud.conf

内容如下:

cat undercloud.conf

[DEFAULT]

local_ip = 192.168.130.1/24

undercloud_public_vip = 192.168.130.2

undercloud_admin_vip = 192.168.130.3

local_interface = eth1

masquerade_network = 192.168.130.0/24

dhcp_start = 192.168.130.100

dhcp_end = 192.168.130.150

network_cidr = 192.168.130.0/24

network_gateway = 192.168.130.1

inspection_iprange = 192.168.130.30,192.168.130.99

generate_service_certificate = true

certificate_generation_ca = local

安装director

openstack undercloud install

准备部署overcloud所需要的镜像

sudo yum install rhosp-director-images rhosp-director-images-ipa

cp /usr/share/rhosp-director-images/overcloud-full-latest-8.0.tar  ~/images/

cp /usr/share/rhosp-director-images/ironic-python-agent-latest-8.0.tar ~/images/

解压所有镜像

cd ~images

for tarfile in *.tar; do tar -xf $tarfile; done

这个包有问题,直接上传包使用(网盘)。

导入镜像到undercloud

openstack overcloud image upload --image-path /home/stack/images/

查看已经导入的镜像

openstack image list

在上传过程中,还有一些镜像会拷贝到 /httpboot里

设置undercloud里dns所使用的DNS,这条不是必须要做的:

neutron subnet-list

neutron subnet-update UUID --dns-nameserver 192.168.122.1

 

3.准备注册节点的json文件

查看undercloud有多少overcloud节点信息

ironic node-list

把用于部署overcloud的机器的信息导入到undercloud里,创建instackenv.json文件,在文件里需要修改私钥格式及需要overcloud节点pri网络的mac地址

 

更改私钥格式设置

while read aa ; do echo -n "${aa}\n"; done < id_rsa > aaa

获取所有虚拟机的pri类型网卡的mac

#!/bin/bash

file=$(mktemp)

virsh list --all | tail -n +3 | grep -v ^$ | awk '{print $2}' > $file

while read line ; do

virsh domiflist $line | awk  '$3 == "pri" {print "'$line'",$5}'

 done < $file

instackenv.json的具体内容见上课视频。

修改/etc/ironic/ironic.conf,确保enable_drivers里有pxe_ssh

enabled_drivers = pxe_ipmitool,pxe_ssh,pxe_drac,pxe_ilo

保存退出。

4.安装overcloud

在undercloud上导入overcloud节点信息,即注册节点

openstack baremetal import --json ~/instackenv.json

为节点分配镜像

openstack baremetal configure boot

ironic node-list

设置标签,指定哪个是控制节点,哪台是计算节点

ironic node-update UUID add properties/capabilities='profile:control,boot_option:local'

ironic node-update UUID add properties/capabilities='profile:compute,boot_option:local'

或者

openstack baremetal node set --property capabilities='profile:control,boot_option:local' UUID

openstack baremetal node set --property capabilities='profile:compute,boot_option:local' UUID

查看

openstack overcloud profiles list

检查节点属性

openstack baremetal introspection bulk start

或者单独为某节点设置

openstack baremetal node manage $newUUID

openstack overcloud node introspect $newUUID --provide

 

开始安装overcloud里的虚拟机(即部署控制节点和计算节点)

openstack overcloud deploy --templates --libvirt-type qemu --control-scale 1 --compute-scale 1 --neutron-tunnel-types vxlan --neutron-network-type vxlan

 

5.登录的两种方式

1.通过nova list,查看控制节点的IP

ssh heat-admin@IP

sudo -i

hiera keystone::admin_password

获取密码

2.在director机器的stack的家目录里,有一个文件overcloudrc

里面有浏览器登录的地址,和admin的密码

相关新闻

发表回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

                                                                                                                                    RHCE9学习指南连载,点击阅读