Simple template tool for creating cloud-config with Terraform
Terraform registry module
Setup modules in main.tf:
module this_user {
source = "4ops/cloud-config-tool/template"
version = "1.1.0"
users = local.user
}
module administrators {
source = "4ops/cloud-config-tool/template"
version = "1.1.0"
users = var.administrators
}Template content:
#cloud-config
users:
- default
${module.administrators.users}
system_info:
default_user:
${module.this_user.default_user}
package_upgrade: true
runcmd:
- userdel -fr ec2-userRendered template:
#cloud-config
users:
- default
- name: alice
shell: /bin/bash
lock_passwd: true
gecos: Test user 1
groups: [users]
sudo: ['ALL=(ALL) NOPASSWD:ALL']
home: /home/alice
ssh_authorized_keys:
- ssh-ed25519 AAAA...
- name: bob
shell: /bin/bash
lock_passwd: true
gecos: Test user 2
groups: [wheel, sudo, adm]
home: /home/bob
system_info:
default_user:
name: terramodule
shell: /bin/bash
lock_passwd: true
groups: [wheel]
home: /home/terramodule
ssh_import_id:
- terramodule
package_upgrade: true
runcmd:
- userdel -fr ec2-userAlso, see example directory.