openstack-allinone-使用方法

安装OpenStack客户端并创建一个云主机
查看创建好的openstack项目中的信息和云主机网络连通性
openstack web界面使用方法

openstack-allinone-使用方法

安装OpenStack客户端并创建一个云主机
安装OpenStack client端,方便后期使用命令行操作openstack

[root@test63 ~]# pip install python-openstackclient 
报错:已经安装PyYAML 3.10,但是我们需要PyYAML 
Found existing installation: PyYAML 3.10 
Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall. 
#注:找到现有安装:PyYAML 3.10 
无法卸载'PyYAML'。 这是一个distutils安装的项目,因此我们无法准确确定哪些文件属于它,这将导致仅部分卸载。 
[root@test63 ~]# pip install PyYAML --ignore-installed PyYAML #忽略安装的PyYAML,进行安装 
[root@test63 ~]# pip install python-openstackclient #再次安装 
报错: 
Found existing installation: ipaddress 1.0.16 
Cannot uninstall 'ipaddress'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall. 
[root@test63 ~]# pip install ipaddress --ignore-installed ipaddress 
[root@test63 ~]# pip install python-openstackclient 
[root@test63 ~]# pip install python-neutronclient #安装openstack网络相关的命令 
报错,提示已经安装pyinotify 
[root@test63 ~]# pip install pyinotify --ignore-installed pyinotify 
[root@test63 ~]# pip install python-neutronclient #最终安装成功。

使用init-runonce脚本创建一个openstack云项目
openstack-allinone-使用方法_第1张图片
1、修改init-runonce脚本,指定浮动IP地址范围
init-runonce是在openstack中快速创建一个云项目例子的脚本。浮动IP就是云主机的公网IP。

[root@test63 ~]# vim /usr/share/kolla-ansible/init-runonce #网络需要根据实际情况修改 
改: 
12 EXT_NET_CIDR='10.0.2.0/24' 
13 EXT_NET_RANGE='start=10.0.2.150,end=10.0.2.199' 
14 EXT_NET_GATEWAY='10.0.2.1' 
为: 
EXT_NET_CIDR='192.168.1.0/24' 
EXT_NET_RANGE='start=192.168.1.230,end=192.168.1.240' 
EXT_NET_GATEWAY='192.168.1.1' 

注:192.168.1.0的网络,就是我上面ens38接入的局域网中的地址,这个网络是通过局域网络中的路由器访问互联网。配置好这个,装完云主机实例就可以直接ping通。
2、使用init-runonce脚本创建一个openstack云项目

[root@test63 ~]# source /etc/kolla/admin-openrc.sh #必须先加载这个文件,把文件中的环境变量加入系统中,才有权限执行下面的命令 
[root@test63 ~]# cd /usr/share/kolla-ansible 
[root@test63 kolla-ansible]# ./init-runonce #最后弹出以下

在这里插入图片描述
3、在openstack中创建一个虚拟机

[root@test63 kolla-ansible]# openstack server create --image cirros --flavor m1.tiny --key-name mykey --nic net-id=a60a94b3-d1da-44c3-9c35-7505e1411378 demo1 #注: -nic net-id=xxxxxx ,这个ID每个人是不一样的,你需要写成你自己的。

4、给云主机分配浮动IP地址
登录链接:http://192.168.1.63/auth/login/?next=/ ,给虚拟机分配一个floating ip(浮动IP),这样就可以直接ping 通 floating ip的地址。

openstack-allinone-使用方法_第2张图片
openstack-allinone-使用方法_第3张图片
openstack-allinone-使用方法_第4张图片
openstack-allinone-使用方法_第5张图片
openstack-allinone-使用方法_第6张图片
openstack-allinone-使用方法_第7张图片
openstack-allinone-使用方法_第8张图片
测试:
ping 192.168.1.32 #发现可以ping通

查看创建好的openstack项目中的信息和云主机网络连通性

查看路由信息

[root@test63 ~]# source /etc/kolla/admin-openrc.sh #要读一下这个环境变量配置文件。丌然后,后期在执行命令时,会报如下错: 
Missing value auth-url required for auth plugin password 
[root@test63 ~]# openstack router list 
[root@test63 ~]# openstack router show demo-router 

查看网络列表:

