Trystack创建实例并通过ssh远程登录虚拟机

这是Trystack的官方介绍:
The Easiest Way To Try Out OpenStack. We've set up large clusters of hardware running OpenStack on both x86 and ARM architectures. The best part? It's totally free for you to try & test your apps—thanks to our generous individual and corporate contributors.
trystack提供一个免费的openstack环境给你尝试测试你的apps,你新建的虚拟机只会存在24小时,所以只能用于测试,不能用于生产环境。

Trystack传送门:http://trystack.org/

下面介绍详细步骤:

1.申请加入trystack的facebook小组

点击首页的 Join Our Facebook Group,申请加入trystack的facebook小组,这个不是立即生效的,基本上申请了都会加入,请等待小组的管理员通过你的申请。(facebook被墙了,怎么访问的话我这里不做介绍)

[caption id="attachment_114" align="alignnone" width="693"]申请加入小组 申请加入小组[/caption]

2.登录trystack

确保你加入了小组之后,就能点击trystack首页的登录按钮,使用facebook帐号验证,登录成功后如下图所示,可以看到,你的用户名形如 facebook*******

[caption id="attachment_117" align="alignnone" width="702"]登录成功 登录成功[/caption]

3.创建子网

点击openstack dashboard左侧的网络,在点击展开后的网络选项,点击右侧的“创建网络”按钮,打开创建网络的对话框。

[caption id="attachment_118" align="alignnone" width="710"]创建网络 创建网络[/caption]

在网络选项中输入网络的名称,子网选项中输入子网名称,子网地址(注意格式),其他默认即可,点击下一步完成创建。(也可以在子网详情中设置DHCP,ip的范围,和主机路由等选项,这里不多介绍),创建成功后如下图所示。

[caption id="attachment_119" align="alignnone" width="710"]创建网络完成 创建网络完成[/caption]

4.创建路由

点击openstack dashboard左侧的网络,在点击展开后的路由选项,点击右侧的 “新建路由”按钮,打开新建路由的对话框。

输入路由名字就可以了,就不上图了,创建完成后点击“设置网关”打开路由的网关设置页,选择默认的 external 网络。

[caption id="attachment_122" align="alignnone" width="717"]设置网关 设置网关[/caption]

完成后点击路由的名称,进入路由的详情页面,点击“增加接口”按钮,增加前面创建的子网。

[caption id="attachment_123" align="alignnone" width="724"]增加接口 增加接口[/caption]

5.创建密钥对

trystack的镜像没有用户名、密码,需要是要密钥登录。点击openstack dashboard左侧的compute,在点击展开后的“访问&安全”选项,选择 “密钥对”选项,点击左侧的“创建密钥对”按钮,打开创建密钥对的窗口。

[caption id="attachment_124" align="alignnone" width="727"]创建密钥对 创建密钥对[/caption]

[caption id="attachment_125" align="alignnone" width="728"]创建密钥对 创建密钥对[/caption]

创建成功后会自动打开下载窗口,保存私钥到本地磁盘,后面用来ssh登录虚拟机。

[caption id="attachment_126" align="alignnone" width="733"]下载私钥 下载私钥[/caption]

6.创建虚拟机

点击openstack dashboard左侧的compute,在点击展开后的“实例”选项,点击右侧的 “启动云主机”选项,打开新建虚拟机的窗口。

[caption id="attachment_131" align="alignnone" width="728"]虚拟机详情 虚拟机详情[/caption]

依次填入云主机名称,选择云主机类型,启动源,镜像名称等选项,选择上方的“访问&安全”选项,选择前面创建的密钥对。

[caption id="attachment_132" align="alignnone" width="728"]选择密钥对 选择密钥对[/caption]

然后下一步,点击“网络”选项,选择前面创建的网络。

[caption id="attachment_133" align="alignnone" width="728"]选择网络 选择网络[/caption]

