Commit 7b6e9fe7 authored by Rafael Monnerat's avatar Rafael Monnerat

Reorganise a bit

parent 19036781
#!/bin/bash
wget --no-check-certificate https://lab.nexedi.cn/rafael/slapos.playbook/raw/master/install/function-common -O /tmp/function-common
source /tmp/function-common
# Determine what system we are running on. This provides ``os_VENDOR``,
# ``os_RELEASE``, ``os_UPDATE``, ``os_PACKAGE``, ``os_CODENAME``
# and ``DISTRO``
GetDistro
# Warn users who aren't on an explicitly supported distro, but allow them to
# override check and attempt installation with ``export FORCE=yes``
if [[ ! ${DISTRO} =~ (wheezy|trusty|rhel7) ]]; then
echo "WARNING: this script has not been tested on $DISTRO"
if [[ "$FORCE" != "yes" ]]; then
die $LINENO "If you wish to run this script anyway run with FORCE=yes"
fi
fi
if is_fedora && [[ $DISTRO == "rhel7" ]]; then
# RHEL requires EPEL for many Open Stack dependencies
# NOTE: We always remove and install latest -- some environments
# use snapshot images, and if EPEL version updates they break
# unless we update them to latest version.
if sudo yum repolist enabled epel | grep -q 'epel'; then
uninstall_package epel-release || true
fi
# This trick installs the latest epel-release from a bootstrap
# repo, then removes itself (as epel-release installed the
# "real" repo).
#
# You would think that rather than this, you could use
# $releasever directly in .repo file we create below. However
# RHEL gives a $releasever of "6Server" which breaks the path;
# see https://bugzilla.redhat.com/show_bug.cgi?id=1150759
cat <<EOF | sudo tee /etc/yum.repos.d/epel-bootstrap.repo
[epel-bootstrap]
name=Bootstrap EPEL
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-7&arch=\$basearch
failovermethod=priority
enabled=0
gpgcheck=0
EOF
# Enable a bootstrap repo. It is removed after finishing
# the epel-release installation.
yum-config-manager --enable epel-bootstrap
yum_install epel-release || \
die $LINENO "Error installing EPEL repo, cannot continue"
# EPEL rpm has installed it's version
rm -f /etc/yum.repos.d/epel-bootstrap.repo
# ... and also optional to be enabled
is_package_installed yum-utils || install_package yum-utils
yum-config-manager --enable rhel-7-server-optional-rpms
fi
is_package_installed ansible || install_package ansible
if is_ubuntu && [[ $DISTRO == "trusty" ]]; then
is_package_installed python-apt || install_package python-apt
is_package_installed python-pycurl || install_package python-pycurl
fi
......@@ -4,82 +4,24 @@
PLAYBOOK_REPOSITORY_URL=https://lab.nexedi.cn/rafael/slapos.playbook/repository/archive.tar.gz?ref=master
PLAYBOOK_BASE_FOLDER=slapos.playbook.git
PLAYBOOK_RELATIVE_URL=$PLAYBOOK_BASE_FOLDER/playbook/slapos
PLAYBOOK_FILENAME=slapos.playbook.git.master.tar.gz
wget --no-check-certificate https://lab.nexedi.cn/rafael/slapos.playbook/raw/master/install/function-common -O /tmp/function-common
wget --no-check-certificate https://lab.nexedi.cn/rafael/slapos.playbook/raw/master/install/base-setup -O /tmp/base-setup
source /tmp/function-common
source /tmp/base-setup
# Determine what system we are running on. This provides ``os_VENDOR``,
# ``os_RELEASE``, ``os_UPDATE``, ``os_PACKAGE``, ``os_CODENAME``
# and ``DISTRO``
GetDistro
function download_playbook {
DFILE="/tmp/tmp$(basename $0).$$/"
TFILE="archive.tar.gz"
cd $DFILE
wget $1 -O $TFILE
tar -xzvf $TFILE
rm $TFILE
cd */playbook
}
# Warn users who aren't on an explicitly supported distro, but allow them to
# override check and attempt installation with ``export FORCE=yes``
if [[ ! ${DISTRO} =~ (wheezy|trusty|rhel7) ]]; then
echo "WARNING: this script has not been tested on $DISTRO"
if [[ "$FORCE" != "yes" ]]; then
die $LINENO "If you wish to run this script anyway run with FORCE=yes"
fi
fi
if is_fedora && [[ $DISTRO == "rhel7" ]]; then
# RHEL requires EPEL for many Open Stack dependencies
# NOTE: We always remove and install latest -- some environments
# use snapshot images, and if EPEL version updates they break
# unless we update them to latest version.
if sudo yum repolist enabled epel | grep -q 'epel'; then
uninstall_package epel-release || true
fi
# This trick installs the latest epel-release from a bootstrap
# repo, then removes itself (as epel-release installed the
# "real" repo).
#
# You would think that rather than this, you could use
# $releasever directly in .repo file we create below. However
# RHEL gives a $releasever of "6Server" which breaks the path;
# see https://bugzilla.redhat.com/show_bug.cgi?id=1150759
cat <<EOF | sudo tee /etc/yum.repos.d/epel-bootstrap.repo
[epel-bootstrap]
name=Bootstrap EPEL
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-7&arch=\$basearch
failovermethod=priority
enabled=0
gpgcheck=0
EOF
# Enable a bootstrap repo. It is removed after finishing
# the epel-release installation.
yum-config-manager --enable epel-bootstrap
yum_install epel-release || \
die $LINENO "Error installing EPEL repo, cannot continue"
# EPEL rpm has installed it's version
rm -f /etc/yum.repos.d/epel-bootstrap.repo
# ... and also optional to be enabled
is_package_installed yum-utils || install_package yum-utils
yum-config-manager --enable rhel-7-server-optional-rpms
fi
is_package_installed ansible || install_package ansible
if is_ubuntu && [[ $DISTRO == "trusty" ]]; then
is_package_installed python-apt || install_package python-apt
is_package_installed python-pycurl || install_package python-pycurl
fi
exit
rm -rf /tmp/$PLAYBOOK_FILENAME /tmp/$PLAYBOOK_BASE_FOLDER
wget $PLAYBOOK_REPOSITORY_URL -O /tmp/$PLAYBOOK_FILENAME
cd /tmp && tar -xzvf $PLAYBOOK_FILENAME
cd /tmp/$PLAYBOOK_RELATIVE_URL
download_playbook $PLAYBOOK_REPOSITORY_URL
clear
echo "Staring ansible..."
ansible-playbook site.yml -i hosts --connection=local
ansible-playbook slapos.yml -i hosts --connection=local
- name: a play that runs entirely on the ansible host
hosts: 127.0.0.1
connection: local
roles:
- repository
- package
- re6stnet
- slapos
vars:
re6st_registry_url: http://re6stnet.imt.vifib.com/
......
- name: a play that runs entirely on the ansible host
hosts: 127.0.0.1
connection: local
roles:
- repository
- package
- re6stnet
vars:
re6st_registry_url: https://re6stnet.nexedi.com/
......@@ -13,6 +9,10 @@
- re6st-node
- slapos-node
slapos_master_url: https://slap.vifib.com/
slapos_web_master_url: https://slapos.vifib.com/
vars_prompt:
- name: "re6sttoken"
prompt: "If you have re6st token if you have (ignore if you already have a configured re6st):"
......@@ -23,3 +23,18 @@
prompt: "What is this computer name? (ignore if you already have a configured re6st and slapos):"
private: no
default: "noname"
- name: "slapostoken"
prompt: "If you have slapos token if you have (ignore if you already have a configured slapos):"
private: no
default: "notoken"
# tasks:
# - include: tasks/repository.yml
#
# - include: tasks/package.yml
#
# - include: tasks/re6stnet.yml
#
# - include: tasks/slapos.yml
#
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment