VTWO-14496: configure nodes with ansible instead of bash scripts

This commit is contained in:
mbenabda
2019-06-27 18:53:09 +02:00
parent e505bac08a
commit de0fa7e688
26 changed files with 239 additions and 241 deletions

View File

@@ -1,17 +0,0 @@
#!/usr/bin/env bash
SCRIPTS_DIR=$(dirname $0)
FILE_TO_COPY=$(realpath "$1")
NODE_NAMES="$($SCRIPTS_DIR/node_names $2)"
echo "will copy $FILE_TO_COPY to nodes $(echo $NODE_NAMES | xargs)"
echo ""
echo ""
echo ""
echo ""
read -n 1 -s -r -p "Press any key to continue..."
echo ""
echo ""
parallel vagrant scp $FILE_TO_COPY {}:~/ ::: $NODE_NAMES

View File

@@ -1,18 +0,0 @@
#!/usr/bin/env bash
ETCD3_RELEASE_VERSION=$1
OUTPUT_DIR=$(realpath "$2")
tmp_dir=$(mktemp -d)
pushd "$tmp_dir" &> /dev/null
curl -sL "https://github.com/etcd-io/etcd/releases/download/$ETCD3_RELEASE_VERSION/etcd-$ETCD3_RELEASE_VERSION-linux-amd64.tar.gz" | tar -zxf -
mkdir -p $OUTPUT_DIR
mv etcd-$ETCD3_RELEASE_VERSION-linux-amd64/etcd $OUTPUT_DIR/
mv etcd-$ETCD3_RELEASE_VERSION-linux-amd64/etcdctl $OUTPUT_DIR/
popd &> /dev/null
rm -rf $tmp_dir

View File

@@ -1,30 +0,0 @@
#!/usr/bin/env bash
# v1.15.0
K8S_RELEASE_VERSION=$1
OUTPUT_DIR=$(realpath "$2")
tmp_dir=$(mktemp -d)
pushd "$tmp_dir" &> /dev/null
container_id=$(docker create gcr.io/google-containers/hyperkube:$K8S_RELEASE_VERSION)
docker cp $container_id:/hyperkube ./hyperkube
docker rm -f $container_id &> /dev/null
mkdir -p $OUTPUT_DIR/workers
cp hyperkube $OUTPUT_DIR/workers/kubelet
cp hyperkube $OUTPUT_DIR/workers/proxy
cp hyperkube $OUTPUT_DIR/workers/kubectl
mkdir -p $OUTPUT_DIR/masters
cp hyperkube $OUTPUT_DIR/masters/kubelet
cp hyperkube $OUTPUT_DIR/masters/proxy
cp hyperkube $OUTPUT_DIR/masters/kubectl
cp hyperkube $OUTPUT_DIR/masters/scheduler
cp hyperkube $OUTPUT_DIR/masters/controller-manager
cp hyperkube $OUTPUT_DIR/masters/cloud-controller-manager
cp hyperkube $OUTPUT_DIR/masters/apiserver
popd &> /dev/null
rm -rf $tmp_dir

View File

@@ -1,24 +0,0 @@
#!/usr/bin/env bash
sudo apt-get update -y
sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository -y "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
sudo apt-get install -y --allow-unauthenticated docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker
sudo systemctl start docker
sleep 5
sudo usermod -aG docker $USER

16
scripts/install_etcd Executable file
View File

@@ -0,0 +1,16 @@
#!/usr/bin/env bash
ETCD3_RELEASE_VERSION=$1
pushd /tmp &> /dev/null
curl -sL "https://github.com/etcd-io/etcd/releases/download/$ETCD3_RELEASE_VERSION/etcd-$ETCD3_RELEASE_VERSION-linux-amd64.tar.gz" | tar -zxf -
mv etcd-$ETCD3_RELEASE_VERSION-linux-amd64/etcd /usr/bin/
mv etcd-$ETCD3_RELEASE_VERSION-linux-amd64/etcdctl /usr/bin/
rm -rf etcd*
touch .install_etcd
popd &> /dev/null

View File

@@ -1,5 +0,0 @@
#!/usr/bin/env bash
sudo apt-get update -y
sudo apt-get install -y jq

View File