其他选项可以忽略,直接点击“运行”按钮,完成创建后如下图所示:

[caption id="attachment_134" align="alignnone" width="728"]创建成功 创建成功[/caption]

7.绑定floating ip

选择虚拟机最后行的动作中的“绑定浮动ip”

[caption id="attachment_135" align="alignnone" width="353"]浮动ip 浮动ip[/caption]

打开绑定浮动ip的窗口,如果没有分配过浮动ip,需要点击下图的“+”号,分配一个浮动ip

[caption id="attachment_136" align="alignnone" width="727"]绑定浮动ip 绑定浮动ip[/caption]

关联成功后如下图所示,图中的红色标记既为分配到的浮动ip,可以通过这个地址远程访问虚拟机。

[caption id="attachment_137" align="alignnone" width="734"]关联完成 关联完成[/caption]

8.设置安全组规则

点击openstack dashboard左侧的compute,在点击展开后的“访问&安全”选项,选择 “安全组”选项,点击管理规则,打开规则的新窗口。

[caption id="attachment_138" align="alignnone" width="743"]19 安全组[/caption]

点击“添加规则”按钮,依次添加ICMP出入站规则和SSH规则。

[caption id="attachment_139" align="alignnone" width="744"]20 添加规则[/caption]

[caption id="attachment_140" align="alignnone" width="730"]ICMP规则 ICMP规则[/caption]

[caption id="attachment_141" align="alignnone" width="728"]ICMP规则 ICMP规则[/caption]

[caption id="attachment_142" align="alignnone" width="728"]SSH规则 SSH规则[/caption]

至此,openstack上的设置全部完成,我们已经可以在本地计算机ping通虚拟机的floating ip。

[caption id="attachment_143" align="alignnone" width="667"]ping通浮动ip ping通浮动ip[/caption]

9.SSH登录虚拟机

打开PuTTYGen,首先导入前面保存的私钥。导入的时候选择所有文件,这样才能导入openstack的密钥 *.pem

[caption id="attachment_146" align="alignnone" width="483"]导入私钥 导入私钥[/caption]

导入成功后保存私钥为putty使用的格式(经测试putty直接使用openstack的私钥*.pem会报错)

[caption id="attachment_147" align="alignnone" width="482"]保存私钥为putty的格式 保存私钥为putty的格式[/caption]

保存成功后打开putty导入保存的私钥。

[caption id="attachment_148" align="alignnone" width="456"]putty导入私钥 putty导入私钥[/caption]

转到Session,输入floating ip登录

[caption id="attachment_149" align="alignnone" width="456"]floating ip登录 floating ip登录[/caption]

连接成功后使用用户名“centos”,无需密码即可登录。

[caption id="attachment_150" align="alignnone" width="667"]登录成功 登录成功[/caption]

 

附录:

RSA加密算法

Qt常用窗口部件

