ceph-opennebula-playbooks/general.sh

63 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# -e = stop on exception, -x = debug, -a = export all variables
set -e -x -a
# Include config
. ./load-config.sh
### Check host variables
if [ -z "$play_host" -o -z "$node_name" -o -z "$int_ip" ]; then
echo "play_host/node_name/int_ip not specified"
exit 1
fi
scp ./etc/apt/apt.conf root@$play_host:/etc/apt/apt.conf
scp ./etc/apt/preferences root@$play_host:/etc/apt/preferences
scp ./etc/apt/sources.list root@$play_host:/etc/apt/sources.list
scp ./etc/locale.gen root@$play_host:/etc/locale.gen
# Set time sync
envsubst < ./etc/systemd/timesyncd.conf.env | \
ssh root@$play_host 'cat > /etc/systemd/timesyncd.conf'
ssh root@$play_host <<EOF
set -e -x
echo $node_name > /etc/hostname
hostname \`cat /etc/hostname\`
systemctl enable systemd-timesyncd && systemctl restart systemd-timesyncd
systemctl mask emergency.service
systemctl mask emergency.target
apt-get update || true
# gpg and friends for apt-key to work correctly
DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confdef" \
-o Dpkg::Options::="--force-confold" install -y \
mc wget less locales telnet atop sysstat tmux \
gpg gpg-agent dirmngr apt-transport-https \
prometheus-node-exporter
grep -q -P '127.0.1.1\s+$node_name' /etc/hosts || (echo "127.0.1.1 $node_name" >> /etc/hosts)
wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
apt-get update || true
rm /etc/timezone
echo Europe/Moscow > /etc/timezone
ln -fs /usr/share/zoneinfo/Europe/Moscow /etc/localtime
if ! grep -q '^PermitRootLogin' /etc/ssh/sshd_config; then
echo PermitRootLogin without-password >> /etc/ssh/sshd_config
service ssh restart
elif ! grep -q '^PermitRootLogin without-password' /etc/ssh/sshd_config; then
perl -i -pe 's/^PermitRootLogin.*/PermitRootLogin without-password/' /etc/ssh/sshd_config
service ssh restart
fi
EOF