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 .. 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 as root, where `$HOST` is the host you want to run puppet on.
working with git, gerrit or afs servers, you'll want to replace
`remote_puppet_else.yaml` with the appropriate specific playbook.
The `:localhost` is important as some of the plays depend on performing a task 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 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. 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 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` 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