使用 Ansible 管理 Azure 中的 Linux 虚拟机

使用 Ansible 可以在环境中自动部署和配置资源。 在本文中,你将使用 Ansible playbook 来启动和停止 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 运行 playbook

    ansible-playbook azure-vm-stop.yml
    
  8. 运行 playbook 后,可看到类似于以下结果的输出:

    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 运行 playbook

    ansible-playbook azure-vm-start.yml
    
  8. 运行 playbook 后,可看到类似于以下结果的输出:

    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
    

后续步骤