从《C++.GUI.Qt.4编程(第二版)》上整理来的。

 

  1. Qt提供4中类型的按钮:QPushButton、QToolButton、QCheckBox 和 QRadioButton。QPushButton和QToolButton一般执行某个动作,但也可用作触发按纽。QCheckBox一般用来提供多选项,而QRadioButton常用于提供单选项。

    [caption id="attachment_76" align="alignnone" width="597"]Qt按钮控件 Qt按钮控件[/caption]
  2. Qt的容器窗口部件是一种可以包含其他窗口部件的窗口部件。QFrame可画些简单的图形,也可作为其他控件的基类,如QToolBox,QLabel等。 

    [caption id="attachment_77" align="alignnone" width="633"]Qt单页容器控件 Qt单页容器控件[/caption]
  3. QTabWidget 和 QToolBox 是多页窗口部件。在多页窗口部件中,每一页都是一个子窗口部件,并从 0 开始编号这些页。对于一个QTabWidget,它的每个Tab标签的位置和形状都可以进行设置。

    [caption id="attachment_78" align="alignnone" width="641"]Qt多页容器控件 Qt多页容器控件[/caption]
  4. 项视图窗口部件

    [caption id="attachment_79" align="alignnone" width="819"]Qt项目查看控件 Qt项目查看控件[/caption]
  5. 显示窗口部件。如下图,QLabel是这些窗口部件中最重要的一个,它可以用来显示普通文本、图片和 HTML。QTextBrowser是一个只读类型的 QTextEdit 子类,它可以显示带格式的文本。它优先用于处理大型格式化文本文档的 QLabel 中,与 QLable 不同的是,QTextBrowser 会在必要的时自动提供滚动条,同时还提供键盘和鼠标导航的广泛支持。(Qt助手就是使用QTextBrowser来为用户呈现文档的)

    [caption id="attachment_80" align="alignnone" width="642"]Qt显示控件 Qt显示控件[/caption]
  6. Qt提供数个用于数据输入的窗口部件。如图,QLineEdit可以使用一个输入掩码、一个校验器或者同时使用两者对它的输入进行限定。QTextEdit 是QAbstractScrollArea的子类,具有处理大量文本的能力。一个QTextEdit可以设置用于编辑普通文本还是富文本。在编辑富文本的时候,它可以显示 Qt 富文本引擎支持的所有元素,QLineEdit 和 QTextEdit 都对剪切板提供完美支持。

    [caption id="attachment_81" align="alignnone" width="594"]Qt输入控件 Qt输入控件[/caption]
  7. Qt提供一个通用消息框和一个能记住它所显示的消息内容的错误对话框。可以使用 QProcessDialog 或者 5 中的 QProcessBar 来对那些非常耗时的操作进行指示。当用户只需要输入一行文本或者一个数字的时候,使用 QInputDialog 会非常方便。

    [caption id="attachment_82" align="alignnone" width="649"]Qt反馈对话框 Qt反馈对话框[/caption]
  8. Qt提供一套标准的通用对话框,这样可以要用户很容易的选择字体、颜色、文件或者文档打印。如下图。

    [caption id="attachment_83" align="alignnone" width="684"]Qt颜色和字体对话框 Qt颜色和字体对话框[/caption]
  9. 利用QWizard可方便快捷的创建向导(Mac上称作助手),向导常用于帮助用户完成复杂或是很少用到的操作。

    [caption id="attachment_84" align="alignnone" width="650"]Qt向导对话框 Qt向导对话框[/caption]

在OpenLogic上安装桌面环境并通过Windows远程桌面登录

OpenLogic 为700多个不同的开源代码包 提供服务和支持,包括了对CentOS的商业级支持,派生自Red Hat Enterprise Linux为公众提供的源代码的企业级 Linux 分布。

以上是网上找到的关于OpenLogic的介绍,反正当CentOS用就是了,更多详细的信息,可以移步OpenLogic的官网:www.openlogic.com/

  • 首先创建OpenLogic虚拟机

过程不再赘述,并且添加22和3389端口,添加方法可以参照《使用windows远程桌面连接Windows Azure中的Ubuntu虚拟机》中的第3部。

  • 安装桌面环境(Gnome)

使用Putty连接上虚拟机