[root@test63 ~]# openstack network list 
[root@test63 ~]# openstack subnet list 
[root@test63 ~]# openstack server show demo1 #查看云主机实例的信息 
查看已有的网络的NameSpace: 
[root@test63 ~]# ip netns 
qrouter-0ff30de6-6ee8-4d33-a695-b5e3935b4b78 
qdhcp-a60a94b3-d1da-44c3-9c35-7505e1411378 
通过“Floating IP”访问虚拟机(用户名"cirros",密码"cubswin:)"): 
[root@test63 ~]# ssh [email protected] #发现需要输入密码,是因为我们在创建云主机时,绑定了私钥,就可以实现无密码。 只限test63这台机器。 因为私钥是test63的。 

现在开始测试:
登录上后,测试网络:
$ ping 192.168.1.1
$ ping 8.8.8.8
$ ping baidu.com

openstack web界面使用方法

使用web界面来管理云主机。下面将完成以下操作:
1、 设置显示语言
2、 修改addmin密码
3、 创建一个新项目
4、 创建主机模版
5、 创建新用户
6、 创建外网、内网及路由器
7、 创建安全策略组
8、 创建密钥对
9、 分配浮动IP地址
10、 创建实例

准备云主机的基础环境

1、设置显示语言:汉语
openstack-allinone-使用方法_第9张图片
2、修改admin命令
查看当前密码:

[root@test63 ~]# cat /etc/kolla/admin-openrc.sh 
export OS_PROJECT_DOMAIN_NAME=Default 
export OS_USER_DOMAIN_NAME=Default 
export OS_PROJECT_NAME=admin 
export OS_TENANT_NAME=admin 
export OS_USERNAME=admin 
export OS_PASSWORD=123456

