在Azure和cloud-init上进行Ansible

时间:2018-10-08 14:07:11

标签: azure ansible cloud-init

我使用ansible playbook部署VM,类似于this demo

- name: Create VM
  azure_rm_virtualmachine:
    resource_group: myResourceGroup
    name: myVM
    ...
    custom_data: cloud-init.yml

现在,我还想安装一些软件包并做一些小的准备。我做了一个cloud-config.yml

#cloud-config

package_upgrade: true
packages:
  - npm
  - nodejs-legacy

runcmd:
- sudo mkdir -p /data/projects/

似乎cloud-init.yml没有执行,所以我猜这不是正确的语法。您应该如何在ansible剧本中传递cloud-init文件?还是有另一种方法可以实现这一目标?

1 个答案:

答案 0 :(得分:0)

custom_data中的

azure_rm_virtualmachine参数需要数据,而不是文件名。

您可以使用file查找插件从Ansible控制器上的文件中获取数据:

- name: Create VM
  azure_rm_virtualmachine:
    resource_group: myResourceGroup
    name: myVM
    ...
    custom_data: "{{ lookup('file', 'cloud-init.yml') }}"