Add support for CentOS
This change aims to add the foundations for CentOS support on manila-image-elements. In this patch-set, the following has been modified - Added elements for manila-centos-minimal - Added elements for centos-nfs - Added elements for centos-cifs - Renamed all elements for the different protocols to distro-protocol to facilitate automation - Modified the main script to take the distro param Follow-up patches will add centos-based elements for all other protocols supported. Change-Id: Ie1469a8b3973b9a15c3fa27688df3b7e7e8da688 Partial-Bug: #1675538
This commit is contained in:
parent
264e7278e2
commit
375ddd1e9e
@ -25,6 +25,7 @@ MANILA_IMG_NAME=${MANILA_IMG_NAME:-"manila-service-image"}
|
|||||||
|
|
||||||
# Manila image creation default
|
# Manila image creation default
|
||||||
MANILA_SHARE_PROTO=${MANILA_SHARE_PROTO:-"default"}
|
MANILA_SHARE_PROTO=${MANILA_SHARE_PROTO:-"default"}
|
||||||
|
MANILA_DISTRO=${MANILA_DISTRO:-"ubuntu"}
|
||||||
|
|
||||||
# Path to elements
|
# Path to elements
|
||||||
SCRIPT_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
@ -54,10 +55,12 @@ err() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
print_usage() {
|
print_usage() {
|
||||||
echo "Usage: ${0##*/} [-s share-proto] [-h]"
|
echo "Usage: ${0##*/} [-s share-proto] [-d distro] [-h]"
|
||||||
echo "Options:"
|
echo "Options:"
|
||||||
echo " -s | --share-proto: name of the share protocol. \
|
echo " -s | --share-proto: name of the share protocol. \
|
||||||
Possible options are nfs, nfs-ganesha, cifs or zfs"
|
Possible options are nfs, nfs-ganesha, cifs or zfs"
|
||||||
|
echo " -d | --distro: name of the Linux distro. \
|
||||||
|
Possible options are ubuntu or centos"
|
||||||
echo " -h | --help: print this usage message and exit"
|
echo " -h | --help: print this usage message and exit"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Usage example: manila_image_elements -s nfs"
|
echo "Usage example: manila_image_elements -s nfs"
|
||||||
@ -71,6 +74,13 @@ valid_share_protocol(){
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
valid_distro() {
|
||||||
|
if ["${MANILA_DISTRO}" != "ubuntu" ] && [ "${MANILA_DISTRO}" != "centos" ]; then
|
||||||
|
err "Distro ${MANILA_DISTRO} not supported. Valid options are ubuntu or centos."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
parse_arguments() {
|
parse_arguments() {
|
||||||
while [[ $# > 0 ]]; do
|
while [[ $# > 0 ]]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@ -79,6 +89,12 @@ parse_arguments() {
|
|||||||
valid_share_protocol
|
valid_share_protocol
|
||||||
shift 2
|
shift 2
|
||||||
;;
|
;;
|
||||||
|
-d|--distro)
|
||||||
|
export MANILA_DISTRO=$2
|
||||||
|
export MANILA_IMG_OS=manila-$2-minimal
|
||||||
|
valid_distro
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
-h|--help)
|
-h|--help)
|
||||||
print_usage
|
print_usage
|
||||||
exit 0
|
exit 0
|
||||||
@ -93,27 +109,24 @@ parse_arguments() {
|
|||||||
|
|
||||||
# Verify configuration
|
# Verify configuration
|
||||||
# --------------------
|
# --------------------
|
||||||
|
configure() {
|
||||||
REQUIRED_ELEMENTS="manila-ssh vm $MANILA_IMG_OS dhcp-all-interfaces"
|
REQUIRED_ELEMENTS="manila-ssh vm $MANILA_IMG_OS dhcp-all-interfaces"
|
||||||
IMAGE_FORMAT="qcow2"
|
IMAGE_FORMAT="qcow2"
|
||||||
OPTIONAL_ELEMENTS=
|
OPTIONAL_ELEMENTS=
|
||||||
OPTIONAL_DIB_ARGS=
|
OPTIONAL_DIB_ARGS=
|
||||||
|
|
||||||
configure() {
|
|
||||||
OPTIONAL_ELEMENTS=
|
|
||||||
OPTIONAL_DIB_ARGS=
|
|
||||||
|
|
||||||
if [ "$MANILA_SHARE_PROTO" = "default" ]; then
|
if [ "$MANILA_SHARE_PROTO" = "default" ]; then
|
||||||
# NOTE(vkmc) Generic driver uses 2 protocols by default
|
# NOTE(vkmc) Generic driver uses 2 protocols by default
|
||||||
# NFS and CIFS. This is required by the gate.
|
# NFS and CIFS. This is required by the gate.
|
||||||
OPTIONAL_ELEMENTS="$OPTIONAL_ELEMENTS manila-nfs manila-cifs"
|
OPTIONAL_ELEMENTS="$OPTIONAL_ELEMENTS ${MANILA_DISTRO}-nfs ${MANILA_DISTRO}-cifs"
|
||||||
elif [ "$MANILA_SHARE_PROTO" = "nfs" ]; then
|
elif [ "$MANILA_SHARE_PROTO" = "nfs" ]; then
|
||||||
OPTIONAL_ELEMENTS="$OPTIONAL_ELEMENTS manila-nfs"
|
OPTIONAL_ELEMENTS="$OPTIONAL_ELEMENTS ${MANILA_DISTRO}-nfs"
|
||||||
elif [ "$MANILA_SHARE_PROTO" = "nfs-ganesha" ]; then
|
elif [ "$MANILA_SHARE_PROTO" = "nfs-ganesha" ]; then
|
||||||
OPTIONAL_ELEMENTS="$OPTIONAL_ELEMENTS manila-nfs-ganesha"
|
OPTIONAL_ELEMENTS="$OPTIONAL_ELEMENTS ${MANILA_DISTRO}-nfs-ganesha"
|
||||||
elif [ "$MANILA_SHARE_PROTO" = "cifs" ]; then
|
elif [ "$MANILA_SHARE_PROTO" = "cifs" ]; then
|
||||||
OPTIONAL_ELEMENTS="$OPTIONAL_ELEMENTS manila-cifs"
|
OPTIONAL_ELEMENTS="$OPTIONAL_ELEMENTS ${MANILA_DISTRO}-cifs"
|
||||||
elif [ "$MANILA_SHARE_PROTO" = "zfs" ]; then
|
elif [ "$MANILA_SHARE_PROTO" = "zfs" ]; then
|
||||||
OPTIONAL_ELEMENTS="$OPTIONAL_ELEMENTS manila-zfs"
|
OPTIONAL_ELEMENTS="$OPTIONAL_ELEMENTS ${MANILA_DISTRO}-zfs"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$USE_OFFLINE_MODE" = "yes" ]; then
|
if [ "$USE_OFFLINE_MODE" = "yes" ]; then
|
||||||
|
5
elements/centos-cifs/install.d/50-manila-cifs
Executable file
5
elements/centos-cifs/install.d/50-manila-cifs
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
yum -y samba cifs-utils
|
11
elements/centos-cifs/post-install.d/50-manila-smb-enable
Executable file
11
elements/centos-cifs/post-install.d/50-manila-smb-enable
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
# Enable and start Samba server
|
||||||
|
systemctl enable smb.service
|
||||||
|
systemctl start smb.service
|
10
elements/centos-nfs/install.d/50-manila-nfs
Executable file
10
elements/centos-nfs/install.d/50-manila-nfs
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
# Install required packages
|
||||||
|
yum -y install nfs-utils
|
11
elements/centos-nfs/post-install.d/50-manila-nfs-enable
Executable file
11
elements/centos-nfs/post-install.d/50-manila-nfs-enable
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
# Enable and start NFS server
|
||||||
|
systemctl enable nfs-server.service
|
||||||
|
systemctl start nfs-server.service
|
5
elements/manila-centos-minimal/README.rst
Executable file
5
elements/manila-centos-minimal/README.rst
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
=====================
|
||||||
|
manila-centos-minimal
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Create a minimal image based on CentOS.
|
1
elements/manila-centos-minimal/element-deps
Executable file
1
elements/manila-centos-minimal/element-deps
Executable file
@ -0,0 +1 @@
|
|||||||
|
centos-minimal
|
1
elements/manila-centos-minimal/element-provides
Executable file
1
elements/manila-centos-minimal/element-provides
Executable file
@ -0,0 +1 @@
|
|||||||
|
operating-system
|
8
elements/manila-centos-minimal/package-installs.yaml
Executable file
8
elements/manila-centos-minimal/package-installs.yaml
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
openssh-server:
|
||||||
|
sudo:
|
||||||
|
rpcbind:
|
||||||
|
vim:
|
||||||
|
iptables:
|
||||||
|
iputils:
|
||||||
|
net-tools:
|
||||||
|
python:
|
11
elements/manila-centos-minimal/post-install.d/50-manila-user
Executable file
11
elements/manila-centos-minimal/post-install.d/50-manila-user
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
# Set 'bash' as default shell for 'manila' user.
|
||||||
|
useradd -m manila -s /bin/bash
|
||||||
|
passwd manila
|
9
elements/manila-centos-minimal/pre-install.d/00-centos-yum-update
Executable file
9
elements/manila-centos-minimal/pre-install.d/00-centos-yum-update
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
yum -y update
|
15
elements/manila-centos-minimal/pre-install.d/01-set-centos-mirror
Executable file
15
elements/manila-centos-minimal/pre-install.d/01-set-centos-mirror
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
DIB_DISTRIBUTION_MIRROR=${DIB_DISTRIBUTION_MIRROR:-}
|
||||||
|
|
||||||
|
[ -n "$DIB_DISTRIBUTION_MIRROR" ] || exit 0
|
||||||
|
|
||||||
|
# Only set the mirror for the Base, Extras and Updates repositories
|
||||||
|
# The others arn't enabled and do not exist on all mirrors
|
||||||
|
sed -e "s|^#baseurl=http://mirror.centos.org/centos|baseurl=$DIB_DISTRIBUTION_MIRROR|;/^mirrorlist=/d" -i /etc/yum.repos.d/CentOS-Base.repo
|
10
elements/ubuntu-cifs/post-install.d/50-manila-samba-patch-config
Executable file
10
elements/ubuntu-cifs/post-install.d/50-manila-samba-patch-config
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
# Enable registry in samba config
|
||||||
|
sed -i "s/\[global\]/\[global\]\\n\\n include = registry\\n/g" /etc/samba/smb.conf
|
Loading…
x
Reference in New Issue
Block a user