云端。 每个人都使用它。 无论我们是否了解,我们大多数人都使用SaaS解决方案。 您打开浏览器,输入URL,登录,然后使用云。 在云的某些区域,您使用PaaS。 同样,访问这些类型的环境(例如IBM Bluemix,IBM Bluemix Continuous Delivery,Heroku或其他)的最常见方法之一是使用浏览器。
但是如何访问IaaS云呢? 诸如IBM SoftLayer之类的云提供商提供了一种基于浏览器的方法,以提供可访问的基础结构,您可以访问这些基础结构来构建和运行软件。 但是,在配置并启动服务器后,如何访问它? 特别是如果您要访问图形桌面界面?
如果搜索此主题,则可以找到许多相关命中信息,但找不到明确的解释,尤其是与AWS或SoftLayer相关的信息。
本文介绍了使IaaS服务器用户能够访问在SoftLayer上的服务器上运行的GUI的概念,工具和过程。 我们涵盖了以下关键点:
- 桌面GUI软件:对于云上的Linux™服务器,如果需要或需要桌面GUI,则必须将其添加到服务器。
- 远程访问软件:由于需要远程桌面连接才能访问桌面GUI,因此必须安装该软件。
- 附加注意事项:在云配置上可能会从基于云的服务器运行图形用户环境。
您不需要魔术来访问在IaaS云上运行的服务器。 您可以在云中使用与前提数据中心相同的工具和技术; 包括老式的命令行界面。
通过命令行界面
让我们快速看一下通过命令行界面访问云服务器。 Linux和Windows®是在云中运行的两种常见OS类型。 因为许多人已经使用并且已经熟悉Windows的GUI界面,所以我们将重点放在Linux和Telnet上,或者更具体地说,是Linux和Telnet的安全实现:SSH(安全Shell)。 SSH是使命令行访问运行在SoftLayer或任何IaaS提供程序上的Linux服务器的最常用方法。 图1展示了这些作品的架构图以及它们如何协同工作。 该体系结构的关键元素是云的安全密钥,这是一个支持SSH和云服务器IP地址的程序。 这很重要:没有IP地址,您将无法访问云中的服务器。
图1. Linux命令行界面图
如果您的重点是启用GUI访问,那么为什么命令行访问很重要? 要在云中设置服务器以支持GUI访问,必须使用CLI工具(例如SSH)。
没有GUI? 等一下,在云中配置服务器时,它不包括GUI界面吗? 您可以下载Ubuntu桌面的安装映像,然后在VirtualBox上本地运行它,那么为什么云中没有GUI界面? 一个简单的事实是,大多数云IaaS操作系统安装都是从基础开始的。 您从基本服务器基础结构开始,然后用户(或配置程序)自定义服务器操作系统,以满足用户的需求。 可以使用开源社区中可用的工具和技术来完成此过程。 该过程分两个步骤:
- 配置服务器以支持GUI环境
- 远程访问该GUI
设置服务器
对于云中的Windows服务器,有标准的Windows桌面,GUI是Windows的一部分。 当我们研究Linux时,事情变得更加复杂。
Linux桌面通常建立在X窗口系统环境中,该环境提供了GUI环境的基本框架。 X Window System起源于1980年代的MIT,多年来发展成为UNIX和Linux的关键窗口环境。 各种Linux桌面(例如Gnome和KDE)使用X Window System环境创建具有特定功能和特定外观的桌面。 通常,当您安装这些桌面时,底层的X Window系统软件也会作为软件包的一部分安装到服务器上。
通常通过命令行界面在云服务器上安装桌面环境。 使用前面提到的SSH工具,您可以运行安装工具来安装软件包。 Linux的每个变体通常都提供一个安装工具。 例如,Ubuntu具有apt-get(高级打包工具的缩写),它可以自动从Internet检索安装软件包并安装软件。
安装Gnome的Ubuntu示例: $ sudo apt-get install gnome
该命令检索并安装完整的gnome桌面环境。 有多种选择可获取或多或少的桌面(例如,不是LibreOffice工具),但是过程基本相同。
同样,此命令将安装桌面软件和X Window System。 您尚未完成。 您仍然必须执行一些特定的配置。 您可以在本文的“ 食谱”部分中找到这些步骤的概述。
工作不止于此。 将桌面环境安装在云服务器上很不错,但是还有更多需要设置的环境。
访问云中的GUI
如果您在本地访问服务器,例如说在便携式计算机或本地虚拟机上就完成了。
但是,由于要通过Internet访问GUI,因此需要安装远程连接服务器。 该软件使GUI桌面的显示和交互可以通过网络进行路由。 (同样的概念同样适用于数据中心的公共或私有云。)对于Linux系统,最常见的软件是虚拟网络计算或VNC 。 有免费和收费版本的VNC。 使用哪种选择取决于您的需求和组织要求。 但是,最后它们通常都以相同的方式工作。
图2说明了VNC环境的关键要素。 具体来说,有一个服务器和一个客户端。 服务器软件负责与客户端一起为用户提供桌面体验。
图2. VNC环境的关键元素
![该图显示了VNC环境的关键要素](https://i-blog.csdnimg.cn/blog_migrate/948c9a7ddce2f6bf6da20794cbaa1130.png)
注意: VNC服务器为用户运行桌面实例。 多个客户端与同一台服务器交互。 可以使用独特的桌面配置启动VNC服务器的不同实例。 如果需要,客户端可以连接到基于桌面ID的不同桌面。
客户端可以是您启动的特定应用程序,例如Windows上的TightVNCViewer或Mac上的Safari的启用VNC的功能。 不管哪种方式,客户端都与服务器连接,呈现桌面并将交互从键盘和鼠标路由回到服务器。 如图3所示。
图3.使用Linux GUI访问云服务器
安装和配置
安装和配置远程连接服务器环境的方法与安装桌面软件所用的方法相同。 首先,您检索并安装该软件。 例如,在Ubuntu上,您可以安装vnc4server
。
$sudo apt-get install vnc4server
安装软件后,即可配置服务器。 VNC运行桌面实例。 因此,您需要设置VNC配置文件来告诉它要运行哪个桌面以及它的独特性质。
例如,xstartup文件的此部分随vnc4server一起提供,以提供有关希望桌面外观和桌面运行方式(在本例中为gnome)的详细信息。
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
gnome-session -\\-session=ubuntu-2d &
SoftLayer IaaS观点
如前所述,通常由IaaS提供程序(例如IBM SoftLayer或AWS)自动提供的操作系统映像尚未附带桌面GUI或远程访问软件。 如果要支持GUI环境,则在云上配置服务器时需要考虑一些事项。 这些注意事项可能会增加您在云上的服务器的每月或每小时成本,因此您需要进行相应的计划。
首先是,运行GUI实例确实会占用内存和CPU形式的计算资源,就像在笔记本电脑上一样。 如果您需要进行大量工作或使用此界面的用户很多,请确保为服务器提供更多的RAM和具有较大缓存的相应CPU。 具体细节实际上取决于任何时候使用GUI的用户数量。
其次,在远程网络上运行GUI确实会对网络带宽产生影响。 再说一次,这不是惊天动地的新闻,但是有时候,当您置备到云时,您开始将这一切视为理所当然。 确保为您的服务器配置的网络设置了足够的出站带宽,以支持从云服务器发送的图形屏幕更新。 如果未配置足够的带宽,则可能会发现性能不可接受。 此外,云提供商倾向于按出站带宽收费,因此,如果有许多用户从云中运行GUI,则可能意味着您每月需要支付更多费用。
最后,要考虑的另一个考虑因素是需要确保正确配置防火墙。 使用VNC等远程访问工具确实需要打开某些端口。 通常,这些端口的范围是5900-5910。 此限制并非云独有,但需要权衡考虑。 您需要确保在云防火墙上打开了这些端口。
SoftLayer特有的
SoftLayer确实为服务器提供了公用和专用网络(VLAN)。 如果发现只有少数几个管理员需要使用GUI,则可能需要通过VLAN通过专用网络路由他们,从而消除了出站网络费用。 他们可能会发现性能降低,因为该网络通常是一个以管理员为中心的网络。
SoftLayer的“标准”和“ Flex图像模板”功能可能有助于使用前面描述的配置快速设置服务器。 虽然您可以使用脚本和Chef Recipes执行配置步骤,但也可以使用SoftLayer中的图像模板。 成功配置服务器以具有所需的确切工作配置后,可以为其拍摄图像模板快照。 SoftLayer保存此模板,然后您可以使用SoftLayer门户或API从中快速配置新服务器。 一站式操作,所有配置和运行的所有功能。
设置和访问GUI环境:食谱
这是要执行的步骤的概述。 “ 相关主题”下的链接提供了详细信息。
- 选择您的Linux操作系统映像类型,例如RedHat,Ubuntu; 特定的操作系统会影响特定的命令。
- 选择要使用的Linux桌面解决方案。
- 选择要使用的远程桌面服务器软件。
- 设置关联的用户以支持GUI环境。 通常,您需要具有运行vncserver的用户“ vnc”。
- 安装桌面软件,例如
sudo apt-get install gnome
。 - 安装远程桌面服务器软件
$sudo apt-get install vnc4server
。 - 修改配置文件,特别是
xstartup
。 - 确保服务器环境上的防火墙支持VNC端口的远程桌面软件; 5900-5910必须打开。
- 重新启动远程桌面服务器
$ vncserver
。
结论
在云中使用服务器并不意味着您的用户或管理员只能学习或重新学习Linux Shell和命令行界面(CLI)。 尽管具有CLI的强大功能,但仍然可以使用GUI桌面环境。 在某些情况下,这可能也是必要条件。
您在IaaS提供程序(例如SoftLayer)上提供的Linux映像通常没有预先配置这些组件。 但是,这些技术不是云独有的,而是使用过去内部数据中心解决方案中使用的工具。
了解这些技术以及在云环境中运行它们的含义对于做出适当的IaaS决策至关重要。 您可能还会发现,自动化工具(例如SoftLayer图像模板和SoftLayer API)可与其他DevOps工具一起使用,以进一步简化此过程。
翻译自: https://www.ibm.com/developerworks/cloud/library/cl-softlayer-gui/index.html