@@ -0,0 +1,25 @@
#!/usr/bin/env bash
K8S_RELEASE_VERSION=$1
pushd /tmp
container_id=$(docker create gcr.io/google-containers/hyperkube:$K8S_RELEASE_VERSION)
docker cp $container_id:/hyperkube
docker rm -f $container_id
chmod u+x hyperkube
cp hyperkube /usr/bin/kubelet
cp hyperkube /usr/bin/proxy
cp hyperkube /usr/bin/kubectl
cp hyperkube /usr/bin/scheduler
cp hyperkube /usr/bin/controller-manager
cp hyperkube /usr/bin/cloud-controller-manager
cp hyperkube /usr/bin/apiserver
rm hyperkube
touch .install_kubernetes_master_components
popd

View File

@@ -0,0 +1,18 @@
#!/usr/bin/env bash
K8S_RELEASE_VERSION=$1
pushd /tmp
container_id=$(docker create gcr.io/google-containers/hyperkube:$K8S_RELEASE_VERSION)
docker cp $container_id:/hyperkube
docker rm -f $container_id
chmod u+x hyperkube
cp hyperkube /usr/bin/kubelet
cp hyperkube /usr/bin/proxy
cp hyperkube /usr/bin/kubectl
rm hyperkube
touch .install_kubernetes_worker_components
popd

View File

@@ -1,9 +0,0 @@
#!/usr/bin/env bash
SCRIPTS_DIR=$(dirname $0)
for vagrant_box in $($SCRIPTS_DIR/node_names $1)
do
ip_address=$(vagrant ssh $vagrant_box -c "hostname -I | cut -d' ' -f2" 2>/dev/null)
echo "$vagrant_box $ip_address"
done

View File

@@ -1,3 +0,0 @@
#!/usr/bin/env bash
vagrant status --machine-readable | grep ,state, | cut -d, -f2 | sort | uniq | grep "$1"

View File

@@ -1,31 +0,0 @@
#!/usr/bin/env bash
SCRIPTS_DIR=$(dirname $0)
MY_COMMAND="$1"
NODE_NAMES_FILTER="$2"
NODE_NAMES="$($SCRIPTS_DIR/node_names $NODE_NAMES_FILTER)"
echo "Will run the following command on $(echo $NODE_NAMES | xargs):"
echo "$MY_COMMAND"
echo ""
echo ""
read -n 1 -s -r -p "Press any key to continue..."
echo ""
# remotely run the script
pushd $SCRIPTS_DIR &> /dev/null
tmp_file=$(mktemp)
cat << WRAPPER_EOF > $tmp_file
#!/usr/bin/env bash
$MY_COMMAND
WRAPPER_EOF
yes | ./run_script_on_nodes "$(basename $tmp_file)" "$NODE_NAMES_FILTER" &> /dev/null
rm -rf $tmp_file
popd &> /dev/null

View File

@@ -1,25 +0,0 @@
#!/usr/bin/env bash
SCRIPTS_DIR=$(dirname $0)
SCRIPT_NAME=$1
NODE_NAMES_FILTER=$2
NODE_NAMES="$($SCRIPTS_DIR/node_names $NODE_NAMES_FILTER)"
cat $SCRIPTS_DIR/$SCRIPT_NAME
echo ""
echo ""
echo ""
echo ""
read -n 1 -s -r -p "Press any key to continue..."
echo ""
echo ""
# copy script over
pushd $SCRIPTS_DIR &> /dev/null
chmod u+x "$SCRIPT_NAME"
yes | ./copy_file_to_nodes "$SCRIPT_NAME" "$NODE_NAMES_FILTER" &> /dev/null
popd &> /dev/null
# remotely run the script
parallel vagrant ssh {} -c "\~/$SCRIPT_NAME" ::: $NODE_NAMES

View File

@@ -1,17 +0,0 @@
#!/usr/bin/env bash
KTHW_KUBERNETES_VERSION=v1.15.0
KTHW_ETCD3_VERSION=v3.3.13
cat <<EOF
{
"kubernetes_version": "$KTHW_KUBERNETES_VERSION",
"etcd3_version": "$KTHW_ETCD3_VERSION",
"master": null,
"workers": [
]
}
EOF