編寫 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 在繼續之前等待建立伺服器。