Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- >&2 echo "### Installing cloud-init"
- apt -y install cloud-init
- >&2 echo "### Configuring cloud-init"
- # Package list update on first boot
- cat > /etc/cloud/cloud.cfg.d/40_apt_update.cfg <<EOF
- package_update: True
- EOF
- cat > /etc/cloud/cloud.cfg.d/50_ssh_pwauth.cfg <<EOF
- ssh_pwauth: True
- EOF
- # Set default system user
- cat > /etc/cloud/cloud.cfg.d/60_def_user.cfg <<EOF
- system_info:
- distro: ubuntu
- default_user:
- name: $IMAGE_ADMIN_USERNAME
- lock_passwd: False
- gecos: Administrator
- EOF
- # Prevent SSH keys from delete on authorized keys reset
- # This file must be moved here after first boot: /etc/cloud/cloud.cfg.d/70_ssh_authkeys.cfg
- cat > /etc/cloud/70_ssh_authkeys.cfg <<EOF
- ssh_deletekeys: False
- EOF
- # Disable networkd configuration update by cloud-init
- cat > /etc/cloud/cloud.cfg.d/80-disable-network-config.cfg <<EOF
- network: { config: disabled }
- EOF
- cat > /etc/cloud/cloud.cfg.d/90_dpkg.cfg <<EOF
- # to update this file, run dpkg-reconfigure cloud-init
- datasource_list: [ CloudStack, None ]
- EOF
- cat > /etc/cloud/cloud.cfg.d/95_data_source.cfg <<EOF
- datasource:
- CloudStack: {}
- None: {}
- datasource_list:
- - CloudStack
- EOF
- # Do at every boot to reset passwords and SSH authorized keys
- cat > /usr/local/bin/ci-update.sh <<EOF
- #!/bin/bash
- # Allow disk setup on overy module start
- rm /var/lib/cloud/instance/sem/config_disk_setup
- # Initiate password reset on startup
- /usr/bin/cloud-init single --name cc_set_passwords --frequency always
- # Initiate ssh keys reset on startup
- /usr/bin/cloud-init single --name cc_ssh --frequency always
- EOF
- chmod +x /usr/local/bin/ci-update.sh
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement