使用 Ansible 管理 Azure 中的 Linux 虛擬機

Ansible 可讓您自動化環境中資源的部署和設定。 在本文中,您會使用 Ansible 劇本來啟動和停止 Linux 虛擬機。

必要條件

  • Azure 訂用帳戶:如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶

停止虛擬機

在本節中,您會使用 Ansible 解除分配 Azure 虛擬機。

  1. 登入 Azure 入口網站

  2. 開啟 Cloud Shell

  3. 建立名為 azure-vm-stop.yml的檔案,並在編輯器中開啟它:

    code azure-vm-stop.yml
    
  4. 將下列範例程式代碼貼到編輯器中:

    - name: Stop Azure VM
      hosts: localhost
      connection: local
      tasks:
        - name: Stop virtual machine
          azure_rm_virtualmachine:
            resource_group: {{ resource_group_name }}
            name: {{ vm_name }}
            allocated: no
    
  5. {{ resource_group_name }} 您的值取代和 {{ vm_name }} 佔位元。

  6. 儲存檔案並結束編輯器。

  7. 使用 ansible-playbook 執行劇本

    ansible-playbook azure-vm-stop.yml
    
  8. 執行劇本之後,您會看到類似下列結果的輸出:

    PLAY [Stop Azure VM] ********************************************************
    
    TASK [Gathering Facts] ******************************************************
    ok: [localhost]
    
    TASK [Deallocate the Virtual Machine] ***************************************
    changed: [localhost]
    
    PLAY RECAP ******************************************************************
    localhost                  : ok=2    changed=1    unreachable=0    failed=0
    

啟動虛擬機

在本節中,您會使用 Ansible 來啟動已解除分配的 Azure 虛擬機。

  1. 登入 Azure 入口網站

  2. 開啟 Cloud Shell

  3. 建立名為 azure-vm-start.yml的檔案,並在編輯器中開啟它:

    code azure-vm-start.yml
    
  4. 將下列範例程式代碼貼到編輯器中:

    - name: Start Azure VM
      hosts: localhost
      connection: local
      tasks:
        - name: Start virtual machine
          azure_rm_virtualmachine:
            resource_group: {{ resource_group_name }}
            name: {{ vm_name }}
            started: yes
    
  5. {{ resource_group_name }} 您的值取代和 {{ vm_name }} 佔位元。

  6. 儲存檔案並結束編輯器。

  7. 使用 ansible-playbook 執行劇本

    ansible-playbook azure-vm-start.yml
    
  8. 執行劇本之後,您會看到類似下列結果的輸出:

    PLAY [Start Azure VM] ********************************************************
    
    TASK [Gathering Facts] ******************************************************
    ok: [localhost]
    
    TASK [Start the Virtual Machine] ********************************************
    changed: [localhost]
    
    PLAY RECAP ******************************************************************
    localhost                  : ok=2    changed=1    unreachable=0    failed=0
    

下一步