Merge 3ef644081b
into d6207a620a
This commit is contained in:
commit
49a0c83733
2
stage2/02-cloud-init/00-packages
Normal file
2
stage2/02-cloud-init/00-packages
Normal file
|
@ -0,0 +1,2 @@
|
|||
cloud-init
|
||||
ssh-import-id
|
20
stage2/02-cloud-init/01-run.sh
Normal file
20
stage2/02-cloud-init/01-run.sh
Normal file
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
install -m 644 files/user-data ${ROOTFS_DIR}/boot/
|
||||
install -m 644 files/meta-data ${ROOTFS_DIR}/boot/
|
||||
install -m 644 files/cloud/cloud.cfg ${ROOTFS_DIR}/etc/cloud/
|
||||
|
||||
on_chroot << EOF
|
||||
echo 'Get cloud-init'
|
||||
|
||||
echo 'Symlinking cloud-init nocloud-net seed files to /boot partition'
|
||||
mkdir -p /var/lib/cloud/seed/nocloud-net
|
||||
if [ ! -f /var/lib/cloud/seed/nocloud-net/user-data ]
|
||||
then
|
||||
ln -s /boot/user-data /var/lib/cloud/seed/nocloud-net/user-data
|
||||
fi
|
||||
if [ ! -f /var/lib/cloud/seed/nocloud-net/meta-data ]
|
||||
then
|
||||
ln -s /boot/meta-data /var/lib/cloud/seed/nocloud-net/meta-data
|
||||
fi
|
||||
EOF
|
187
stage2/02-cloud-init/files/cloud/cloud.cfg
Normal file
187
stage2/02-cloud-init/files/cloud/cloud.cfg
Normal file
|
@ -0,0 +1,187 @@
|
|||
# The top level settings are used as module
|
||||
# and system configuration.
|
||||
|
||||
# A set of users which may be applied and/or used by various modules
|
||||
# when a 'default' entry is found it will reference the 'default_user'
|
||||
# from the distro configuration specified below
|
||||
users:
|
||||
- default
|
||||
|
||||
# If this is set, 'root' will not be able to ssh in and they
|
||||
# will get a message to login instead as the above $user (debian)
|
||||
disable_root: true
|
||||
|
||||
# This will cause the set+update hostname module to not operate (if true)
|
||||
preserve_hostname: false
|
||||
|
||||
# This preserve the sources list
|
||||
apt_preserve_sources_list: true
|
||||
|
||||
datasource_list: [ NoCloud ]
|
||||
|
||||
# Example datasource config
|
||||
#datasourcef:
|
||||
# Ec2:
|
||||
# metadata_urls: [ 'blah.com' ]
|
||||
# timeout: 5 # (defaults to 50 seconds)
|
||||
# max_wait: 10 # (defaults to 120 seconds)
|
||||
|
||||
# The modules that run in the 'init' stage
|
||||
cloud_init_modules:
|
||||
# migrate old versions of cloud-init data to new
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#migrator
|
||||
- migrator
|
||||
# provide random seed data
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#seed-random
|
||||
- seed_random
|
||||
# Run arbitrary commands early in the boot process
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#bootcmd
|
||||
- bootcmd
|
||||
# write arbitrary files
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#write-files
|
||||
- write-files
|
||||
# grow partitions
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#growpart
|
||||
- growpart
|
||||
# Resize filesystem
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#resizefs
|
||||
- resizefs
|
||||
# configure partitions and filesystems
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#disk-setup
|
||||
- disk_setup
|
||||
# configure mount points and swap files
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#mounts
|
||||
- mounts
|
||||
# set hostname and fqdn
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#set-hostname
|
||||
- set_hostname
|
||||
# update hostname and fqdn
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#update-hostname
|
||||
- update_hostname
|
||||
# update /etc/hosts
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#update-etc-hosts
|
||||
- update_etc_hosts
|
||||
# add ca certificates
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#ca-certs
|
||||
- ca-certs
|
||||
# configure system loggig via rsyslog
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#rsyslog
|
||||
- rsyslog
|
||||
# configure users and groups
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#users-and-groups
|
||||
- users-groups
|
||||
# configure ssh and ssh keys
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#ssh
|
||||
- ssh
|
||||
|
||||
# The modules that run in the 'config' stage
|
||||
cloud_config_modules:
|
||||
# Emit the cloud config ready event
|
||||
# this can be used by upstart jobs for 'start on cloud-config'.
|
||||
# emit upstart configuration
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#emit-upstart
|
||||
- emit_upstart
|
||||
# import ssh id
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#ssh-import-id
|
||||
- ssh-import-id
|
||||
# set system locale
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#locale
|
||||
- locale
|
||||
# Set user passwords
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#set-passwords
|
||||
- set-passwords
|
||||
# configure grub debconf installation device
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#grub-dpkg
|
||||
- grub-dpkg
|
||||
# configure apt pipelining
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#apt-pipelining
|
||||
- apt-pipelining
|
||||
# configure apt
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#apt-configure
|
||||
- apt-configure
|
||||
# enable and configure ntp
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#ntp
|
||||
- ntp
|
||||
# set system timezone
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#timezone
|
||||
- timezone
|
||||
# disable aws ec2 metadata
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#disable-ec2-metadata
|
||||
- disable-ec2-metadata
|
||||
# Run arbitrary commands
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#runcmd
|
||||
- runcmd
|
||||
# enable/disable byobu system wide and for default user
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#byobu
|
||||
- byobu
|
||||
|
||||
# The modules that run in the 'final' stage
|
||||
cloud_final_modules:
|
||||
# update, upgrade, and install packages
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#package-update-upgrade-install
|
||||
- package-update-upgrade-install
|
||||
# configure ubuntu fan networking
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#fan
|
||||
- fan
|
||||
# install, configure and start puppet
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#puppet
|
||||
- puppet
|
||||
# module that configures, starts and installs chef.
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#chef
|
||||
- chef
|
||||
# set up and run salt minion
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#salt-minion
|
||||
- salt-minion
|
||||
# install, configure and start mcollective
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#mcollective
|
||||
- mcollective
|
||||
# support rightscale configuration hooks
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#rightscale-userdata
|
||||
- rightscale_userdata
|
||||
# run vendor scripts
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#scripts-vendor
|
||||
- scripts-vendor
|
||||
# run one time scripts
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#scripts-per-once
|
||||
- scripts-per-once
|
||||
# run per boot scripts
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#scripts-per-boot
|
||||
- scripts-per-boot
|
||||
# run per instance scripts
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#scripts-per-instance
|
||||
- scripts-per-instance
|
||||
# run user scripts
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#scripts-user
|
||||
- scripts-user
|
||||
# log fingerprints of user ssh keys
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#ssh-authkey-fingerprints
|
||||
- ssh-authkey-fingerprints
|
||||
# control which ssh keys may be written to console
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#keys-to-console
|
||||
- keys-to-console
|
||||
# post data to url
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#phone-home
|
||||
- phone-home
|
||||
# output final message when cloud-init has finished
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#final-message
|
||||
- final-message
|
||||
# change power state
|
||||
# https://cloudinit.readthedocs.io/en/18.3/topics/modules.html#power-state-change
|
||||
- power-state-change
|
||||
|
||||
# System and/or distro specific settings
|
||||
# (not accessible to handlers/transforms)
|
||||
system_info:
|
||||
# This will affect which distro class gets used
|
||||
distro: debian
|
||||
# Default user name + that default users groups (if added/used)
|
||||
default_user:
|
||||
name: pi
|
||||
#lock_passwd: True
|
||||
shell: /bin/bash
|
||||
# Other config here will be given to the distro class and/or path classes
|
||||
paths:
|
||||
cloud_dir: /var/lib/cloud/
|
||||
templates_dir: /etc/cloud/templates/
|
||||
upstart_dir: /etc/init/
|
||||
ssh_svcname: ssh
|
1
stage2/02-cloud-init/files/meta-data
Normal file
1
stage2/02-cloud-init/files/meta-data
Normal file
|
@ -0,0 +1 @@
|
|||
instance-id: iid-raspberrypi-nocloud
|
63
stage2/02-cloud-init/files/user-data
Normal file
63
stage2/02-cloud-init/files/user-data
Normal file
|
@ -0,0 +1,63 @@
|
|||
#cloud-config
|
||||
# vim: syntax=yaml
|
||||
#
|
||||
|
||||
# The current version of cloud-init in the Hypriot rpi-64 is 0.7.6
|
||||
# When dealing with cloud-init, it is SUPER important to know the version
|
||||
# I have wasted many hours creating servers to find out the module I was trying to use wasn't in the cloud-init version I had
|
||||
# Documentation: http://cloudinit.readthedocs.io/en/0.7.9/index.html
|
||||
|
||||
# Set your hostname here, the manage_etc_hosts will update the hosts file entries as well
|
||||
#hostname: raspberrypi
|
||||
#manage_etc_hosts: true
|
||||
|
||||
# You could modify this for your own user information
|
||||
#users:
|
||||
# - default
|
||||
|
||||
# # Set the locale of the system
|
||||
# locale: "en_US.UTF-8"
|
||||
|
||||
# # Set the timezone
|
||||
# # Value of 'timezone' must exist in /usr/share/zoneinfo
|
||||
# timezone: "America/Los_Angeles"
|
||||
|
||||
# # Update apt packages on first boot
|
||||
# package_update: true
|
||||
# package_upgrade: true
|
||||
# package_reboot_if_required: true
|
||||
package_upgrade: false
|
||||
|
||||
# # Install any additional apt packages you need here
|
||||
# packages:
|
||||
# - ntp
|
||||
|
||||
# # WiFi connect to HotSpot
|
||||
# # - use `wpa_passphrase SSID PASSWORD` to encrypt the psk
|
||||
# write_files:
|
||||
# - content: |
|
||||
# allow-hotplug wlan0
|
||||
# iface wlan0 inet dhcp
|
||||
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
|
||||
# iface default inet dhcp
|
||||
# path: /etc/network/interfaces.d/wlan0
|
||||
# - content: |
|
||||
# ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
|
||||
# update_config=1
|
||||
# network={
|
||||
# ssid="YOUR_WIFI_SSID"
|
||||
# psk="YOUR_WIFI_PASSWORD"
|
||||
# proto=RSN
|
||||
# key_mgmt=WPA-PSK
|
||||
# pairwise=CCMP
|
||||
# auth_alg=OPEN
|
||||
# }
|
||||
# path: /etc/wpa_supplicant/wpa_supplicant.conf
|
||||
|
||||
# These commands will be ran once on first boot only
|
||||
runcmd:
|
||||
# Pickup the hostname changes
|
||||
#- 'systemctl restart avahi-daemon'
|
||||
|
||||
# # Activate WiFi interface
|
||||
# - 'ifup wlan0'
|
Loading…
Reference in New Issue
Block a user