将 cloud-init 用作 custom_data 和 ansible
Using cloud-init as custom_data with ansible
我使用类似于 this demo 的 ansible playbook
部署 VM。
- 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 文件?还是有另一种方法可以达到这个目标?
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') }}"
我使用类似于 this demo 的 ansible playbook
部署 VM。
- 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 文件?还是有另一种方法可以达到这个目标?
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') }}"