From 453ea43d87c0cc9efe250a14c6e81143e5f2c978 Mon Sep 17 00:00:00 2001 From: Denis Lambolez Date: Mon, 11 Dec 2017 19:00:36 +0100 Subject: [PATCH] Bridged public network -> need Ubuntu 16.04 --- .ssh/ceph-admin-id_rsa | 50 +++++++++++++++++++------------------- .ssh/ceph-admin-id_rsa.pub | 2 +- Vagrantfile | 7 ++++++ scripts/ceph-install.sh | 27 +++++++++++++++----- scripts/ceph-preflight.sh | 21 ++++++++++++---- scripts/cephtest-utils.sh | 6 ++++- 6 files changed, 75 insertions(+), 38 deletions(-) diff --git a/.ssh/ceph-admin-id_rsa b/.ssh/ceph-admin-id_rsa index f501f2c..cd4862d 100644 --- a/.ssh/ceph-admin-id_rsa +++ b/.ssh/ceph-admin-id_rsa @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- diff --git a/.ssh/ceph-admin-id_rsa.pub b/.ssh/ceph-admin-id_rsa.pub index e56fe20..2cbc0b4 100644 --- a/.ssh/ceph-admin-id_rsa.pub +++ b/.ssh/ceph-admin-id_rsa.pub @@ -1 +1 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7l75uyj+4Zc6PDWUW240wfnkpgUhx+Dzyt9lZadZYr6yLk8fLECjrpUSR1Zx9OEUQSmt7fPr+g2DC9KGJbYOhE8HgTlWPOJNSBwDM8r3WbS9+ergz+G6nipJdmJlCdMNyAXSSa86XkU0t/WrucXBk7tC5EBR6Zzt7FJDZpnoDWlyYqkYB/c0frDheDBU1MyufgZDhfFF71u47/UCquFQvm+NrIl2QT1GBn5lM5Vzy5VLsZvOrR1oPo8UM13xJreCH5NcrgkpILc0xvaSD3fudwL5iJGWIjWJ0gr9qB7+KyrhfPwtd2oDH6JZGNmiYDF5KzVzwy8V6Y4mqQdf6yO49 matou@catsserver-3 +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5prsYpglvYbMJ2MM3Ny/J75JZZ/0+ENPucrIIM5EU7+lwhPqPridewdppMT34LCD87siXtBG9KCFrmBGUu1pufmOe6lO0RVPYDFitc1Uke+BLitj5OyiteCsvejHNG7mAqtWvg69Sr/Br5K6PW8uNU8H6nkNTYHg+xnMxp+6A4S280WUFw2AECcUhI8HdHtuSyvalpF83Uoy5YZk/9ojgLGX6nUirBL0m8XxWem4n6WL/f8twGy1TRUO8FtcIvMhggxTQnzzkbdjV6YSIoE57R/ijHALALUgtlikQGAF430ZZXKBqsG36E4619v5kNXPCPbXvQvglmBey6vDlH5tf matou@catsserver-3 diff --git a/Vagrantfile b/Vagrantfile index d1caf11..0368018 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -24,6 +24,13 @@ Vagrant.configure("2") do |config| libvirt.video_type = "qxl" end + # Define bridged public network + config.vm.network :public_network, + :dev => "eno1", + :mode => "bridge", + :type => "bridge", + :network_name => "public-net" + # admin VM config.vm.define "node-admin", primary: true do |admin| admin.vm.hostname = "node-admin" diff --git a/scripts/ceph-install.sh b/scripts/ceph-install.sh index 1ba7f9e..086f3ee 100755 --- a/scripts/ceph-install.sh +++ b/scripts/ceph-install.sh @@ -32,12 +32,27 @@ 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" +# Network (dynamically defined by Vagrant) +IP_ADDRESS=$(ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1) +PUBLIC_NETWORK=$(echo $IP_ADDRESS | awk -F '.' '{print $1"."$2"."$3".0"}') +# Make sure only CEPH_ADMIN_USER can run the script +if [[ $(whoami) != $CEPH_ADMIN_USER ]]; then + echo "This script must be run as $CEPH_ADMIN_USER" 1>&2 + exit 1 +fi + +# Cluster configuration directory 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 \ No newline at end of file + +# Initialize cluster configuration +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 + +# Install ceph on all nodes +ceph-deploy install --release luminous node-admin node-osd1 node-osd2 \ No newline at end of file diff --git a/scripts/ceph-preflight.sh b/scripts/ceph-preflight.sh index 56efb8f..9343c37 100755 --- a/scripts/ceph-preflight.sh +++ b/scripts/ceph-preflight.sh @@ -60,7 +60,7 @@ $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 +# Make debconf non interactive and set the right local export DEBIAN_FRONTEND=noninteractive # Install ceph repository @@ -68,14 +68,25 @@ 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 +# Install chrony for time synchronization, gdisk for GPT partitioning, +# vnstat for network stats, htop for system monitor and ceph-deploy +apt-get -y install chrony gdisk vnstat htop 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 +IP_ADDRESS=$(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/$IP_ADDRESS\t$GUEST_NAME\t$GUEST_NAME/g" /etc/hosts + +# Create partitions on journal disk for osd nodes only +for NODE in $OSD_NODES; do + if [[ NODE == $GUEST_NAME ]]; then + sgdisk --new=0:0:10G /dev/vda > /dev/null 2>&1 + sgdisk --new=0:0:20G /dev/vda > /dev/null 2>&1 + sgdisk --largest-new=0 /dev/vda > /dev/null 2>&1 + sgdisk --print /dev/vda + fi +done # Full update #apt-get -y dist-upgrade diff --git a/scripts/cephtest-utils.sh b/scripts/cephtest-utils.sh index 96edf43..944f17a 100755 --- a/scripts/cephtest-utils.sh +++ b/scripts/cephtest-utils.sh @@ -29,6 +29,10 @@ 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" +OSD_NODES="node-osd1 node-osd2" +NODES="$ADMIN_NODE $OSD_NODES" + +# Networks +CLUSTER_NETWORK="172.28.128.0"