GNOME desktop需要NetworkManager,但是NetworkManager和Azure VM的WALinuxAgent插件冲突。解决办法如下:

  1. 编辑 /etc/yum.conf 在文件的结尾添加以下内容:
    exclude=NetworkManager*

     

    然后执行
    yum clean all
    yum groupinstall basic-desktop desktop-platform x11 fonts

     
  2. 或者直接执行以下命令:
    yum groupinstall basic-desktop desktop-platform x11 fonts  \
      --exclude=NetworkManager  --exclude=NetworkManager-gnome

     

     

    安装完成后重启虚拟机,使用Putty重新连接。
  • 安装VNC和XRDP
  1. 使用一下命令安装VNC
    yum install vnc vnc-server

     
  2. 默认的源没有xrdp,所以我自己找了一个rpm包安装,使用以下命令下载rpm包并安装:
    wget http://dl.fedoraproject.org/pub/epel/6/x86_64/xrdp-0.5.0-0.13.el6.x86_64.rpm
    rpm -ivh xrdp-0.5.0-0.13.el6.x86_64.rpm

  3. 上述链接已经失效,可以参考下面的连接完成安装
    http://www.itzgeek.com/how-tos/linux/centos-how-tos/install-xrdp-on-centos-7-rhel-7.html
  4. 设置开机自启自启
    chkconfig xrdp on
    chkconfig vncserver on

     
  • 修改虚拟机运行级别(前面一直不成功,就是这一步没有设置),编辑/etc/inittab文件,修改启级别为5
    vim /etc/inittab
    id:3:initdefault:    
    #修改为  
    id:5:initdefault:

     

修改完成后重启虚拟机

  • 下载远程桌面文件,登录虚拟机,如果登录被拒绝,请查看iptables设置,登录成功后如下图所示:

    [caption id="attachment_41" align="alignnone" width="862"]登录成功 登录成功[/caption]

使用windows远程桌面连接Windows Azure中的Ubuntu虚拟机

  1. 上次连接windows的虚拟机的过程还是很简单的,但是尝试ubuntu虚拟机的时候遇到一点问题,找了一下解决方法。创建ubuntu虚拟机,这里同样不再赘述,创建过程和创建Windows虚拟机基本一样,只是登录可以选择密钥注入或者用户名密码(为了方便我选择了用户名密码认证),创建完成后,查看虚拟机详情中的端口信息,已经开启22端口,如下图:

    [caption id="attachment_22" align="alignnone" width="761"]22端口用于SSH连接 22端口用于SSH连接[/caption]
  2. 下载putty连接虚拟机,使用创建虚拟机时的用户名密码(HOST NAME就是虚拟机的DNS名称),如下图:

    [caption id="attachment_23" align="alignnone" width="456"]SSH连接虚拟机 SSH连接虚拟机[/caption]

    连接成功之后执行以下命令,安装桌面环境和XRDP ,安装完成后,reboot重启系统。

    333
  3. 在虚拟机添加3389端口,点击“添加”按钮,按下图操作进行(如果已经开启3389端口可以跳过此部)

    [caption id="attachment_28" align="alignnone" width="941"]添加端口 添加端口[/caption]

    [caption id="attachment_29" align="alignnone" width="651"]因为我刚刚已经添加过了,所以这里有警告 因为我刚刚已经添加过了,所以这里有警告[/caption]
  4. 然后和连接windows虚拟机一样,下载远程桌面连接文件,登录虚拟机

    [caption id="attachment_30" align="alignnone" width="800"]登录页面 登录页面[/caption]
  5. 登录后如下图所示

[caption id="attachment_33" align="alignnone" width="800"]无法显示桌面 无法显示桌面[/caption]

如上图所示,无法显示桌面,爬文后了解到是:

“由于xrdp、gnome和unity之间的兼容性问题,在Ubuntu 14.04版本中仍然无法使用xrdp登陆gnome或unity的远程桌面,现象是登录后只有黑白点为背景,无图标也无法操作。与13.10中的解决方式相同,使用xrdp只能登录xfce的远程桌面。”

我新建虚拟机的时候选得是14.04 LTS版,解决办法换12.04 LTS重复以上步骤,或者执行以下命令更换桌面环境为xfce

sudo apt-get install xfce4
sudo apt-get install xrdp vnc4server
echo "xfce4-session" >~/.xsession
sudo service xrdp restart

 

之后远程桌面重新登录,成功后,如下图所示:

[caption id="attachment_34" align="alignnone" width="800"]登录成功 登录成功[/caption]

 

还是不习惯xfce的风格虽然很简洁,看来我还是回12.04或者改装CentOS折腾openstack去……