248 lines
10 KiB
Bash
248 lines
10 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
echo "# Running [control-plane.k8s.lab.cudanet.org] host initial configuration"
|
|
|
|
|
|
exit_and_cancel_build() {
|
|
echo 'Host [control-plane.k8s.lab.cudanet.org] initial configuration failed'
|
|
|
|
SSL_CA_CERT=$(mktemp)
|
|
cat << EOF > $SSL_CA_CERT
|
|
-----BEGIN CERTIFICATE-----
|
|
MIIG6TCCBNGgAwIBAgIUIacbh/WYmORFpiddBg25g/W4jlQwDQYJKoZIhvcNAQEL
|
|
BQAwgYExCzAJBgNVBAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEQMA4G
|
|
A1UEBwwHUmFsZWlnaDEQMA4GA1UECgwHS2F0ZWxsbzEUMBIGA1UECwwLU29tZU9y
|
|
Z1VuaXQxHzAdBgNVBAMMFnNhdGwwMS5sYWIuY3VkYW5ldC5vcmcwHhcNMjYwOTEx
|
|
MTc1NTA1WhcNMzgwMTE3MTc1NTA1WjCBgTELMAkGA1UEBhMCVVMxFzAVBgNVBAgM
|
|
Dk5vcnRoIENhcm9saW5hMRAwDgYDVQQHDAdSYWxlaWdoMRAwDgYDVQQKDAdLYXRl
|
|
bGxvMRQwEgYDVQQLDAtTb21lT3JnVW5pdDEfMB0GA1UEAwwWc2F0bDAxLmxhYi5j
|
|
dWRhbmV0Lm9yZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAN6uVBDW
|
|
Qp941uKRabwV2vtuGftmply2vA4cFbw0k1vAosRPE130ULNkhm8wK7qwu+bqNKi6
|
|
2okdfIBAm+u7Tw0NYufcMDyEjngqMCG54w3OGbLW4ZQIefIliKw/kdUhxvKvzxNT
|
|
DP7kK+uwnunW6l79G8azAtDddhNa0wafkMHpQYeU/Y650oto+c3qjETTIC3M2QVr
|
|
N7D5niWAmrLvHyR/2S/W2Oa2929PmENMuBUsEgcoYthagDjse7G2hp8Gll4cCVh4
|
|
LysBzTUFUBC5NRx7eqf0iCycexXcAZunHQfNCwHJNXdUFc61pBeFmTtslxTMdNmV
|
|
FZ9SV5++ESHK75RYlhnfHGSiByUtstDXGT1vCUkipmzI4p3zVRPj5whlg0i15hdz
|
|
R58q9uftSYOwr5od3UIXJQM2fNlip7rIy85av2le3TkwmjObQqP7nNmacWarwQfs
|
|
dTVcslv+CI7vXtdWGqcRMo0db+QQN8tSGOfSTGDqt4lmwk7ESg48UocOAhoOEzIY
|
|
pEQnBLtSxEDBsFEu4vwNlq5DanSD3vuxwyDC6T8AdxTQvVclM+x+CsANaVzrLM6W
|
|
e7KJOYfe7J/dM28OWOTdLSSJ+L9gYxtdXme9uYLmQptce7KnuwoHozRY/aP0hFN/
|
|
2hMNEYlPFkUGvvb+hKzziagh+Rky9IP8/dWjAgMBAAGjggFVMIIBUTAMBgNVHRME
|
|
BTADAQH/MAsGA1UdDwQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUH
|
|
AwIwEQYJYIZIAYb4QgEBBAQDAgJEMDUGCWCGSAGG+EIBDQQoFiZLYXRlbGxvIFNT
|
|
TCBUb29sIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUepliLqnv9s1n
|
|
TKkZeHtZA8eNPdgwgasGA1UdIwSBozCBoKGBh6SBhDCBgTELMAkGA1UEBhMCVVMx
|
|
FzAVBgNVBAgMDk5vcnRoIENhcm9saW5hMRAwDgYDVQQHDAdSYWxlaWdoMRAwDgYD
|
|
VQQKDAdLYXRlbGxvMRQwEgYDVQQLDAtTb21lT3JnVW5pdDEfMB0GA1UEAwwWc2F0
|
|
bDAxLmxhYi5jdWRhbmV0Lm9yZ4IUIacbh/WYmORFpiddBg25g/W4jlQwDQYJKoZI
|
|
hvcNAQELBQADggIBAGeB30OcUUdVO5gTWnNorYHhkhxuWri1ThCQqzBlaUKFQ35I
|
|
120CcZ2rc22Q/kQqLHfB3bvGEe379Bw/6kRKOZVf7cd34yqqORSQxWqkPSQIjKfw
|
|
K5kXRn2aCQSh/Ohfoowz0ow5HngTzShiL+KlPuix6Zuz2R+1uZwpDZifUiUVydnx
|
|
Ru0XiZBFX+u4zUAPJHYC94t14Omvpo8J1qbfC9Wc9Anlx4I7PXqJ8rygSrxU8him
|
|
QhExutff7TC4yA2nPVLvGJV96eAl9nQdiux8EKhvJ4y66/e4IqFNVYtiyCpH2epv
|
|
rLRgWCmpBDONHL2LM82HJZXKtU8rwRUCsKnt2pjRR2BTEkCH5GNQasLI76TEorV3
|
|
Z+d8LWBHZgmsbR2BcCv7eSd29NAMoRalCx1emEJm/yizzXm3ADlH9PWR9bwuwMxx
|
|
IRcB1EsKXpWlzaJY3TfJ8p1cUqcx3Dm8majSb9nkTkbH5XuVf2hipz1URpYlcDjk
|
|
DUcFWbs+2BqLU9Gg4mZJMHc6XDsduv+sjaA5D8w5bYZfgqLA39/LPKPQCQ2vcYIm
|
|
CviivD2WpDXdkp2BFNV3lX/H6Vnlc2Mc6utUxMem2Ip7bBISIGayZKHyjOsAU+hh
|
|
T/giRQe8jtPFNh+pnEWBo83XMalqn0V5C7m/Jwb28bc7IPtPPlRcfYsnhY5y
|
|
-----END CERTIFICATE-----
|
|
|
|
EOF
|
|
if [ -x /usr/bin/curl ]; then
|
|
/usr/bin/curl -o /dev/null -H 'Content-Type: text/plain' --fail --data 'Host initial configuration failed, please see the registration log for more details.' --noproxy \* --cacert $SSL_CA_CERT --silent 'https://satl01.lab.cudanet.org/unattended/failed?token=10fd076d-92f5-4f80-83ad-3cb330ac4069'
|
|
elif [ -x /usr/bin/wget ]; then
|
|
/usr/bin/wget -q -O /dev/null --method POST --header 'Content-Type: text/plain' --body-data='Host initial configuration failed, please see the registration log for more details.' --no-proxy --ca-certificate $SSL_CA_CERT 'https://satl01.lab.cudanet.org/unattended/failed?token=10fd076d-92f5-4f80-83ad-3cb330ac4069'
|
|
else
|
|
wget -q -O /dev/null --header 'Content-Type: text/plain' 'https://satl01.lab.cudanet.org/unattended/failed?token=10fd076d-92f5-4f80-83ad-3cb330ac4069'
|
|
fi
|
|
FINAL_STATUS=$?
|
|
|
|
if [ -x "$(command -v subscription-manager)" ] ; then
|
|
subscription-manager facts --update
|
|
SUB_MAN_STATUS=$?
|
|
|
|
if [ $FINAL_STATUS -eq 0 ]; then
|
|
FINAL_STATUS=$SUB_MAN_STATUS
|
|
fi
|
|
fi
|
|
|
|
(exit $FINAL_STATUS);
|
|
exit 1
|
|
}
|
|
|
|
set +e
|
|
trap 'exit_and_cancel_build' ERR
|
|
|
|
|
|
|
|
|
|
# Select package manager for the OS (sets the $PKG_MANAGER* variables)
|
|
if [ -z "$PKG_MANAGER" ]; then
|
|
if [ -f /etc/os-release ] ; then
|
|
. /etc/os-release
|
|
fi
|
|
|
|
if [ "${NAME%.*}" = 'FreeBSD' ]; then
|
|
PKG_MANAGER='pkg'
|
|
PKG_MANAGER_INSTALL="${PKG_MANAGER} install -y"
|
|
PKG_MANAGER_REMOVE="${PKG_MANAGER} delete -y"
|
|
PKG_MANAGER_UPGRADE="${PKG_MANAGER} install -y"
|
|
elif [ -f /etc/fedora-release -o -f /etc/redhat-release -o -f /etc/amazon-linux-release -o -f /etc/system-release ]; then
|
|
PKG_MANAGER='dnf'
|
|
if [ -f /etc/redhat-release -a "${VERSION_ID%.*}" -le 7 ]; then
|
|
PKG_MANAGER='yum'
|
|
elif [ -f /etc/system-release ]; then
|
|
PKG_MANAGER='yum'
|
|
fi
|
|
PKG_MANAGER_INSTALL="${PKG_MANAGER} install -y"
|
|
PKG_MANAGER_REMOVE="${PKG_MANAGER} remove -y"
|
|
PKG_MANAGER_UPGRADE="${PKG_MANAGER} upgrade -y"
|
|
elif [ -f /etc/debian_version ]; then
|
|
PKG_MANAGER='apt-get'
|
|
PKG_MANAGER_INSTALL="${PKG_MANAGER} -o 'Dpkg::Options::=--force-confdef' -o 'Dpkg::Options::=--force-confold' install -y"
|
|
PKG_MANAGER_REMOVE="${PKG_MANAGER} -o 'Dpkg::Options::=--force-confdef' -o 'Dpkg::Options::=--force-confold' remove -y"
|
|
PKG_MANAGER_UPGRADE="${PKG_MANAGER} -o 'Dpkg::Options::=--force-confdef' -o 'Dpkg::Options::=--force-confold' -o APT::Get::Upgrade-Allow-New='true' upgrade -y"
|
|
elif [ -f /etc/arch-release ]; then
|
|
PKG_MANAGER='pacman'
|
|
PKG_MANAGER_INSTALL="${PKG_MANAGER} --noconfirm -S"
|
|
PKG_MANAGER_REMOVE="${PKG_MANAGER} --noconfirm -R"
|
|
PKG_MANAGER_UPGRADE="${PKG_MANAGER} --noconfirm -S"
|
|
elif [ x$ID = xopensuse-tumbleweed -o x$ID = xsles ]; then
|
|
PKG_MANAGER='zypper'
|
|
PKG_MANAGER_INSTALL="${PKG_MANAGER} --non-interactive install --auto-agree-with-licenses"
|
|
PKG_MANAGER_REMOVE="${PKG_MANAGER} --non-interactive remove"
|
|
PKG_MANAGER_UPGRADE="${PKG_MANAGER} --non-interactive update"
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
|
|
user_exists=false
|
|
getent passwd root >/dev/null 2>&1 && user_exists=true
|
|
|
|
|
|
if $user_exists; then
|
|
|
|
|
|
mkdir -p ~root/.ssh
|
|
|
|
cat << EOF >> ~root/.ssh/authorized_keys
|
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHN+jdbQeYICJHV6iVLv/dj+oqeAapadgAUM8y7ZRRvS foreman-proxy@satl01.lab.cudanet.org
|
|
EOF
|
|
|
|
chmod 0700 ~root/.ssh
|
|
chmod 0600 ~root/.ssh/authorized_keys
|
|
chown -R root: ~root/.ssh
|
|
|
|
# Restore SELinux context with restorecon, if it's available:
|
|
command -v restorecon && restorecon -RvF ~root/.ssh || true
|
|
|
|
|
|
|
|
else
|
|
echo 'The remote_execution_ssh_user does not exist and remote_execution_create_user is not set to true. remote_execution_ssh_keys snippet will not install keys'
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo '#'
|
|
echo '# Installing Insights client'
|
|
echo '#'
|
|
|
|
yum install -y insights-client
|
|
insights-client --register < /dev/null
|
|
|
|
|
|
|
|
|
|
if command -v subscription-manager &>/dev/null; then
|
|
echo "Refreshing subscription data"
|
|
subscription-manager refresh
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# Call home to exit build mode
|
|
|
|
trap - ERR
|
|
SSL_CA_CERT=$(mktemp)
|
|
cat << EOF > $SSL_CA_CERT
|
|
-----BEGIN CERTIFICATE-----
|
|
MIIG6TCCBNGgAwIBAgIUIacbh/WYmORFpiddBg25g/W4jlQwDQYJKoZIhvcNAQEL
|
|
BQAwgYExCzAJBgNVBAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEQMA4G
|
|
A1UEBwwHUmFsZWlnaDEQMA4GA1UECgwHS2F0ZWxsbzEUMBIGA1UECwwLU29tZU9y
|
|
Z1VuaXQxHzAdBgNVBAMMFnNhdGwwMS5sYWIuY3VkYW5ldC5vcmcwHhcNMjYwOTEx
|
|
MTc1NTA1WhcNMzgwMTE3MTc1NTA1WjCBgTELMAkGA1UEBhMCVVMxFzAVBgNVBAgM
|
|
Dk5vcnRoIENhcm9saW5hMRAwDgYDVQQHDAdSYWxlaWdoMRAwDgYDVQQKDAdLYXRl
|
|
bGxvMRQwEgYDVQQLDAtTb21lT3JnVW5pdDEfMB0GA1UEAwwWc2F0bDAxLmxhYi5j
|
|
dWRhbmV0Lm9yZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAN6uVBDW
|
|
Qp941uKRabwV2vtuGftmply2vA4cFbw0k1vAosRPE130ULNkhm8wK7qwu+bqNKi6
|
|
2okdfIBAm+u7Tw0NYufcMDyEjngqMCG54w3OGbLW4ZQIefIliKw/kdUhxvKvzxNT
|
|
DP7kK+uwnunW6l79G8azAtDddhNa0wafkMHpQYeU/Y650oto+c3qjETTIC3M2QVr
|
|
N7D5niWAmrLvHyR/2S/W2Oa2929PmENMuBUsEgcoYthagDjse7G2hp8Gll4cCVh4
|
|
LysBzTUFUBC5NRx7eqf0iCycexXcAZunHQfNCwHJNXdUFc61pBeFmTtslxTMdNmV
|
|
FZ9SV5++ESHK75RYlhnfHGSiByUtstDXGT1vCUkipmzI4p3zVRPj5whlg0i15hdz
|
|
R58q9uftSYOwr5od3UIXJQM2fNlip7rIy85av2le3TkwmjObQqP7nNmacWarwQfs
|
|
dTVcslv+CI7vXtdWGqcRMo0db+QQN8tSGOfSTGDqt4lmwk7ESg48UocOAhoOEzIY
|
|
pEQnBLtSxEDBsFEu4vwNlq5DanSD3vuxwyDC6T8AdxTQvVclM+x+CsANaVzrLM6W
|
|
e7KJOYfe7J/dM28OWOTdLSSJ+L9gYxtdXme9uYLmQptce7KnuwoHozRY/aP0hFN/
|
|
2hMNEYlPFkUGvvb+hKzziagh+Rky9IP8/dWjAgMBAAGjggFVMIIBUTAMBgNVHRME
|
|
BTADAQH/MAsGA1UdDwQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUH
|
|
AwIwEQYJYIZIAYb4QgEBBAQDAgJEMDUGCWCGSAGG+EIBDQQoFiZLYXRlbGxvIFNT
|
|
TCBUb29sIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUepliLqnv9s1n
|
|
TKkZeHtZA8eNPdgwgasGA1UdIwSBozCBoKGBh6SBhDCBgTELMAkGA1UEBhMCVVMx
|
|
FzAVBgNVBAgMDk5vcnRoIENhcm9saW5hMRAwDgYDVQQHDAdSYWxlaWdoMRAwDgYD
|
|
VQQKDAdLYXRlbGxvMRQwEgYDVQQLDAtTb21lT3JnVW5pdDEfMB0GA1UEAwwWc2F0
|
|
bDAxLmxhYi5jdWRhbmV0Lm9yZ4IUIacbh/WYmORFpiddBg25g/W4jlQwDQYJKoZI
|
|
hvcNAQELBQADggIBAGeB30OcUUdVO5gTWnNorYHhkhxuWri1ThCQqzBlaUKFQ35I
|
|
120CcZ2rc22Q/kQqLHfB3bvGEe379Bw/6kRKOZVf7cd34yqqORSQxWqkPSQIjKfw
|
|
K5kXRn2aCQSh/Ohfoowz0ow5HngTzShiL+KlPuix6Zuz2R+1uZwpDZifUiUVydnx
|
|
Ru0XiZBFX+u4zUAPJHYC94t14Omvpo8J1qbfC9Wc9Anlx4I7PXqJ8rygSrxU8him
|
|
QhExutff7TC4yA2nPVLvGJV96eAl9nQdiux8EKhvJ4y66/e4IqFNVYtiyCpH2epv
|
|
rLRgWCmpBDONHL2LM82HJZXKtU8rwRUCsKnt2pjRR2BTEkCH5GNQasLI76TEorV3
|
|
Z+d8LWBHZgmsbR2BcCv7eSd29NAMoRalCx1emEJm/yizzXm3ADlH9PWR9bwuwMxx
|
|
IRcB1EsKXpWlzaJY3TfJ8p1cUqcx3Dm8majSb9nkTkbH5XuVf2hipz1URpYlcDjk
|
|
DUcFWbs+2BqLU9Gg4mZJMHc6XDsduv+sjaA5D8w5bYZfgqLA39/LPKPQCQ2vcYIm
|
|
CviivD2WpDXdkp2BFNV3lX/H6Vnlc2Mc6utUxMem2Ip7bBISIGayZKHyjOsAU+hh
|
|
T/giRQe8jtPFNh+pnEWBo83XMalqn0V5C7m/Jwb28bc7IPtPPlRcfYsnhY5y
|
|
-----END CERTIFICATE-----
|
|
|
|
EOF
|
|
if [ -x /usr/bin/curl ]; then
|
|
/usr/bin/curl -o /dev/null -H 'Content-Type: text/plain' --fail --noproxy \* --cacert $SSL_CA_CERT --silent 'https://satl01.lab.cudanet.org/unattended/built?token=10fd076d-92f5-4f80-83ad-3cb330ac4069'
|
|
elif [ -x /usr/bin/wget ]; then
|
|
/usr/bin/wget -q -O /dev/null --method POST --header 'Content-Type: text/plain' --no-proxy --ca-certificate $SSL_CA_CERT 'https://satl01.lab.cudanet.org/unattended/built?token=10fd076d-92f5-4f80-83ad-3cb330ac4069'
|
|
else
|
|
wget -q -O /dev/null --header 'Content-Type: text/plain' 'https://satl01.lab.cudanet.org/unattended/built?token=10fd076d-92f5-4f80-83ad-3cb330ac4069'
|
|
fi
|
|
FINAL_STATUS=$?
|
|
|
|
if [ -x "$(command -v subscription-manager)" ] ; then
|
|
subscription-manager facts --update
|
|
SUB_MAN_STATUS=$?
|
|
|
|
if [ $FINAL_STATUS -eq 0 ]; then
|
|
FINAL_STATUS=$SUB_MAN_STATUS
|
|
fi
|
|
fi
|
|
|
|
(exit $FINAL_STATUS);
|
|
|
|
|
|
if [[ $? == 0 ]] ; then
|
|
echo "Host [control-plane.k8s.lab.cudanet.org] successfully configured."
|
|
else
|
|
echo "ERROR: Host [control-plane.k8s.lab.cudanet.org] configured, but failed to report status to Foreman." >&2
|
|
exit 1
|
|
fi
|
|
|
|
subscription-manager repos
|
|
|
|
exit 0
|