Merge "Refactor run-playbooks"
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
other:
|
||||||
|
- The ``run-playbooks.sh`` script has been refactored to run all playbooks
|
||||||
|
using our core tool set and run order. The refactor work updates the old
|
||||||
|
special case script to a tool that simply runs the integrated playbooks
|
||||||
|
as they've been designed.
|
||||||
@@ -99,6 +99,7 @@ popd
|
|||||||
log_instance_info
|
log_instance_info
|
||||||
|
|
||||||
# Execute the Playbooks
|
# Execute the Playbooks
|
||||||
|
export DEPLOY_AIO=true
|
||||||
bash $(dirname ${0})/run-playbooks.sh
|
bash $(dirname ${0})/run-playbooks.sh
|
||||||
|
|
||||||
# Log some data about the instance and the rest of the system
|
# Log some data about the instance and the rest of the system
|
||||||
|
|||||||
@@ -14,136 +14,74 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
## Shell Opts ----------------------------------------------------------------
|
## Shell Opts ----------------------------------------------------------------
|
||||||
set -e -u -x
|
set -e -u
|
||||||
|
|
||||||
|
|
||||||
## Variables -----------------------------------------------------------------
|
## Variables -----------------------------------------------------------------
|
||||||
DEPLOY_HOST=${DEPLOY_HOST:-"yes"}
|
DEPLOY_AIO=${DEPLOY_AIO:-false}
|
||||||
DEPLOY_LB=${DEPLOY_LB:-"yes"}
|
|
||||||
DEPLOY_INFRASTRUCTURE=${DEPLOY_INFRASTRUCTURE:-"yes"}
|
|
||||||
DEPLOY_LOGGING=${DEPLOY_LOGGING:-"yes"}
|
|
||||||
DEPLOY_OPENSTACK=${DEPLOY_OPENSTACK:-"yes"}
|
|
||||||
DEPLOY_SWIFT=${DEPLOY_SWIFT:-"yes"}
|
|
||||||
DEPLOY_CEILOMETER=${DEPLOY_CEILOMETER:-"yes"}
|
|
||||||
DEPLOY_TEMPEST=${DEPLOY_TEMPEST:-"yes"}
|
|
||||||
DEPLOY_IRONIC=${DEPLOY_IRONIC:-"no"}
|
|
||||||
COMMAND_LOGS=${COMMAND_LOGS:-"/openstack/log/ansible_cmd_logs/"}
|
COMMAND_LOGS=${COMMAND_LOGS:-"/openstack/log/ansible_cmd_logs/"}
|
||||||
ADD_NEUTRON_AGENT_CHECKSUM_RULE=${ADD_NEUTRON_AGENT_CHECKSUM_RULE:-"yes"}
|
|
||||||
|
|
||||||
|
|
||||||
## Functions -----------------------------------------------------------------
|
|
||||||
info_block "Checking for required libraries." 2> /dev/null || source $(dirname ${0})/scripts-library.sh
|
|
||||||
|
|
||||||
|
|
||||||
## Main ----------------------------------------------------------------------
|
## Main ----------------------------------------------------------------------
|
||||||
|
function run_play_book_exit_message {
|
||||||
|
echo -e "\e[1;5;97m*** NOTICE ***\e[0m
|
||||||
|
|
||||||
|
The \"\e[1;31m${0}\e[0m\" script has exited. This script is no longer needed from now on.
|
||||||
|
If you need to re-run parts of the stack, adding new nodes to the environment,
|
||||||
|
or have encountered an error you will no longer need this application to
|
||||||
|
interact with the environment. All jobs should be executed out of the
|
||||||
|
\"\e[1;33m${PLAYBOOK_DIR}\e[0m\" directory using the \"\e[1;32mopenstack-ansible\e[0m\"
|
||||||
|
command line wrapper.
|
||||||
|
|
||||||
|
For more information about OpenStack-Ansible please review our documentation at:
|
||||||
|
\e[1;36mhttp://docs.openstack.org/developer/openstack-ansible\e[0m
|
||||||
|
|
||||||
|
Additionally if there's ever a need for information on common operational tasks please
|
||||||
|
see the following information:
|
||||||
|
\e[1;36mhttp://docs.openstack.org/developer/openstack-ansible/install-guide/index.html#operations\e[0m
|
||||||
|
|
||||||
|
|
||||||
|
If you ever have any questions please join the community conversation on IRC at
|
||||||
|
#openstack-ansible on freenode.
|
||||||
|
"
|
||||||
|
}
|
||||||
|
|
||||||
|
function playbook_run {
|
||||||
|
for root_include in $(awk -F'include:' '{print $2}' setup-everything.yml); do
|
||||||
|
for include in $(awk -F'include:' '{print $2}' "${root_include}"); do
|
||||||
|
echo "[Executing \"${include}\" playbook]"
|
||||||
|
if [[ "${DEPLOY_AIO}" = true ]] && [[ "${include}" == "security-hardening.yml" ]]; then
|
||||||
|
# NOTE(mattt): We have to skip V-38462 as openstack-infra are now building
|
||||||
|
# images with apt config Apt::Get::AllowUnauthenticated set
|
||||||
|
# to true.
|
||||||
|
install_bits "${include}" --skip-tag V-38462
|
||||||
|
else
|
||||||
|
install_bits "${include}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
trap run_play_book_exit_message EXIT
|
||||||
|
|
||||||
|
info_block "Checking for required libraries." 2> /dev/null || source $(dirname ${0})/scripts-library.sh
|
||||||
|
|
||||||
# Initiate the deployment
|
# Initiate the deployment
|
||||||
pushd "playbooks"
|
pushd "playbooks"
|
||||||
ansible localhost -m setup -a 'gather_subset=!facter,!ohai'
|
PLAYBOOK_DIR="$(pwd)"
|
||||||
|
|
||||||
if [ "${DEPLOY_HOST}" == "no" ]; then
|
# Execute setup everything
|
||||||
ansible all -m setup -a 'gather_subset=!facter,!ohai'
|
playbook_run
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${DEPLOY_HOST}" == "yes" ]; then
|
if [[ "${DEPLOY_AIO}" = true ]]; then
|
||||||
# Install all host bits
|
|
||||||
install_bits openstack-hosts-setup.yml
|
|
||||||
install_bits lxc-hosts-setup.yml
|
|
||||||
|
|
||||||
# Apply security hardening
|
|
||||||
# NOTE(mattt): We have to skip V-38462 as openstack-infra are now building
|
|
||||||
# images with apt config Apt::Get::AllowUnauthenticated set
|
|
||||||
# to true.
|
|
||||||
install_bits --skip-tag "V-38462" security-hardening.yml
|
|
||||||
|
|
||||||
# Bring the lxc bridge down and back up to ensures the iptables rules are in-place
|
|
||||||
# This also will ensure that the lxc dnsmasq rules are active.
|
|
||||||
mkdir -p "${COMMAND_LOGS}/host_net_bounce"
|
|
||||||
ansible hosts -m shell \
|
|
||||||
-a '(ifdown lxcbr0 || true); ifup lxcbr0' \
|
|
||||||
-t "${COMMAND_LOGS}/host_net_bounce" \
|
|
||||||
&> ${COMMAND_LOGS}/host_net_bounce.log
|
|
||||||
|
|
||||||
# If run-playbooks is executed more than once, the above lxcbr0 network
|
|
||||||
# restart will break any existing container networks. The lxc_host role
|
|
||||||
# places a convenience script on the host which fixes that, so let's use
|
|
||||||
# it to repair the container networks.
|
|
||||||
if [ -f /usr/local/bin/lxc-veth-check ]; then
|
|
||||||
/usr/local/bin/lxc-veth-check
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create the containers.
|
|
||||||
install_bits lxc-containers-create.yml
|
|
||||||
ansible all -m setup -a 'gather_subset=!facter,!ohai'
|
|
||||||
# Log some data about the instance and the rest of the system
|
# Log some data about the instance and the rest of the system
|
||||||
log_instance_info
|
log_instance_info
|
||||||
|
|
||||||
fi
|
# Log repo data
|
||||||
|
|
||||||
if [ "${DEPLOY_LB}" == "yes" ]; then
|
|
||||||
# Install haproxy for dev purposes only
|
|
||||||
install_bits haproxy-install.yml
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${DEPLOY_INFRASTRUCTURE}" == "yes" ]; then
|
|
||||||
# Install all of the infra bits
|
|
||||||
install_bits memcached-install.yml
|
|
||||||
install_bits repo-install.yml
|
|
||||||
|
|
||||||
mkdir -p "${COMMAND_LOGS}/repo_data"
|
mkdir -p "${COMMAND_LOGS}/repo_data"
|
||||||
ansible 'repo_all[0]' -m raw \
|
ansible 'repo_all[0]' -m raw \
|
||||||
-a 'find /var/www/repo/os-releases -type l' \
|
-a 'find /var/www/repo/os-releases -type l' \
|
||||||
-t "${COMMAND_LOGS}/repo_data"
|
-t "${COMMAND_LOGS}/repo_data"
|
||||||
|
|
||||||
install_bits galera-install.yml
|
openstack-ansible os-tempest-install.yml
|
||||||
install_bits rabbitmq-install.yml
|
print_report
|
||||||
install_bits utility-install.yml
|
|
||||||
|
|
||||||
if [ "${DEPLOY_LOGGING}" == "yes" ]; then
|
|
||||||
install_bits rsyslog-install.yml
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${DEPLOY_OPENSTACK}" == "yes" ]; then
|
|
||||||
# install all of the compute Bits
|
|
||||||
install_bits os-keystone-install.yml
|
|
||||||
install_bits os-glance-install.yml
|
|
||||||
install_bits os-cinder-install.yml
|
|
||||||
install_bits os-nova-install.yml
|
|
||||||
install_bits os-neutron-install.yml
|
|
||||||
install_bits os-heat-install.yml
|
|
||||||
install_bits os-horizon-install.yml
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If ceilometer is deployed, it must be run before
|
|
||||||
# swift, since the swift playbooks will make reference
|
|
||||||
# to the ceilometer user when applying the reselleradmin
|
|
||||||
# role
|
|
||||||
if [ "${DEPLOY_CEILOMETER}" == "yes" ]; then
|
|
||||||
install_bits os-ceilometer-install.yml
|
|
||||||
install_bits os-aodh-install.yml
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${DEPLOY_SWIFT}" == "yes" ]; then
|
|
||||||
if [ "${DEPLOY_OPENSTACK}" == "no" ]; then
|
|
||||||
# When os install is no, make sure we still have keystone for use in swift.
|
|
||||||
install_bits os-keystone-install.yml
|
|
||||||
fi
|
|
||||||
# install all of the swift Bits
|
|
||||||
install_bits os-swift-install.yml
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${DEPLOY_IRONIC}" == "yes" ]; then
|
|
||||||
# install all of the ironic Bits
|
|
||||||
install_bits os-ironic-install.yml
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${DEPLOY_TEMPEST}" == "yes" ]; then
|
|
||||||
# Deploy tempest
|
|
||||||
install_bits os-tempest-install.yml
|
|
||||||
fi
|
|
||||||
|
|
||||||
popd
|
popd
|
||||||
|
|
||||||
# print the report data
|
|
||||||
set +x && print_report
|
|
||||||
|
|||||||
Reference in New Issue
Block a user