Add cleanup process when using embedded ansible

When using the embedded ansible the deactivation process will now
cleanup after itself.

Change-Id: I5cf54d746e370c2886c49e0660f4e7b08ce05282
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
This commit is contained in:
Kevin Carter 2018-05-14 13:03:09 -05:00
parent fe67fcec85
commit fa0f0090b6
No known key found for this signature in database
GPG Key ID: 9443251A787B9FB3
2 changed files with 35 additions and 7 deletions

View File

@ -13,7 +13,9 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
export OPTS=()
export ANSIBLE_EMBED_HOME="${HOME}/ansible25" export ANSIBLE_EMBED_HOME="${HOME}/ansible25"
OPTS+=('ANSIBLE_EMBED_HOME')
if [[ ! -e "${ANSIBLE_EMBED_HOME}/bin/ansible" ]]; then if [[ ! -e "${ANSIBLE_EMBED_HOME}/bin/ansible" ]]; then
apt-get update apt-get update
@ -51,21 +53,37 @@ EOF
fi fi
export USER_VARS="$(for i in $(ls -1 /etc/openstack_deploy/user_*secret*.yml); do echo -n "-e@$i "; done)" export USER_VARS="$(for i in $(ls -1 /etc/openstack_deploy/user_*secret*.yml); do echo -n "-e@$i "; done)"
OPTS+=('USER_VARS')
echo "env USER_VARS set" echo "env USER_VARS set"
echo "Extra users variables can be expanded by including the option \$USER_VARS on a playbook run." echo "Extra users variables can be expanded by including the option \$USER_VARS on a playbook run."
export ANSIBLE_INVENTORY="${ANSIBLE_EMBED_HOME}/inventory/openstack_inventory.sh" export ANSIBLE_INVENTORY="${ANSIBLE_EMBED_HOME}/inventory/openstack_inventory.sh"
OPTS+=('ANSIBLE_INVENTORY')
echo "env ANSIBLE_INVENTORY set" echo "env ANSIBLE_INVENTORY set"
fi fi
export ANSIBLE_HOST_KEY_CHECKING="False" export ANSIBLE_HOST_KEY_CHECKING="False"
OPTS+=('ANSIBLE_HOST_KEY_CHECKING')
echo "env ANSIBLE_HOST_KEY_CHECKING set" echo "env ANSIBLE_HOST_KEY_CHECKING set"
export ANSIBLE_ROLES_PATH="${ANSIBLE_EMBED_HOME}/repositories/roles" export ANSIBLE_ROLES_PATH="${ANSIBLE_EMBED_HOME}/repositories/roles"
OPTS+=('ANSIBLE_ROLES_PATH')
echo "env ANSIBLE_ACTION_PLUGINS set" echo "env ANSIBLE_ACTION_PLUGINS set"
export ANSIBLE_ACTION_PLUGINS="${ANSIBLE_EMBED_HOME}/repositories/ansible-config_template/action" export ANSIBLE_ACTION_PLUGINS="${ANSIBLE_EMBED_HOME}/repositories/ansible-config_template/action"
OPTS+=('ANSIBLE_ACTION_PLUGINS')
echo "env ANSIBLE_ROLES_PATH set" echo "env ANSIBLE_ROLES_PATH set"
source ${ANSIBLE_EMBED_HOME}/bin/activate source ${ANSIBLE_EMBED_HOME}/bin/activate
echo "Embedded Ansible has been activated. Run 'deactivate' to leave the embedded environment". echo "Embedded Ansible has been activated. Run 'deactivate' to leave the embedded environment".
function deactivate_embedded_venv {
deactivate
for i in ${OPTS[@]}; do
unset ${i}
done
unset deactivate_embedded_venv
unalias deactivate
}
alias deactivate=deactivate_embedded_venv

View File

@ -106,7 +106,7 @@ Create the containers
.. code-block:: bash .. code-block:: bash
cd /opt/openstack-ansible/playbooks cd /opt/openstack-ansible/playbooks
openstack-ansible lxc-containers-create.yml -e 'container_group=elastic-logstash:kibana' openstack-ansible lxc-containers-create.yml -e 'container_group=elastic-logstash:kibana:apm-server'
Deploying | Installing with embedded Ansible Deploying | Installing with embedded Ansible
@ -117,9 +117,9 @@ incompatible with these playbooks the script `bootstrap-embedded-ansible.sh` can
be sourced to grab an embedded version of Ansible prior to executing the be sourced to grab an embedded version of Ansible prior to executing the
playbooks. playbooks.
``` bash .. code-block:: bash
source bootstrap-embedded-ansible.sh
``` source bootstrap-embedded-ansible.sh
Deploying | Manually resolving the dependencies Deploying | Manually resolving the dependencies
@ -131,9 +131,10 @@ the `bootstrap-ansible.sh` script these dependencies can be resolved with the
* Example galaxy execution * Example galaxy execution
``` bash .. code-block:: bash
ansible-galaxy install -r ansible-role-requirements.yml
``` ansible-galaxy install -r ansible-role-requirements.yml
Once the dependencies are set make sure to set the action plugin path to the Once the dependencies are set make sure to set the action plugin path to the
location of the config_template action directory. This can be done using the location of the config_template action directory. This can be done using the
@ -176,6 +177,15 @@ Included dashboards.
* https://grafana.com/dashboards/5569 * https://grafana.com/dashboards/5569
* https://grafana.com/dashboards/5566 * https://grafana.com/dashboards/5566
Example command using the embedded Ansible from within the grafana directory.
.. code-block:: bash
ansible-playbook ${USER_VARS} installGrafana.yml \
-e @../elk_metrics_6x/vars/variables.yml \
-e galera_root_user=root \
-e 'galera_address={{ internal_lb_vip_address }}'
Trouble shooting Trouble shooting
---------------- ----------------