admin 管理员组

文章数量: 887018

一、案例分析

1.1案列概述

        OpenStack 大部分管理功能都可以通过 Dashboard 进行操作,熟练掌握Dashboard 操作对于运维工程师十分重要。Dashboard 图形化的操作界面将简化管理任务,同时降低出错概率。本章通过云主机的创建过程,学习Dashboard 界面的基本操作,同时学习网络、路由、实例类型、镜像、安全组、卷、密钥对、快照等功能的操作方法。

1.2案例前置知识点

1.关于浮动 IP 地址

        浮动 IP 地址是 OpenStack 引入的一个非常重要的概念,类似于 NAT 转换中的内部全局地址,可以被外部网络所访问。OpenStack中的云主机网络一般是受 NAT保护的网络,即内部网络通过虚拟路由器(提供NAT功能)连接外部网络。当需要从外部访问云主机网络时,需要使用浮动IP地址实现。其原理是通过目的地址转换或NAT映射实现外部网络访问云主机网络。浮动IP地址是可以从外部访问的IP地址列表,通常是外部网络的IP地址段。浮动IP地址不能分配给云主机使用,但是可以通过绑定云主机,实现外部网络访问云主机,如通过SSH协议管理云主机。当该云主机不需要通过外部网络访问时,管理员可以随时将该浮动IP地址分配给其他云主机使用。浮动IP 地址机制为云用户提供了很大灵活性,也为系统管理员降低了安全风险。

2.关于快照

        OpenStack 中,快照功能有别于传统VMware 或者 KVM 的快照,它是以创建镜像的方式保存在 Glance 中。通过对云主机镜像的转换和复制,生成一个全新的镜像。该镜像和云主机无任何关联,但可以通过该镜像创建一个全新的云主机,从而实现云主机的迁移与备份。OpenStack快照不包含任何快照链信息,只保留磁盘信息,无法回滚至快照点。对 OpenStack 而言,实例可以做快照、卷也可以做快照。

1.3案列环境

1.本案例实验环境

2.案例需求

本章案例的需求如下:
(1)创建云主机;
(2)云主机可以访问外部网络;
(3)外部网络可以通过SSH协议免密码访问云主机;
(4)云主机挂载新卷;
(5)云主机创建快照;
(6)创建 CentOS 镜像。

3.案例实现思路

本章案例的实现思路如下:
(1)准备一键式安装 OpenStack 环境;
(2)创建网络和路由;
(3)创建实例;
(4)绑定浮动IP 地址;
(5)添加安全组规则;
(6)创建密钥对;
(7)创建卷挂载及使用;
(8)管理快照
(9)创建镜像。

二、案列实施

1.创建网络和路由

(1)管理员--》删除管理员中的默认网络和路由

(2)管理员--》创建外部网络(public)(192.168.10.200,192.168.10.250)

(3)项目--》创建内部网络(private)

(4)项目--》创建路由(route)

(5)为路由添加内部接口

2.创建实例

(1)项目--》删除默认的镜像

(2)项目--》添加镜像(CentOS-7-x86_64-GenericCloud-2009.qcow2和cirros-0.5.1-x86_64-disk.img)

(3)项目--》利用CentOS-7-x86_64-GenericCloud-2009.qcow2创建实例

注意:

在添加实例过程中,配置项填写如下脚本

#!/bin/bash
passwd root<<EOF
aptech
aptech
EOF
 
passwd centos<<EOF
aptech
aptech
EOF
 
sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g'  /etc/ssh/sshd_config
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g'  /etc/ssh/sshd_config
 
systemctl restart sshd

3.绑定浮动IP

(1)项目”→“网络”→“浮动 IP”

(2)将浮动IP关联给实例

4.添加安全组规则

(1)项目”→“网络”→“安全组 →default,单击其右边的管理规则按钮

(2)添加规则:选择规则“ALL ICMP”方向选择入口

此时可以Ping通实例,但无法ssh访问

(3)添加规则:添加规则为“SSH”规则

此时可以在宿主机上ssh访问实例(但需要密码登录)

5.远程登录方法一,对已有实例实现无密码登录

ssh-copy-id 192.168.10.236

备注:

该地址是实例的浮动IP

OpenStack云主机已经有密钥对,无需再创建

6.远程登录方法二,创建秘钥对,对新创建的实例部署无密码登录环境

(1)创建密钥对

项目”→“计算”→“密钥对-->创建密钥对(秘钥名称为my-auth,秘钥类型为SSH秘钥)

创建成功后会自动下载到本地

