Provisioning OK - Start install
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
# ========================================================================================
|
||||
# Execute ceph distributed storage installation steps from the admin node via ceph-deploy
|
||||
#
|
||||
# Written by : Denis Lambolez
|
||||
# Release : 1.0
|
||||
# Creation date : 04 December 2017
|
||||
# Description : Bash script
|
||||
# This script has been designed and written on Ubuntu 16.04 plateform.
|
||||
# It must be executed in ceph-admin context, on admin node
|
||||
# Usage : ./ceph-install.sh
|
||||
# ----------------------------------------------------------------------------------------
|
||||
# ========================================================================================
|
||||
#
|
||||
# HISTORY :
|
||||
# Release | Date | Authors | Description
|
||||
# --------------+---------------+--------------- +------------------------------------------
|
||||
# 1.0 | 12.04.17 | Denis Lambolez | Creation
|
||||
# | | |
|
||||
# | | |
|
||||
# | | |
|
||||
# =========================================================================================
|
||||
set -xv
|
||||
|
||||
# Version
|
||||
VERSION=ceph-install-1.0-120417
|
||||
|
||||
# This script is executed in guest context
|
||||
source "/vagrant/scripts/cephtest-utils.sh"
|
||||
# Directories (depending of the context)
|
||||
GUEST_USER_DIR="/home/$CEPH_ADMIN_USER"
|
||||
GUEST_USER_SSH_DIR="$GUEST_USER_DIR/.ssh"
|
||||
GUEST_VAGRANT_SCRIPT_DIR="/vagrant/scripts"
|
||||
GUEST_VAGRANT_SSH_DIR="/vagrant/.ssh"
|
||||
|
||||
GUEST_IP=$(ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)
|
||||
PUBLIC_NETWORK=$(echo $GUEST_IP | awk -F '.' '{print $1"."$2"."$3".0/24"}')
|
||||
|
||||
mkdir -p "$GUEST_USER_DIR/ceph-cluster"
|
||||
cd "$GUEST_USER_DIR/ceph-cluster"
|
||||
#ceph-deploy new node-admin
|
||||
#echo "public network = $PUBLIC_NETWORK" >> ceph.conf
|
||||
#echo "cluster network = $CLUSTER_NETWORK" >> ceph.conf
|
||||
#echo "" >> ceph.conf
|
||||
#echo "osd pool default size = 2" >> ceph.conf
|
||||
#echo "osd pool default min size = 1" >> ceph.conf
|
||||
@@ -1,2 +1,85 @@
|
||||
#!/bin/bash
|
||||
|
||||
#!/bin/bash
|
||||
# ========================================================================================
|
||||
# Execute preflight configuration needed to deploy ceph distributed storage
|
||||
#
|
||||
# Written by : Denis Lambolez
|
||||
# Release : 1.1
|
||||
# Creation date : 04 December 2017
|
||||
# Description : Bash script
|
||||
# This script has been designed and written on Ubuntu 16.04 plateform.
|
||||
# It must be executed in privileged mode
|
||||
# Usage : ./ceph-preflight.sh
|
||||
# ----------------------------------------------------------------------------------------
|
||||
# ========================================================================================
|
||||
#
|
||||
# HISTORY :
|
||||
# Release | Date | Authors | Description
|
||||
# --------------+---------------+--------------- +------------------------------------------
|
||||
# 1.1 | 12.04.17 | Denis Lambolez | Sourcing parameters from cephtest-utils
|
||||
# 1.0 | 12.02.17 | Denis Lambolez | Creation
|
||||
# | | |
|
||||
# | | |
|
||||
# =========================================================================================
|
||||
#set -xev
|
||||
|
||||
# Version
|
||||
VERSION=ceph-preflight-1.0-120217
|
||||
|
||||
# This script is executed in guest context
|
||||
source "/vagrant/scripts/cephtest-utils.sh"
|
||||
# Directories (depending of the context)
|
||||
GUEST_USER_DIR="/home/$CEPH_ADMIN_USER"
|
||||
GUEST_USER_SSH_DIR="$GUEST_USER_DIR/.ssh"
|
||||
GUEST_VAGRANT_SCRIPT_DIR="/vagrant/scripts"
|
||||
GUEST_VAGRANT_SSH_DIR="/vagrant/.ssh"
|
||||
|
||||
# Make sure only root can run the script
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "This script must be run as root" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create user ceph-admin
|
||||
useradd -m -s /bin/bash $CEPH_ADMIN_USER
|
||||
|
||||
# Clean-up previous provisioning
|
||||
$CEPH_ADMIN_EXEC rm -f "$GUEST_USER_DIR/provision-ok"
|
||||
|
||||
# Make ceph-admin passwordless sudoer
|
||||
echo "$CEPH_ADMIN_USER ALL = (root) NOPASSWD:ALL" | tee "/etc/sudoers.d/$CEPH_ADMIN_USER"
|
||||
chmod 0440 "/etc/sudoers.d/$CEPH_ADMIN_USER"
|
||||
|
||||
# Copy ceph-admin ssh keys and ssh config from Vagrant synced folder (muste be created by vagrant-preflight script)
|
||||
$CEPH_ADMIN_EXEC mkdir -p "$GUEST_USER_SSH_DIR"
|
||||
$CEPH_ADMIN_EXEC chmod 700 "$GUEST_USER_SSH_DIR"
|
||||
for FILE in id_rsa id_rsa.pub config; do
|
||||
$CEPH_ADMIN_EXEC rm -f "$GUEST_USER_SSH_DIR/$FILE"
|
||||
$CEPH_ADMIN_EXEC cp "$GUEST_VAGRANT_SSH_DIR/$CEPH_ADMIN_USER-$FILE" "$GUEST_USER_SSH_DIR/$FILE"
|
||||
$CEPH_ADMIN_EXEC chmod 644 "$GUEST_USER_SSH_DIR/$FILE"
|
||||
done
|
||||
$CEPH_ADMIN_EXEC chmod 600 "$GUEST_USER_SSH_DIR/id_rsa"
|
||||
# Copy ceph-admin public key in authorized_keys
|
||||
$CEPH_ADMIN_EXEC rm -f "$GUEST_USER_SSH_DIR/authorized_keys"
|
||||
$CEPH_ADMIN_EXEC cp "$GUEST_VAGRANT_SSH_DIR/$CEPH_ADMIN_USER-id_rsa.pub" "$GUEST_USER_SSH_DIR/authorized_keys"
|
||||
$CEPH_ADMIN_EXEC chmod 644 "$GUEST_USER_SSH_DIR/authorized_keys"
|
||||
|
||||
# Make debconf non interactive
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Install ceph repository
|
||||
wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add -
|
||||
echo deb https://download.ceph.com/debian/ $(lsb_release -sc) main | tee /etc/apt/sources.list.d/ceph.list
|
||||
apt-get update
|
||||
|
||||
# Install chrony (time synchronization) and ceph-deploy
|
||||
apt-get -y install chrony ceph-deploy
|
||||
|
||||
# Modify /etc/hosts to allow ceph-deploy to resolve the guest
|
||||
# Need to replace the loopback address by the real address
|
||||
GUEST_NAME=$(hostname -s)
|
||||
GUEST_IP=$(ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)
|
||||
sed -i "s/127.0.0.1\t$GUEST_NAME\t$GUEST_NAME/$GUEST_IP\t$GUEST_NAME\t$GUEST_NAME/g" /etc/hosts
|
||||
|
||||
# Full update
|
||||
#apt-get -y dist-upgrade
|
||||
#apt-get -y autoremove
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
# ========================================================================================
|
||||
# Define parameters for creation of the cephtest vagrant cluster
|
||||
#
|
||||
# Written by : Denis Lambolez
|
||||
# Release : 1.0
|
||||
# Creation date : 04 December 2017
|
||||
# Description : Bash script
|
||||
# This script has been designed and written on Ubuntu 16.04 plateform.
|
||||
# It's expected to be sourced by other scripts
|
||||
# Usage : ./ceph-install.sh
|
||||
# ----------------------------------------------------------------------------------------
|
||||
# ========================================================================================
|
||||
#
|
||||
# HISTORY :
|
||||
# Release | Date | Authors | Description
|
||||
# --------------+---------------+--------------- +------------------------------------------
|
||||
# 1.0 | 12.04.17 | Denis Lambolez | Creation
|
||||
# | | |
|
||||
# | | |
|
||||
# | | |
|
||||
# =========================================================================================
|
||||
|
||||
# Version
|
||||
VERSION=cephtest-utils-1.0-120417
|
||||
|
||||
# Ceph user
|
||||
CEPH_ADMIN_USER="ceph-admin"
|
||||
CEPH_ADMIN_EXEC="sudo -i -u $CEPH_ADMIN_USER"
|
||||
|
||||
# Machines
|
||||
NODES="node-admin node-osd1 node-osd2"
|
||||
ADMIN_NODE="node-admin"
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
# ========================================================================================
|
||||
# Execute preflight configuration needed to deploy vagrant cluster
|
||||
#
|
||||
# Written by : Denis Lambolez
|
||||
# Release : 1.1
|
||||
# Creation date : 04 December 2017
|
||||
# Description : Bash script
|
||||
# This script has been designed and written on Ubuntu 16.04 plateform.
|
||||
# It must be executed in vagrant context
|
||||
# Usage : ./vagrant-preflight.sh
|
||||
# ----------------------------------------------------------------------------------------
|
||||
# ========================================================================================
|
||||
#
|
||||
# HISTORY :
|
||||
# Release | Date | Authors | Description
|
||||
# --------------+---------------+--------------- +------------------------------------------
|
||||
# 1.1 | 12.04.17 | Denis Lambolez | Sourcing parameters from cephtest-utils
|
||||
# 1.0 | 12.02.17 | Denis Lambolez | Creation
|
||||
# | | |
|
||||
# | | |
|
||||
# =========================================================================================
|
||||
#set -xev
|
||||
|
||||
# Version
|
||||
VERSION=vagrant-preflight-1.0-120217
|
||||
|
||||
# This script is executed in host context
|
||||
source "$(dirname "$(readlink -f "$0")")/cephtest-utils.sh"
|
||||
# Directories (depending of the context)
|
||||
HOST_SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
|
||||
HOST_SSH_DIR="$(readlink -f "$HOST_SCRIPT_DIR/../.ssh")"
|
||||
|
||||
# (re)Create ssh keys
|
||||
rm -f "$HOST_SSH_DIR/$CEPH_ADMIN_USER"-id_rsa*
|
||||
ssh-keygen -q -N "" -f "$HOST_SSH_DIR/$CEPH_ADMIN_USER-id_rsa"
|
||||
chmod 644 "$HOST_SSH_DIR/$CEPH_ADMIN_USER-id_rsa"
|
||||
chmod 644 "$HOST_SSH_DIR/$CEPH_ADMIN_USER-id_rsa.pub"
|
||||
|
||||
# (re)Create ssh config file
|
||||
rm -f "$HOST_SSH_DIR/$CEPH_ADMIN_USER-config"
|
||||
for NODE in $NODES; do
|
||||
echo -e "Host $NODE\n\tHostname $NODE\n\tUser $CEPH_ADMIN_USER\n\tStrictHostKeyChecking no\n" >> "$HOST_SSH_DIR/$CEPH_ADMIN_USER-config"
|
||||
done
|
||||
chmod 644 "$HOST_SSH_DIR/$CEPH_ADMIN_USER-config"
|
||||
Reference in New Issue
Block a user