快速入门:使用 Ansible 管理 Azure 中的 Linux 虚拟机

使用 Ansible 可以在环境中自动部署和配置资源。 在本文中,你将使用 Ansible playbook 来启动和停止 Linux 虚拟机。

先决条件

  • Azure 订阅:如果没有 Azure 订阅,请在开始前创建一个试用订阅

停止虚拟机

在本部分中,你将使用 Ansible 解除分配(停止)Azure 虚拟机。

  1. 登录 Azure 门户

  2. 使用 SSH 命令访问已成功安装并配置了 Ansible 的 Linux 虚拟机。 将 <your-linux-public-ip-address> 占位符替换为 Linux 虚拟机中的实际 IP 地址。

    ssh <your-linux-account>@<your-linux-public-ip-address>
    
  3. 创建一个名为 azure-vm-stop.yml 的文件,并在编辑器中将其打开:

    vi azure-vm-stop.yml
    
  4. 通过选择 I 键选择插入模式。

  5. 将以下示例代码粘贴到编辑器中:

    - 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
    
  6. 将占位符 {{ resource_group_name }}{{ vm_name }} 替换成自己的值。

  7. Esc 键退出插入模式。

  8. 保存文件,然后键入以下命令退出 vi 编辑器:

    :wq
    
  9. 使用 ansible-playbook 命令运行 playbook:

    ansible-playbook azure-vm-stop.yml
    
  10. 运行 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 门户

1. 连接已成功安装 ansible 的 linux 虚拟机。

```
ssh <your-linux-account>@<your-linux-public-ip-address>
```
  1. 创建一个名为 azure-vm-start.yml 的文件,并在编辑器中将其打开:

    vi azure-vm-start.yml
    
  2. 通过选择 I 键选择插入模式。

  3. 将以下示例代码粘贴到编辑器中:

    - name: Start Azure VM
      hosts: localhost
      connection: local
      tasks:
        - name: Start virtual machine
          azure_rm_virtualmachine:
            resource_group: {{ resource_group_name }}
            name: {{ vm_name }}
    
  4. 将占位符 {{ resource_group_name }}{{ vm_name }} 替换成自己的值。

  5. Esc 键退出插入模式。

  6. 保存文件,然后键入以下命令退出 vi 编辑器:

    :wq
    
  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