|
#!/bin/bash
|
|
|
|
|
|
|
|
echo "" > /etc/hostname
|
|
|
|
hostname
|
|
|
|
cat > /etc/hosts << EOF
|
|
127.0.0.1 snapshothost localhost localhost.localdomain
|
|
::1 ip6-localhost ip6-loopback
|
|
fe00::0 ip6-localnet
|
|
ff00::0 ip6-mcastprefix
|
|
ff02::1 ip6-allnodes
|
|
ff02::2 ip6-allrouters
|
|
EOF
|
|
|
|
|
|
|
|
|
|
# SSH keys setup snippet for Remote Execution plugin
|
|
#
|
|
# Parameters:
|
|
#
|
|
# remote_execution_ssh_keys: public keys to be put in ~/.ssh/authorized_keys
|
|
#
|
|
# remote_execution_ssh_user: user for which remote_execution_ssh_keys will be
|
|
# authorized
|
|
#
|
|
# remote_execution_create_user: create user if it not already existing
|
|
#
|
|
# remote_execution_effective_user_method: method to switch from ssh user to
|
|
# effective user
|
|
#
|
|
# This template sets up SSH keys in any host so that as long as your public
|
|
# SSH key is in remote_execution_ssh_keys, you can SSH into a host. This
|
|
# works in combination with Remote Execution plugin by querying smart proxies
|
|
# to build an array.
|
|
#
|
|
# To use this snippet without the plugin provide the SSH keys as host parameter
|
|
# remote_execution_ssh_keys. It expects the same format like the authorized_keys
|
|
# file.
|
|
|
|
|
|
|
|
|
|
echo "blacklist amodule" >> /etc/modprobe.d/blacklist.conf
|
|
|
|
|
|
|
|
|
|
cat > /etc/puppet/puppet.conf << EOF
|
|
[main]
|
|
vardir = /var/lib/puppet
|
|
logdir = /var/log/puppet
|
|
rundir = /var/run/puppet
|
|
ssldir = \$vardir/ssl
|
|
|
|
[agent]
|
|
pluginsync = true
|
|
report = true
|
|
certname = snapshothost
|
|
|
|
EOF
|
|
|
|
|
|
|
|
# export a custom fact called 'is_installer' to allow detection of the installer environment in Puppet modules
|
|
export FACTER_is_installer=true
|
|
# passing a non-existent tag like "no_such_tag" to the puppet agent only initializes the node
|
|
/usr/bin/puppet agent --config /etc/puppet/puppet.conf --onetime --tags no_such_tag --no-daemonize
|
|
|
|
|
|
|
|
# UserData still needs to mark the build as finished
|
|
if [ -x /usr/bin/curl ]; then
|
|
/usr/bin/curl -o /dev/null --noproxy \* -H 'Content-Type: text/plain' --silent 'http://foreman.some.host.fqdn/unattended/built'
|
|
elif [ -x /usr/bin/wget ]; then
|
|
/usr/bin/wget -q -O /dev/null --no-proxy --method POST --header 'Content-Type: text/plain' 'http://foreman.some.host.fqdn/unattended/built'
|
|
else
|
|
wget -q -O /dev/null --header 'Content-Type: text/plain' 'http://foreman.some.host.fqdn/unattended/built'
|
|
fi
|
|
|