4、配置网络和主机名(controller、compute)
controller节点:
主机名:
配置网络
[root@controller ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777728 [root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777728 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eno16777728 UUID=ddfbd6c9-24c4-4233-a5df-546d911e3647 DEVICE=eno16777728 ONBOOT=yes IPADDR=192.168.100.10 PREFIX=24 GATEWAY=192.168.100.1 [root@controller ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno33554952 [root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno33554952 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eno33554952 UUID=6c35fc37-ccb6-4b09-a7e4-91f8d7eb7408 DEVICE=eno33554952 ONBOOT=yes IPADDR=192.168.200.10 PREFIX=24
compute节点:
主机名:
配置网络
[root@compute ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno ifcfg-eno16777728 ifcfg-eno33554952 [root@compute ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777728 [root@compute ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777728 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eno16777728 UUID=35463c40-248c-4847-b0ea-f3503904d2a1 DEVICE=eno16777728 ONBOOT=yes IPADDR=192.168.100.20 PREFIX=24 GATEWAY=192.168.100.1 [root@compute ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno33554952 [root@compute ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno33554952 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eno33554952 UUID=79eaa8e6-82a7-4d7d-8e74-2ff2236bb4f2 DEVICE=eno33554952 ONBOOT=yes IPADDR=192.168.200.20 PREFIX=24
5、配置yum源(controller、compute)
(1)使用mv命令移动原yum源至/opt目录下
# mv /etc/yum.repos.d/* /opt/
(2)创建文件夹
[root@controller opt]# mkdir /opt/centos [root@controller opt]# mkdir /opt/iaas [root@controller opt]# ll total 28 drwxr-xr-x. 2 root root 6 Jul 23 17:20 centos -rw-r--r--. 1 root root 1664 Dec 9 2015 CentOS-Base.repo -rw-r--r--. 1 root root 1309 Dec 9 2015 CentOS-CR.repo -rw-r--r--. 1 root root 649 Dec 9 2015 CentOS-Debuginfo.repo -rw-r--r--. 1 root root 290 Dec 9 2015 CentOS-fasttrack.repo -rw-r--r--. 1 root root 630 Dec 9 2015 CentOS-Media.repo -rw-r--r--. 1 root root 1331 Dec 9 2015 CentOS-Sources.repo -rw-r--r--. 1 root root 1952 Dec 9 2015 CentOS-Vault.repo drwxr-xr-x. 2 root root 6 Jul 23 17:20 iaas
(3)创建repo文件
【controller节点】
[root@controller ~]# mv /etc/yum.repos.d/* /opt/ [root@controller ~]# cd /etc/yum.repos.d/ [root@controller yum.repos.d]# ll total 0 [root@controller yum.repos.d]# vi centos.repo [root@controller yum.repos.d]# cat centos.repo [centos] name=centos baseurl=file:///opt/centos gpgcheck=0 enabled=1 [iaas] name=iaas baseurl=file:///opt/iaas/iaas-repo gpgcheck=0 enabled=1
【compute节点】
[root@compute ~]# cd /etc/yum.repos.d/ [root@compute yum.repos.d]# vi ftp.repo [root@compute yum.repos.d]# cat ftp.repo [centos] name=centos baseurl=ftp://controller/centos gpgcheck=0 enabled=1 [iaas] name=iaas baseurl=ftp://controller/iaas-repo gpgcheck=0 enabled=1
(4)在controller节点,上传iso镜像文件
(5)挂载iso文件
【挂载CentOS-7-x86_64-DVD-1511.iso】
[root@controller ~]# mount -o loop CentOS-7.2-x86_64-DVD-1511.iso /mnt/ [root@controller ~]# cp -rvf /mnt/* /opt/centos/ [root@controller ~]# umount /mnt/
【挂载XianDian-IaaS-v2.2.iso】
[root@controller ~]# mount -o loop XianDian-IaaS-v2.2.iso /mnt/ mount: /dev/loop0 is write-protected, mounting read-only [root@controller ~]# cp -rvf /mnt/* /opt/iaas/ [root@controller ~]# umount /mnt/
(6)清除缓存,验证yum源。测试本地yum源是否安装成功。
[root@controller ~]# [root@controller ~]# yum clean all Loaded plugins: fastestmirror Cleaning repos: centos iaas Cleaning up everything [root@controller ~]# yum repolist Loaded plugins: fastestmirror centos | 3.6 kB 00:00:00 iaas | 2.9 kB 00:00:00 (1/3): centos/group_gz | 155 kB 00:00:00 (2/3): centos/primary_db | 2.8 MB 00:00:00 (3/3): iaas/primary_db | 2.3 MB 00:00:00 Determining fastest mirrors repo id repo name status centos centos 3,723 iaas iaas 1,688 repolist: 5,411 [root@controller ~]#
(7)搭建ftp服务器,开启并设置自启
[root@controller ~]# yum install -y vsftpd
[root@controller ~]# vi /etc/vsftpd/vsftpd.conf 添加anon_root=/opt/centos 保存退出
开启ftp服务,并设置开机自启动。
[root@controller ~]# systemctl start vsftpd [root@controller ~]# systemctl enable vsftpd Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
6、配置域名解析(controller、compute)
修改/etc/hosts添加一下内容
【controller节点】
[root@controller ~]# vi /etc/hosts [root@controller ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.100.10 controller 192.168.100.20 compute
【compute节点】
[root@compute ~]# scp 192.168.100.10://etc/hosts /etc/hosts The authenticity of host '192.168.100.10 (192.168.100.10)' can't be established. ECDSA key fingerprint is 32:68:31:bb:4b:c9:2b:e6:73:7f:c0:2b:49:4b:97:c4. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.100.10' (ECDSA) to the list of known hosts. root@192.168.100.10's password: hosts 100% 207 0.2KB/s 00:00 [root@compute ~]# cat /etc/host cat: /etc/host: No such file or directory [root@compute ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.100.10 controller 192.168.100.20 compute [root@compute ~]#
7、关闭防火墙和SELINUX安全模式(controller、compute)
(1)关闭防火墙并设置开机不自启
[root@controller ~]# systemctl stop firewalld [root@controller ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
(2)修改SELINUX模式
[root@controller ~]# vi /etc/selinux/config [root@controller ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled //将enforcing修改成disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted [root@controller ~]# setenforce 0 //临时修改成permissive [root@controller ~]# getenforce //查看SELINUX结果 Permissive [root@controller ~]#
保存退出,重启生效
8、划分空白磁盘,cinder存储和swift存储(compute)
[root@compute ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 200M 0 part /boot └─sda2 8:2 0 99.8G 0 part ├─centos-root 253:0 0 83.8G 0 lvm / └─centos-swap 253:1 0 16G 0 lvm [SWAP] sdb 8:16 0 50G 0 disk sdc 8:32 0 50G 0 disk sr0 11:0 1 1024M 0 rom
[root@compute ~]# parted /dev/sd sda sda1 sda2 sdb sdc [root@compute ~]# parted /dev/sd sda sda1 sda2 sdb sdc [root@compute ~]# parted /dev/sdb GNU Parted 3.1 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mklabel gpt (parted) print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 53.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags (parted) mkpart cinder 0 51GB Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? Ignore (parted) print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 53.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 17.4kB 51.0GB 51.0GB cinder (parted) quit Information: You may need to update /etc/fstab.
[root@compute ~]# parted /dev/sdc GNU Parted 3.1 Using /dev/sdc Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mklabel gpt (parted) print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdc: 53.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags (parted) mkpart swift 0 51GB Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? Ignore (parted) print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdc: 53.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 17.4kB 51.0GB 51.0GB swift (parted) quit Information: You may need to update /etc/fstab.
[root@compute ~]# mkfs.xfs /dev/sdb mkfs.xfs: /dev/sdb appears to contain a partition table (gpt). mkfs.xfs: Use the -f option to force overwrite. [root@compute ~]# mkfs.xfs /dev/sdc mkfs.xfs: /dev/sdc appears to contain a partition table (gpt). mkfs.xfs: Use the -f option to force overwrite.
[root@compute ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 200M 0 part /boot └─sda2 8:2 0 99.8G 0 part ├─centos-root 253:0 0 83.8G 0 lvm / └─centos-swap 253:1 0 16G 0 lvm [SWAP] sdb 8:16 0 50G 0 disk └─sdb1 8:17 0 47.5G 0 part sdc 8:32 0 50G 0 disk └─sdc1 8:33 0 47.5G 0 part sr0 11:0 1 1024M 0 rom
[root@compute ~]# fdisk -l # Start End Size Type Name 1 34 99609375 47.5G Microsoft basic cinder 1 34 99609375 47.5G Microsoft basic swift
9、编辑环境变量(controller、compute相同)
[root@controller ~]# yum install -y iaas-xiandian
[root@controller ~]# vi /etc/xiandian/openrc.sh
配置信息如下:
[root@controller ~]# vi /etc/xiandian/openrc.sh [root@controller ~]# cat /etc/xiandian/openrc.sh ##--------------------system Config--------------------## ##Controller Server Manager IP. example:x.x.x.x HOST_IP=192.168.100.10 ##Controller Server hostname. example:controller HOST_NAME=controller ##Compute Node Manager IP. example:x.x.x.x HOST_IP_NODE=192.168.100.20 ##Compute Node hostname. example:compute HOST_NAME_NODE=compute ##--------------------Rabbit Config ------------------## ##user for rabbit. example:openstack RABBIT_USER=openstack ##Password for rabbit user .example:000000 RABBIT_PASS=000000 ##--------------------MySQL Config---------------------## ##Password for MySQL root user . exmaple:000000 DB_PASS=000000 ##--------------------Keystone Config------------------## ##Password for Keystore admin user. exmaple:000000 DOMAIN_NAME=domain ADMIN_PASS=000000 DEMO_PASS=000000 ##Password for Mysql keystore user. exmaple:000000 KEYSTONE_DBPASS=000000 ##--------------------Glance Config--------------------## ##Password for Mysql glance user. exmaple:000000 GLANCE_DBPASS=000000 ##Password for Keystore glance user. exmaple:000000 GLANCE_PASS=000000 ##--------------------Nova Config----------------------## ##Password for Mysql nova user. exmaple:000000 NOVA_DBPASS=000000 ##Password for Keystore nova user. exmaple:000000 NOVA_PASS=000000 ##--------------------Neturon Config-------------------## ##Password for Mysql neutron user. exmaple:000000 NEUTRON_DBPASS=000000 ##Password for Keystore neutron user. exmaple:000000 NEUTRON_PASS=000000 ##metadata secret for neutron. exmaple:000000 METADATA_SECRET=000000 ##External Network Interface. example:eth1 INTERFACE_NAME=eno33554952 ##First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101 #minvlan=101 ##Last Vlan ID in VLAN RANGE for VLAN Network. example:200 #maxvlan=200 ##--------------------Cinder Config--------------------## ##Password for Mysql cinder user. exmaple:000000 CINDER_DBPASS=000000 ##Password for Keystore cinder user. exmaple:000000 CINDER_PASS=000000 ##Cinder Block Disk. example:md126p3 BLOCK_DISK=sdb1 ##--------------------Trove Config--------------------## ##Password for Mysql Trove User. exmaple:000000 TROVE_DBPASS=000000 ##Password for Keystore Trove User. exmaple:000000 TROVE_PASS=000000 ##--------------------Swift Config---------------------## ##Password for Keystore swift user. exmaple:000000 SWIFT_PASS=000000 ##The NODE Object Disk for Swift. example:md126p4. OBJECT_DISK=sdc1 ##The NODE IP for Swift Storage Network. example:x.x.x.x. STORAGE_LOCAL_NET_IP=192.168.100.20 ##--------------------Heat Config----------------------## ##Password for Mysql heat user. exmaple:000000 HEAT_DBPASS=000000 ##Password for Keystore heat user. exmaple:000000 HEAT_PASS=000000 ##--------------------Ceilometer Config----------------## ##Password for Mysql ceilometer user. exmaple:000000 CEILOMETER_DBPASS=000000 ##Password for Keystore ceilometer user. exmaple:000000 CEILOMETER_PASS=000000 ##--------------------AODH Config----------------## ##Password for Mysql AODH user. exmaple:000000 AODH_DBPASS=000000 ##Password for Keystore AODH user. exmaple:000000 AODH_PASS=000000 [root@controller ~]#
将controller节点的openrc.sh传输至compute节点所放目录下。
[root@compute ~]# scp controller://etc/xiandian/openrc.sh /etc/xiandian/openrc.sh The authenticity of host 'controller (192.168.100.10)' can't be established. ECDSA key fingerprint is 32:68:31:bb:4b:c9:2b:e6:73:7f:c0:2b:49:4b:97:c4. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'controller' (ECDSA) to the list of known hosts. root@controller's password: openrc.sh 100% 3105 3.0KB/s 00:00 [root@compute ~]# cat /etc/xiandian/openrc.sh
10、使用脚本安装部署OpenStack平台(controller、compute)
1、双节点执行 iaas-pre-host.sh
[root@controller ~]# iaas-pre-host.sh
重启系统,执行reboot命令
2、在controller节点上执行iaas-install-mysql.sh
[root@controller ~]# iaas-install-mysql.sh
3、在controller节点上安装keystone服务
[root@controller ~]# iaas-install-keystone.sh
4、在controller节点上安装Glance镜像服务
[root@controller ~]# iaas-install-glance.sh
5、分别在controller、compute节点上安装Nova服务。
[root@controller ~]# iaas-install-nova-controller.sh [root@compute ~]# iaas-install-nova-compute.sh
6、在controller、compute节点上安装neutron网络服务
[root@controller ~]# iaas-install-neutron-controller.sh [root@controller ~]# iaas-install-neutron-controller-gre.sh [root@compute ~]# iaas-install-neutron-compute.sh [root@compute ~]# iaas-install-neutron-compute-gre.sh
7、在controller节点上安装dashboard服务
[root@controller ~]# iaas-install-dashboard.sh
8、安装cinder块存储服务
controller节点:
[root@controller ~]# iaas-install-cinder-controller.sh
compute节点:
[root@compute ~]# iaas-install-cinder-compute.sh
9、安装swift对象存储服务
controller节点与compute节点:
10、访问Dashboard服务