diff --git a/.travis.yml b/.travis.yml index 08c19ead..4011ec98 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,10 +32,10 @@ matrix: dist: trusty before_install: - - .travis/install_salt "${TRAVIS_OS_NAME}" + - .travis/install_salt -F -c .travis -- "${TRAVIS_OS_NAME}" install: - - .travis/configure_salt + - .travis/setup_salt_roots # For debugging, check the grains reported by the Travis builder - sudo salt-call --id="${SALT_NODE_ID}" grains.items diff --git a/.travis/configure_salt b/.travis/configure_salt deleted file mode 100755 index 85dadcb4..00000000 --- a/.travis/configure_salt +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env sh - -configure_salt () { - set -o errexit - set -o nounset - - sudo mkdir -p /etc/salt - sudo cp .travis/minion /etc/salt/minion - - sudo mkdir -p /srv/salt - sudo cp -r . /srv/salt/states - sudo cp -r .travis/test_pillars /srv/salt/pillars -} - -configure_salt "$@" diff --git a/.travis/install_salt b/.travis/install_salt index 49d4d604..8d59a8d0 100755 --- a/.travis/install_salt +++ b/.travis/install_salt @@ -1,15 +1,9 @@ #!/usr/bin/env sh -install_salt () { - set -o errexit - set -o nounset - - if [ "$#" -lt 1 ]; then - printf >&2 "usage: $0 os_name\n" - exit 1 - fi - OS_NAME="$1" +set -o errexit +set -o nounset +install_salt () { # Ensure that pinned versions match as closely as possible if [ "${OS_NAME}" = "linux" ]; then printf "$0: installing salt for Linux\n" @@ -28,4 +22,46 @@ install_salt () { fi } -install_salt "$@" +configure_salt () { + printf "$0: copying Salt minion configuration from ${TEMPORARY_CONFIG_DIR}\n" + sudo mkdir -p /etc/salt + sudo cp "${FORCE_FLAG}" -- "${TEMPORARY_CONFIG_DIR}/minion" /etc/salt/minion +} + +OPTIONS=$(getopt 'c:F' "$@") + +eval set -- "${OPTIONS}" + +TEMPORARY_CONFIG_DIR="" +FORCE_FLAG="" +OS_NAME="" + +while true; do + case "$1" in + -c) + shift + TEMPORARY_CONFIG_DIR="$1" + shift + ;; + -F) + FORCE_FLAG="-f" + shift + ;; + --) + shift + break + ;; + esac +done + +if [ "$#" -lt 1 ]; then + printf >&2 "usage: $0 [-c [-F]] [--] os_name\n" + exit 1 +fi + +OS_NAME="$1" +install_salt + +if [ -n "${TEMPORARY_CONFIG_DIR}" ]; then + configure_salt +fi diff --git a/.travis/setup_salt_roots b/.travis/setup_salt_roots new file mode 100755 index 00000000..b7f24dc0 --- /dev/null +++ b/.travis/setup_salt_roots @@ -0,0 +1,12 @@ +#!/usr/bin/env sh + +set -o errexit +set -o nounset + +setup_salt_roots () { + sudo mkdir -p /srv/salt + sudo cp -r . /srv/salt/states + sudo cp -r .travis/test_pillars /srv/salt/pillars +} + +setup_salt_roots "$@" diff --git a/Vagrantfile b/Vagrantfile index dbfc7604..01f2f922 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -44,7 +44,7 @@ Vagrant.configure(2) do |config| machine.vm.synced_folder File.join(dir, ".travis/test_pillars"), pillar_root machine.vm.provision :salt do |salt| salt.bootstrap_script = '.travis/install_salt' - salt.install_command = node[:os] # Pass OS type to install_salt script + salt.install_args = node[:os] # Pass OS type to install_salt script salt.masterless = true salt.minion_config = '.travis/minion' # hack to provide additional options to salt-call