编写 Playbook 以启动服务器

创建一个名为 launch-server.yaml 的文件,这将是我们的剧本。

该剧本的第一部分是你的剧本将在其上运行的主持人列表,我们只有一个本地主机。

- hosts: localhost

然后我们需要定义要在此剧本中执行的任务列表。我们只会在 DreamCompute 上启动一个 Ubuntu Xenial 服务器。

tasks:
  - name: launch an Ubuntu server

该剧本的下一部分使用了 os_server(OpenStack Server)模块。这定义了 DreamCompute 中服务器的外观。

os_server:

第一步是对 DreamCompute 进行身份验证; 用你的 DreamCompute 用户名替换 {username},用 DreamCompute 密码替换 {password},用 DreamCompute 项目替换 {project}。你会在 OpenStack RC 文件中找到它们。

  auth:
    auth_url: https://iad2.dream.io:5000
    username: {username}
    password: {password}
    project_name: {project}

下一行定义新服务器的一些元素。

  state: present
  name: ansible-vm1
  image: Ubuntu-16.04
  key_name: {keyname}
  flavor: 50
  network: public
  wait: yes

让我们分解前几行:

  • state 是服务器的状态,可能的值是 presentabsent
  • name 是要创建的服务器的名称; 可以是任何价值
  • image 是从中引导服务器的映像; DreamHost Cloud 网络面板上显示可能的值 ; 变量接受图像名称或 UUID
  • key_name 是创建后添加到服务器的公钥的名称; 这可以是已经添加到 DreamCompute 的任何键。
  • flavor 是启动服务器的味道; 这定义了服务器将拥有多少 RAM 和 CPU; 变量接受 flavor 的名称(gp1.semisonic)或 ID(50,100,200 等)
  • network 是放置服务器的网络。在 DreamHost Cloud 案例中,它是 public 网络。
  • wait 设置为 yes 强制 playbook 在继续之前等待创建服务器。