(2)在宿主机上创建 centos用户并设置权限(以CentOS-7-x86_64-GenericCloud-2009.qcow2创建的实例为例
[root@openstack ~]# useradd centos
[root@openstack ~]# mkdir /home/centos/.ssh
[root@openstack ~]# cd /home/centos/.ssh/
上传刚才下载好的秘钥文件到/home/centos/.ssh/目录下
[root@openstack ~]# mv my-auth.pem id_rsa 
[root@openstack ~]# chmod 700 /home/centos/.ssh 
[root@openstack ~]# chown -R centos.centos /home/centos/.ssh 
[root@openstack ~]# chmod 600 /home/centos/.ssh/id_rsa
(3)使用CentOS-7-x86_64-GenericCloud-2009.qcow2镜像创建实例

创建新的实例时会自动使用这个秘钥对

绑定浮动IP

(4)在OpenStack主机登录测试
su centos
ssh 实例的浮动IP

备注:

CentOS-7-x86_64-GenericCloud-2009.qcow2该镜像中默认有一个centos的账号,在添加有密钥对的情况下,会将公钥发送给这个centos的账号,而不会发送给root账户。

注意:

可以将这个id_rsa的私钥文件拷贝到任意一台主机的centos账户下,然后,就可以用这个主机登录这个实例。

7.远程登录方法三,导入公钥,对新创建的实例部署无密码登录环境

(1)将OpenStack主机上root的公钥文件拷贝到宿主机

(2)导入公钥

项目”→“计算”→“密钥对-->导入公钥

(3)创建实例(用CentOS-7-x86_64-GenericCloud-2009.qcow2),并选择此处导入的公钥

备注:

此镜像默认有一个叫做centos的账号,创建此实例时,会把公钥创建到centos账号下,

(4)绑定浮动IP

(5)在OpenStack主机登录实例测试

ssh centos@浮动IP

(6)也可以将公钥文件拷贝给实例的root用户

[centos@centos03 .ssh]$ sudo cp authorized_keys /root/.ssh

这样本地主机就可以直接连接实例的root了  

[root@openstack ~]#ssh 浮动IP

yum -y install libguestfs-tools

gpasswd -a qemu root

备注:

该工具提供了virt的高级命令,其中有一个virt-customize命令,可以为系统镜像设置密码。

virt-customize -a CentOS-7-x86_64-GenericCloud-2009.qcow2 --root-password password:aptech

8.创建及使用卷挂载

(1)创建卷

项目”→“”→“ 单击+创建卷

(2)接卷

单击编辑卷旁边的下拉菜单,选择管理连接。将该卷连接到实例

(3)进入到这个实例

ssh 192.168.10.241

(4)查看磁盘信息
fdisk -l

磁盘 /dev/vda:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x000b0d11

   设备 Boot      Start         End      Blocks   Id  System

/dev/vda1   *        2048    41943006    20970479+  83  Linux


磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节
(5)在云主机控制台中,对/dev/vdb 进行分区、格式化,并挂载到/mnt 目录
[root@centos02 ~]#fdisk /dev/vdb
[root@centos02 ~]#mkfs -t xfs /dev/vdb1
[root@centos02 ~]#mount /dev/vdb1 /mnt
[root@centos02 ~]#df
文件系统          1K-块   已用     可用 已用% 挂载点
devtmpfs         917176      0   917176    0% /dev
tmpfs            941164      0   941164    0% /dev/shm
tmpfs            941164  16840   924324    2% /run
tmpfs            941164      0   941164    0% /sys/fs/cgroup
/dev/vda1      20960236 871276 20088960    5% /
tmpfs            188236      0   188236    0% /run/user/0
/dev/vdb1      10474496  32992 10441504    1% /mnt
(6)访问测试
[root@centos02 ~]# cd /mnt
[root@centos02 mnt]# ls
[root@centos02 mnt]# echo aaa>aaa.txt
[root@centos02 mnt]# ls
aaa.txt
[root@centos02 mnt]# cat aaa.txt 
aaa

9.对卷进行扩容

(1)分离卷

(2)扩展卷

扩展时,输入新的卷的大小,要大于当前值

(3)重新连接到实例

fdisk -l

此时已经没有了vdb1,但是多出了vdc1,此时cat前面创建的测试文件aaa.txt,是不能查看的

这个vdc1其实就是原来的vdb1,只是新扩展出来的空间还没有被识别到

取消vdb1的挂载

将vdc1挂载到/mnt,再次查看aaa.txt,内容已经可以查看了

重启实例,重启后才会看到之前的分区vdb1,和新增加的vdb2

重新后重新挂载vdb1,aaa.txt文件就在这个分区里

创建新的挂载目录/data,将vdb2格式化后挂载到/data目录下。

备注:

新增加的空间被分配给了vdb2

10.快照管理

(1)用cirros的镜像安装一个实例
(2)基于实例的快照

        为cirros的实例做快照

        通过此快照启动一个新的实例

(3)基于卷的快照

项目”>”>

备注:

无论是实例快照还是卷快照,都可以用来生成全新的云主机,在生产环境中通常通过快照对云主机进行备份或迁移。

这里的快照是对当前的实例做备份的,

11.创建镜像

管理员”→“计算”→“镜像

其实就是上传一个镜像

本文标签: 平台 openstack