mirror of
https://github.com/kelseyhightower/kubernetes-the-hard-way.git
synced 2025-12-15 17:28:58 +03:00
VTWO-14496: configure nodes with ansible instead of bash scripts
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
16
scripts/install_etcd
Executable 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
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
sudo apt-get update -y
|
||||
|
||||
sudo apt-get install -y jq
|
||||
25
scripts/install_kubernetes_master_components
Executable file
25
scripts/install_kubernetes_master_components
Executable 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
|
||||
|
||||
|
||||
18
scripts/install_kubernetes_worker_components
Executable file
18
scripts/install_kubernetes_worker_components
Executable 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
|
||||
@@ -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
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
vagrant status --machine-readable | grep ,state, | cut -d, -f2 | sort | uniq | grep "$1"
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user