Use ansible instead of direct ssh calls
Instead of a shell script looping over ssh calls, use a simple ansible playbook. The benefit this gets is that we can then also script ad-hoc admin tasks either via playbooks or on the command line. We can also then get rid of the almost entirely unused salt infrastructure. Change-Id: I53112bd1f61d94c0521a32016c8a47c8cf9e50f7
This commit is contained in:
commit
47d837fb54
|
@ -0,0 +1,3 @@
|
||||||
|
[defaults]
|
||||||
|
hostfile=/usr/local/bin/puppet-inventory
|
||||||
|
log_path=/var/log/ansible.log
|
|
@ -0,0 +1,30 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# Copyright (c) 2014 Hewlett-Packard Development Company, L.P.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
import json
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
output = [
|
||||||
|
x.split()[1][1:-1] for x in subprocess.check_output(
|
||||||
|
["puppet","cert","list","-a"]).split('\n')
|
||||||
|
if x.startswith('+')
|
||||||
|
]
|
||||||
|
|
||||||
|
data = {
|
||||||
|
'_meta': {'hostvars': dict()},
|
||||||
|
'ungrouped': output,
|
||||||
|
}
|
||||||
|
print json.dumps(data, sort_keys=True, indent=2)
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
- name: run puppet
|
||||||
|
command: timeout -s 9 30m puppet agent --onetime --ignorecache --no-daemonize --no-usecacheonfailure --no-splay --detailed-exitcodes --verbose
|
||||||
|
register: result
|
||||||
|
failed_when: "result.rc != 0 and result.rc != 2"
|
||||||
|
changed_when: "result.rc == 4 or result.rc == 6"
|
Loading…
Reference in New Issue