Cloudify Bootstrapping Process

In a word:

Clooudify通过Bootstrapping Process为Cloudify管理、及应用部署所需的服务提供运行机器。

Overview

Bootstrapping Process负责分配机器(虚拟机或物理机),并且安装软件所需要的相关Cloudify组件。Bootstrapping Process的初始化工作是在Cloudify Shell提示符中运行相关安装命令时启动。

Bootstrapping Process执行以下任务:

1)从可用的machines池中分配一个在相关模板中预定义的机器。Cloudify driver file中定义该模板。

2)通过SSH(*nix)或WinRM(Windows)连接到分配的机器。

3)安装和启动相关组件。

 

一旦Bootstrapping Pocess连接到分配的机器,它将上传启动机器需要的文件。通常包括一个启动脚本和一些需要的文件如SSH key。这些文件位于upload文件夹:

老版本:<cloudifyRoot>/tools/cli/plugins/esc/<cloudProviderName>/upload

新版本:<cloudifyRoot>/clouds/<cloudProviderName>/upload。

文件上传成功后,相关的启动脚本会运行。脚本工作如下:

Script OS Type Description
bootstrap-management.sh

*nix

Shell

This script is used for bootstrapping both management and application service machines, and performs the following tasks as required:

  • Downloads the Cloudify distribution file
  • Installs Java (required to run the Cloudify agent)
  • Installs Cloudify
  • Runs the Cloudify agent

bootstrap-management.ps1

Windows

PowerShell

This script is used for bootstrapping both management and application machines, and performs the following tasks:

  • Downloads the Cloudify distrubtion file
  • Installs Java (required to run the Cloudify agent)
  • Installs Cloudify
bootstrap-client.ps1

Windows

PowerShell

This script is used for launching commands on remote machine running Windows

启动的管理Machine将会开启Cloudify controller程序,而用于应用服务的instance Machine只会启动Cloudify agent。Cloudify agent确保Cloudify controller能够在那些应用服务实例机器上安装和部署各项服务。

注:bootstrapping script旨在适用于最常用安装场景,然而一些特定的云环境,特别是私有云,需要更多的调整以保证其正常工作。通过编辑bootstrap-management.sh(*.nux)或bootstrap-managent.ps1(windows)脚本,以保证Bootstrapping process与相应的需求匹配。

为Cloudify ManageMent提供Machines

当相关的云驱动接收到一个启动云的请求时,它将开展以下工作:

1)使用云环境的API从可用机器池中分配在管理机器上tempate中预定义的机器。

2)通过SSH(*nix)或WinRM(Windows)连接到分配的机器。

3)安装和启动Cloudify Management组件(Cloudify controller 和相关的cloud driver)。

Cloudify Bootstrapping Process_第1张图片

为Application Services提供Machines

当Cloudify controller 接收到一个安装应用的请求时,这需要相关的cloud driver来为运行应用所需要的服务提供machines。cloud driver需要执行以下任务:

1)使用云环境的API从可用机器池中分配与服务提供相关的tempate中预定义的机器。(tempate在UploadRecipe中)

2)通过SSH(*nix)或WinRM(Windows)连接到分配的机器。

3)使用相关服务安装脚本初始化服务安装。

Cloudify Bootstrapping Process_第2张图片

注:当使用BYON cloud driver分配machine时,如果在池中没有任何可用的machines,将会报这样的错误信息:Failed to create a new cloud node for template <your template name>, all available nodes are currently used。如果这个错误发生,应用安装不会回滚,并且Cloudify controller会不断重试,直到有机器可用。如果要停止这个操作,可在Cloudify的Shell提示符中键入Ctrl-C,kill安装命令,然后运行相应的卸载命令。

先决条件

Cloudify为了可以在一个基本的操作系统的服务器(虚拟的或物理机)中直接运行Cloudify的先决条件最小化,不需要任预装任何软件。Cloudify是通过在bootstrpping process过程中上传所有需要的文件达到此效果的。

下表为启动Cloudify提供机器的先决条件列表

先决条件 Windows *nix
JDK JDK1.6以上 JDK1.6以上(新版本,已不是必要条件,会自己下载)
硬盘 500M 500M
网络端口

+相同服务的机器间所有端口开放
+管理机器与所有机器间的所有端口开放
+在管理机器上,8099和8100必须开放。用于通过机器的public IP地址,与互联网通信。这使得Cloudify shell 可以与REST server交互,同时允许用户访问管理的Web应用。

同左
身份验证 用户名和密码;Active Directory当前版本中还未支持 用户名和密码;用户名和密钥*.pem文件;Kerberos在当前版本中还未支持
操作系统
特殊需求
+Windows文件共享支持,端口446(CIFS)
+WinRM支持,端口5985
+Windows PowerShell
+wget
+sed unix command
+unzip
+SSH daemon必须启动,并且在22端口运行

另外,不同的云环境,有各自不同的特定配置,以下为可能用到的配置。

  • Cloudify driver——templates描述,它的别名可以被相关联的不同recipes引用。每个template定义了可用机器的池。
  • Bootstrap management script。
  • Network shares
  • Cloudify文件位置
  • 云环境相关

Bootstrapping

引导步骤:

  1. Start the Cloudify shell
  2. Start the bootstrapping process for provisioning machines for Cloudify management — At the Cloudify shell prompt, type the relevant command to bootstrap your cloud. For example, to provision a local cloud, type:bootstrap-localcloud. The commands for specific cloud environments are provided in their relevant topics.注:Once the command completes, the URL of the Cloudify web management console and the Cloudify contoller’s REST endpoint are display in the shell. Also, the shell automatically connects to the controller as part of the bootstrap process, so you don’t have to explicitly type the connectcommand.
  3. Start the bootstrapping process for provisioning machines for application services — At the Cloudify shell prompt, type the relevant command for installing your application. For example, to install the PetClinic application, type: install-application -timeout 10 <cloudify root>/examples/petclinic-simple.

你可能感兴趣的:(Cloudify Bootstrapping Process)