Add a playbook and script for doing adhoc puppet

Running puppet remotely in an ad-hoc manner on disabled hosts is mildly
complex. To facilitate, have a wide open playbook that we always run
with --limit - and a shell script to help us type less.

Change-Id: I629072dcada38d0465d351b1b99828466405372f
This commit is contained in:
Monty Taylor 2016-02-24 13:05:23 -06:00
parent 60ffbab63b
commit e8e201cc75
3 changed files with 27 additions and 4 deletions

View File

@ -117,14 +117,14 @@ puppetmaster, running:
.. code-block:: bash
ansible-playbook --limit='$HOST:localhost' /opt/system-config/production/playbooks/remote_puppet_else.yaml
ansible-playbook --limit='$HOST:localhost' /opt/system-config/production/playbooks/remote_puppet_adhoc.yaml
as root, where `$HOST` is the host you want to run puppet on. If you are
working with git, gerrit or afs servers, you'll want to replace
`remote_puppet_else.yaml` with the appropriate specific playbook.
as root, where `$HOST` is the host you want to run puppet on.
The `:localhost` is important as some of the plays depend on performing a task
on the localhost before continuing to the host in question, and without it in
the limit section, the tasks for the host will have undefined values.
There is also a script, `tools/kick.sh` that takes the host as an argument
and runs the above command.
Testing new puppet code can be done via `puppet apply --noop` or by
constructing a VM with a puppet install in it and just running `puppet apply`

View File

@ -0,0 +1,5 @@
- hosts: '*'
gather_facts: true
roles:
- role: puppet
manage_config: true

18
tools/kick.sh Executable file
View File

@ -0,0 +1,18 @@
#!/bin/bash
# Copyright 2013 IBM, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
ansible-playbook -f1 --limit $1:localhost \
/opt/system-config/production/playbooks/remote_puppet_adhoc.yaml