openstack重点了解的就是服务
前言:
OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。
2017年2月OpenStack发布了最新版本Ocata.一般情况下,每半年左右更新- -次版本。
序号 | 服务 | 项目名称 | 描述 |
---|---|---|---|
1 | Compute(计算服务) | Nova | 负责实例生命周期的管理,计算资源的单位。对Hypervisor进行屏蔽,支持多种虚拟化技术(红帽默认为KVM),支持横向扩展。 |
2 | Network(网络服务) | Neutron | 负责虚拟网络的管理,为实例创建网络的拓扑结构。是面向租户的网络管理,可以自定义网络,并使租户之间互不影响。 |
3 | Identity(身份认证服务) | Keystore | 类似于LDAP服务,对用户、租户和角色、服务进行认证与授权,并且支持多认证机制。 |
4 | Dashboard(控制面板服务) | Horizon | 提供一个Web管理界面,与OpenStack底层服务进行交互。 |
5 | Image Service(镜像服务) | Glance | 提供虚拟机镜像模板的注册与管理,将做好的操作系统复制为镜像模板,在创建虚拟机时直接使用。可支持多格式的镜像。 |
6 | Block Storage(块存储服务) | Cinder | 负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费,支持多种后端存储。 |
7 | 0bject Storage(对象存储服务) | Swift | 为OpenStack提供基于云的弹性存储,支持集群无单点故障。 |
8 | Telemetry(计量服务) | Ceilometer | 用于度量、监控和控制数据资源的集中来源,为OpenStack用户提供记账途径。 |
控制性:完全开源的平台,模块化的设计,提供相应的API接口,方便与第三方技术集成,从而满足自身业务需求。
兼容性: OpenStack 兼容其他公有云,方便用户进行数据迁移
可扩展性: Openstack 采用模块化的设计,支持主流发行版本的Linux,可以通过横向扩展,增加节点、添加资源。
灵活性:用户可以根据自己的需要建立基础设施,也可以轻松地为自己的群集增加规模。Openstack项目采用Apache2许可,意味着第三方厂家可以重新发布源代码。
OpenStack在控制性、兼容性、可扩展性、灵活性方面具备有优势,它可能成为云计算领域的行业标准。
本次使用packstack工具实现一键部署OpenStack。
通过该安装工具,只需简单运行一条命令,即可以快速部署OpenStack, 省去繁琐的安装步骤,而直接体验OpenStack的管理及使用。
本次实验需要提前部署一台新安装的操作系统主机,要求能访问互联网,主机的系统采用最小化方式安装即可。
安装部署OpenStack环境的硬件设备的最低配置要求
CPU 4核
内存 8G
磁盘 30G
网络 NAT,还有一张自定义网卡
最小化安装,记得处理器勾选虚拟模式
配置环境,修改主机名
[root@localhost ~]# hostnamectl set-hostname openstack
[root@localhost ~]# su
[root@openstack ~]#
修改hosts文件
[root@openstack ~]# vi /etc/hosts
192.168.247.3 openstack
关闭防火墙,核心防护
[root@openstack ~]# systemctl stop firewalld
[root@openstack ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@openstack ~]# setenforce 0
[root@openstack ~]# vi /etc/selinux/config
SELINUX=disabled
关闭网络管理工具
[root@openstack ~]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
[root@openstack ~]# systemctl stop NetworkManager
重启
[root@openstack ~]# reboot
[root@openstack ~]# vi /etc/resolv.conf
nameserver 8.8.8.8
[root@openstack ~]# ping 192.168.247.2
PING 192.168.247.2 (192.168.247.2) 56(84) bytes of data.
64 bytes from 192.168.247.2: icmp_seq=1 ttl=128 time=0.575 ms
64 bytes from 192.168.247.2: icmp_seq=2 ttl=128 time=0.434 ms
^C
--- 192.168.247.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.434/0.504/0.575/0.073 ms
[root@openstack ~]# ping www.baidu.com
ping: www.baidu.com: Name or service not known
[root@openstack ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=113 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=118 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=128 time=127 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=128 time=126 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=128 time=117 ms
^C
--- 8.8.8.8 ping statistics ---
6 packets transmitted, 5 received, 16% packet loss, time 5007ms
rtt min/avg/max/mdev = 113.755/120.764/127.661/5.399 ms
[root@openstack ~]# ping www.baidu.com
ping: www.baidu.com: Name or service not known
[root@openstack ~]# ping www.baidu.com
PING www.a.shifen.com (183.232.231.172) 56(84) bytes of data.
64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=1 ttl=128 time=31.5 ms
64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=2 ttl=128 time=31.5 ms
64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=3 ttl=128 time=31.5 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 31.502/31.523/31.558/0.206 ms
[root@openstack ~]# cd /etc/yum.repos.d/
[root@openstack yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Sources.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS.repo CentOS-Vault.repo
[root@openstack yum.repos.d]# mkdir bak
[root@openstack yum.repos.d]# mv C* bak/
[root@openstack yum.repos.d]# curl -o /etc/yum.repos.d/CentOS.repo http://mirrors.aliyun.com/repo/Centos-7.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2523 100 2523 0 0 68045 0 --:--:-- --:--:-- --:--:-- 70083
[root@openstack yum.repos.d]# ll
total 4
drwxr-xr-x 2 root root 206 Feb 21 14:25 bak
-rw-r--r-- 1 root root 2523 Feb 21 14:25 CentOS.repo
[root@openstack yum.repos.d]# yum -y install centos-release-openstack-train
[root@openstack yum.repos.d]# ll
total 24
drwxr-xr-x 2 root root 206 Feb 21 14:25 bak
-rw-r--r-- 1 root root 956 Jun 19 2019 CentOS-Ceph-Nautilus.repo
-rw-r--r-- 1 root root 715 Jun 19 2019 CentOS-NFS-Ganesha-28.repo
-rw-r--r-- 1 root root 1290 Oct 23 01:26 CentOS-OpenStack-train.repo
-rw-r--r-- 1 root root 612 Feb 1 2019 CentOS-QEMU-EV.repo
-rw-r--r-- 1 root root 2523 Feb 21 14:25 CentOS.repo
-rw-r--r-- 1 root root 353 Jul 31 2018 CentOS-Storage-common.repo
更新yum缓存
[root@openstack yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base centos-ceph-nautilus centos-nfs-ganesha28 centos-openstack-train
: centos-qemu-ev extras updates
Cleaning up list of fastest mirrors
[root@openstack yum.repos.d]# yum makecache
时间同步
[root@openstack yum.repos.d]# yum -y install ntpdate
[root@openstack yum.repos.d]# ntpdate ntp.aliyun.com >> /var/log/ntpdate.log
[root@openstack yum.repos.d]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@openstack yum.repos.d]# systemctl restart crond
[root@openstack yum.repos.d]# systemctl enable crond
[root@localhost ~]# tail -f /var/log/ntpdate.log ###动态查看更新日志文件,这条命令可以不敲
安装openstack-packstack
[root@openstack yum.repos.d]# yum -y install openstack-packstack
[root@openstack yum.repos.d]# packstack --allinone 在线部署
Testing if puppet apply is finished: 192.168.247.3_controller.pp [ / ] 这个是等待的意思
tail -f /var/log/
[root@openstack ~]# tail -f /var/log/messages 在线查看安装日志
显示成功
**** Installation completed successfully ******
Additional information:
- Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note that this backend does not support the VPNaaS or FWaaS services. Geneve will be used as the encapsulation method for tenant networks
- A new answerfile was created in: /root/packstack-answers-20200221-143136.txt
- Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
- File /root/keystonerc_admin has been created on OpenStack client host 192.168.247.3. To use the command line tools you need to source the file.
- To access the OpenStack Dashboard browse to http://192.168.247.3/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
- The installation log file is available at: /var/tmp/packstack/20200221-143136-tbr4ug/openstack-setup.log
- The generated manifests are available at: /var/tmp/packstack/20200221-143136-tbr4ug/manifests
[root@openstack yum.repos.d]#
查看账户密码
[root@openstack yum.repos.d]# cd /root
[root@openstack ~]# ls
anaconda-ks.cfg keystonerc_admin keystonerc_demo packstack-answers-20200221-143136.txt
[root@openstack ~]# ll
total 64
-rw-------. 1 root root 1632 Feb 21 2020 anaconda-ks.cfg
-rw------- 1 root root 373 Feb 21 14:35 keystonerc_admin
-rw------- 1 root root 318 Feb 21 14:35 keystonerc_demo
-rw------- 1 root root 51648 Feb 21 14:31 packstack-answers-20200221-143136.txt
[root@openstack ~]# cat /root/keystonerc_admin
unset OS_SERVICE_TOKEN
export OS_USERNAME=admin
export OS_PASSWORD='4dc0395edf0a4fe7'
export OS_REGION_NAME=RegionOne
export OS_AUTH_URL=http://192.168.247.3:5000/v3
export PS1='[\u@\h \W(keystone_admin)]\$ '
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3
http://192.168.247.3/dashboard/
export OS_USERNAME=admin
export OS_PASSWORD='4dc0395edf0a4fe7'
这种模式就跟阿里云的一样了
接下来可以上传镜像文件,或者其他源文件,去创建实例
创建实例的数量和质量需要看物理主机的硬件配置
上传镜像文件,
###上传镜像CentOS-7-x86_64-DVD-1810.iso去opt###
[root@localhost ~]# source keystonerc_admin ###遇到报错Missing value auth-url required for auth plugin password 解决
[root@localhost ~(keystone_admin)]# ll
总用量 116
-rw-------. 1 root root 1308 4月 22 05:00 anaconda-ks.cfg
-rw------- 1 root root 331 4月 28 00:55 keystonerc_admin
-rw------- 1 root root 312 4月 28 00:55 keystonerc_demo
-rw------- 1 root root 49523 4月 28 00:07 packstack-answers-20190428-000742.txt
-rw------- 1 root root 49523 4月 28 01:33 packstack-answers-20190428-013352.txt
[root@localhost ~(keystone_admin)]# openstack image create --container-format bare --disk-format iso --public --file CentOS-7-x86_64-DVD-1810.iso ISO_CentOS7.6
[Errno 2] 没有那个文件或目录: u'CentOS-7-x86_64-DVD-1810.iso'
[root@localhost ~(keystone_admin)]# cd /opt
[root@localhost opt(keystone_admin)]# ll
总用量 4481024
-rw-r--r-- 1 root root 4588568576 4月 28 02:02 CentOS-7-x86_64-DVD-1810.iso
drwxr-xr-x 3 root root 22 4月 28 02:12 stack
[root@localhost opt(keystone_admin)]# openstack image create --container-format bare --disk-format iso --public --file CentOS-7-x86_64-DVD-1810.iso ISO_CentOS7.6
+------------------+------------------------------------------------------+
| Field | Value |
+------------------+------------------------------------------------------+
| checksum | 5b61d5b378502e9cba8ba26b6696c92a |
| container_format | bare |
| created_at | 2019-04-27T18:15:22Z |
| disk_format | iso |
| file | /v2/images/9a3469e6-4bde-4544-8fe3-daa909c6682d/file |
| id | 9a3469e6-4bde-4544-8fe3-daa909c6682d |
| min_disk | 0 |
| min_ram | 0 |
| name | ISO_CentOS7.6 |
| owner | c44490a1222c4a23861b4b87147a744c |
| protected | False |
| schema | /v2/schemas/image |
| size | 4588568576 |
| status | active |
| tags | |
| updated_at | 2019-04-27T18:16:01Z |
| virtual_size | None |
| visibility | public |
+------------------+------------------------------------------------------+
上述镜像上传完毕,可以在网页创建实例装系统了
| 2019-04-27T18:16:01Z |
| virtual_size | None |
| visibility | public |
±-----------------±-----------------------------------------------------+
上述镜像上传完毕,可以在网页创建实例装系统了