暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

利用Terraform部署H2O.ai环境

火火日记 2020-04-10
522

1. Terraform是什么?

Terraform 是一种安全有效地构建、更改和版本化控制管理基础设施的工具。它的目标是 "Write, Plan, and create Infrastructure as Code", 基础架构即代码。具体的说就是可以用代码来管理维护 IT 资源,把之前需要手动操作的一部分任务通过程序来自动化的完成,这样的做的结果就是开发运维变得非常高效而且不易出错。Terraform 几乎可以支持所有市面上能见到的云服务,所以在管理云服务时经常被使用。



2. Terraform的核心功能

1. 基础架构即代码(Infrastructure as Code)
使用高级配置语法描述基础架构,对数据中心的蓝图进行版本控制,就像对待其他代码一样。
2. 执行计划(Execution Plans)
为了避免Apply执行命令时发生错误,Terraform有一个执行计划机制Plan,通过Plan我们可以提前对将要调用Apply时执行对代码进行提前检查。
3. 资源图(Resource Graph)
Terraform构建所有资源的图表,并且并行创建和修改任何无依赖的资源。因此通过Terraform可以高效的构建基础设施,并且操作者可以通过图表了解基础设施间的依赖关系。

4. 自动化变更(Change Automation)

把复杂的变更集应用到基础设施中,而无需人工交互。使用前面提到的执行计划和资源图表,可以确切的知道Terraform将会做哪些变更,以什么顺序改变,从而避免一些可能的人为错误。


3. H2O.ai环境部署

那么下面就让我们来看下,如何利用Terraform在OCI(Oracle Cloud Infrastructure)上快速搭搭建H2O.ai环境。

可能有部分人对H2O.ai这个产品比较陌生,我稍微来介绍下。


H2O.ai作为开源机器学习平台,旨在让所有人都能轻松完成ML。其开源社区包括超过129,000名数据科学家和12,000个组织。在世界500强企业中有半数以上的企业正在使用这款产品,且在Gartner魔力象限和Forrester中的评分也比较高。


H2O.ai架构


Project 预测结果的可视化界面


对数据集的可视化分析界面


3.1 Terraform安装
下载 Terraform Zip文件
wget https://releases.hashicorp.com/terraform/0.11.13/terraform_0.11.13_linux_amd64.zip
复制


Zip 文件解压
sudo unzip ./terraform_0.11.13_linux_amd64.zip -d /usr/local/bin/


# 如未安装unzip时 执行如下代码
sudo apt-get install -y unzip
复制


确认安装后的Terraform信息
terraform
复制


之后需要创建OCI Key,并需要把Public Key添加到OCI User中,此步骤可参照之前的KubeFlow安装的文章,在这里我们略过。

3.2 Terraform 环境设置
在Github上下载环境配置文件env-vars.sh
curl -o ~/env-vars.sh https://raw.githubusercontent.com/cloud-partners/oci-prerequisites/master/env-vars.sh
复制


确认下载文件,利用vim修改连接信息
cat env-vars.sh
复制


修改完成后执行如下命令
source ~/env-vars.sh
复制

3.3 安装H2O.ai
复制安装H2O的tf文件
git clone https://github.com/oracle/oci-quickstart-h2o.git
cd oci-quickstart-h2o/terraform
ls
复制


初始化设置
terraform init
复制


确认Terraform Plan
terraform plan
复制


执行Terraform
terraform apply
复制


执行时会读取variables.tf文件中的如下信息
  • key: Set to the value of your key. If empty, you will be prompted to enter your key at first login.
  • shape: Default BM.GPU2.2, these templates support both CPU and GPU (higher performance) shapes.
  • ad_number: Default 0, choose a value where you have quota for the desired shape.
  • disk_size_gb: Default 0, size of block volume in GB for data, min 50. If set to 0 volume will not be created/mounted
  • user: Default admin, these templates set up local authentication using file /etc/dai/htpasswd
  • password: Default admin


Plan后有报错,原因是OCI默认GPU Instance时不可用的,所以在创建GPU Instance时发生了错误,需要单独申请GPU使用权限。



GPU申请权限可参照如下连接

https://medium.com/oracledevs/getting-started-with-gpu-instances-in-oracle-cloud-cb58720a4b88


获取GPU权限后,重新执行terraform apply时,可以确认如下画面。复制URL在浏览器打开即可登陆H2O.ai环境


同意Agreement并登陆


用户名密码在variables.tf文件中可以获得,均为admin


执行如下代码,可以确认利用Terraform创建的H2O.ai VM Instance

ssh -i ~/.ssh/oci opc@<Public IP Address>
复制


如需要删除环境也非常简单,可以执行如下代码

terraform destroy
复制


是不是非常方便?试想一下当你创建一个环境时可以通过Cloud的图形化界面进行开发,但是如果要创建10个100个呢?显然Terraform要方便快捷很多


今天的内容就到这里,谢谢大家。

文章转载自火火日记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论