openstack-allinone-使用方法_第10张图片
3、创建一个openstack项目
实战1:项目描述,test-web网站运维部,需要6台云主机,6个公网IP,80G硬盘。 另一个游戏部门的需要数十台云主机,运行游戏。 你需要在openstack私有云,给两个部门分出相应的资源。
在openstack中创建一个子项目test-web,再创建一个adm1管理帐号,后期用于管理test-web项目。创建出项目和管理员帐号,后期把adm1帐号给网站运维部,让他自己维护就可以了。
注:一个openstack项目中,指定你可以占有openstack私有云中资源。
在这里插入图片描述
配置项目配额
openstack-allinone-使用方法_第11张图片
openstack-allinone-使用方法_第12张图片
4、创建一个配置比较低的云主机类型:m2.tiny
tiny [ˈtaɪni] 极小的,微小的
openstack-allinone-使用方法_第13张图片
openstack-allinone-使用方法_第14张图片
注:模版中的根磁盘必须小于存储组件所在服务的剩余空间。内存和cpu也必须小于物理机上真实可用的资源。
openstack-allinone-使用方法_第15张图片
说明:从这里你可以改变当前的主机类型模版的大小。注意:这不会影响分配给使用该模版的任何现有实Ephemeral disk :临时磁盘 数据盘 Ephemeral( əˈfem(ə)rəl) 创建临时磁盘,ephemeral disk指的是除了系统盘和swap disk之外的空间,就是数据盘
5、为项目test-web创建一个普通帐号用户:
openstack-allinone-使用方法_第16张图片
在这里插入图片描述
为项目test-web创建一个管理员帐号用户:
openstack-allinone-使用方法_第17张图片
openstack-allinone-使用方法_第18张图片
6、实战:以adm1登录,创建images镜像;创建内网int,创建路由器router1, 最终在openstack上创建好实例www.test.cn云主机。
退出admin ,以adm1登录:
openstack-allinone-使用方法_第19张图片
openstack-allinone-使用方法_第20张图片
查看test-web的概况:
openstack-allinone-使用方法_第21张图片
创建一个www.test.cn和web.img镜像
cp cirros-0.3.4-x86_64-disk.img web1.img
注:默认:cirros镜像格式是 qcow2格式。
可以本地上传:C:\Users\shen\Desktop\test\soft\web1.img
openstack-allinone-使用方法_第22张图片
openstack-allinone-使用方法_第23张图片
openstack-allinone-使用方法_第24张图片
#Minimum Disk : 最小磁盘。指使用这个镜像,最少需要多大空间。
在这里插入图片描述
互动:我们在做什么?
注:想在openstack启一台云主机实例,你需要一些基础设施:主机的硬件模版,镜像,网络,安全组等,最后才是创建一台云主机。
7、创建两个网络:一个内网,一个外网。
注:外网在之前已经使用脚本创建好:public1 了。这里我就不用创建外网了。 另外,在web界面创建的外网是上不了公网的。必须使用脚本创建才可以。
切换到test-web 这一列,配置网络:
添加一个内网网段:
openstack-allinone-使用方法_第25张图片
openstack-allinone-使用方法_第26张图片
openstack-allinone-使用方法_第27张图片
IP地址池:以逗号分隔
openstack-allinone-使用方法_第28张图片
openstack-allinone-使用方法_第29张图片
查看拓扑图时,在chrome上查看,其他浏览器上查看时,有时看不到
openstack-allinone-使用方法_第30张图片
8、创建一个路由器来连接两个网络
openstack-allinone-使用方法_第31张图片
openstack-allinone-使用方法_第32张图片
注:这个已经设置路由器一个接口连接到外部网络。
openstack-allinone-使用方法_第33张图片
设置路由器router1的另一个接口,连接内网:
openstack-allinone-使用方法_第34张图片
openstack-allinone-使用方法_第35张图片
openstack-allinone-使用方法_第36张图片
openstack-allinone-使用方法_第37张图片
内网接口一开始是关闭,刷新一下页面,就运行中了,现在两个接口都运行了
openstack-allinone-使用方法_第38张图片
查看网络拓扑图:
openstack-allinone-使用方法_第39张图片
9、创建安全策略组web-ssh-ping,放行tcp,udp,icmp协议
openstack-allinone-使用方法_第40张图片
web-ssh-ping
放行web-ssh-ping这些服务
openstack-allinone-使用方法_第41张图片
openstack-allinone-使用方法_第42张图片
放行80端口
openstack-allinone-使用方法_第43张图片
放行22-443 tcp协议端口
openstack-allinone-使用方法_第44张图片
放行icmp协议,才能ping
openstack-allinone-使用方法_第45张图片
出口方向放行icmp协议:
openstack-allinone-使用方法_第46张图片
openstack-allinone-使用方法_第47张图片
注:对于出口方向,直接使用默认规则就可以了。放行所有数据包
10、创建web-key1
openstack-allinone-使用方法_第48张图片
openstack-allinone-使用方法_第49张图片
openstack-allinone-使用方法_第50张图片
openstack-allinone-使用方法_第51张图片
11、分配浮劢IP地址 ,指得是公网IP地址。例如:
openstack-allinone-使用方法_第52张图片
openstack-allinone-使用方法_第53张图片
先分出1个IP
openstack-allinone-使用方法_第54张图片
12、创建实例, 云主机
openstack-allinone-使用方法_第55张图片
openstack-allinone-使用方法_第56张图片
openstack-allinone-使用方法_第57张图片
注: 还使用cirros镜像。
openstack-allinone-使用方法_第58张图片
在这里插入图片描述
openstack-allinone-使用方法_第59张图片
这个默认就可以 ,直接下一步。
openstack-allinone-使用方法_第60张图片
密钥对,默认就可以了,使用web-key1
openstack-allinone-使用方法_第61张图片
剩下的直接默认就可以了。
openstack-allinone-使用方法_第62张图片
openstack-allinone-使用方法_第63张图片
报错:
openstack-allinone-使用方法_第64张图片
解决:
原因1:一般是因为内存丌够用,这时free -m 查看一下物理机上实际可以用的内存,是否小于1G,如果小于1G肯定丌行。因为创建实例web1,需要使用1G内存。
原因2: 创建实例所使用的主机模版中的根磁盘必须小于存储组件所在服务的剩余空间。内存和cpu也必须小于物理机上真实可用的资源。
在这里插入图片描述
openstack-allinone-使用方法_第65张图片
分配一个外网IP(浮动IP)地址
openstack-allinone-使用方法_第66张图片
openstack-allinone-使用方法_第67张图片
等1分钟,测试连通性:在物理机上,可以ping通
openstack-allinone-使用方法_第68张图片
打开一个实例:
openstack-allinone-使用方法_第69张图片
openstack-allinone-使用方法_第70张图片
注:在windows下可以chrome浏览器实现正常访问
登录用户: cirros 密码: cubswin:)
在这里插入图片描述
openstack-allinone-使用方法_第71张图片
在Linux的浏览器下访问时openstack,如果无法显示云主机的虚拟终端,就安装软件包:

[root@test63 Packages]# cd /mnt/Packages/
[root@test63 Packages]# rpm -ivh gnome-python2-canvas-2.28.1-14.el7.x86_64.rpm
[root@test63 Packages]# rpm -ivh libgnomecanvas-2.30.3-8.el7.x86_64.rpm

扩展:
canvas 用于在网页实时生成图像,并且可以操作图像内容,基本上它是一个可以用JavaScript操作的位图
Canvas [ˈkænvəs] 帆布油画(布)

你可能感兴趣的:(Openstack)