diff --git a/files/roles/puppet/library/puppet b/files/roles/puppet/library/puppet deleted file mode 100644 index 92407ae..0000000 --- a/files/roles/puppet/library/puppet +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/python - -# Copyright (c) 2014 Hewlett-Packard Development Company, L.P. -# -# This module is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this software. If not, see . - -import pipes - -DOCUMENTATION = ''' ---- -module: puppet -short_description: Runs puppet -description: - - Runs I(puppet) agent in a reliable manner -version_added: "1.5.6" -options: - timeout: - description: - - How long to wait for I(puppet) to finish. - required: false - default: 30m - puppetmaster: - description: - - The hostname of the puppetmaster to contact. - required: true - show_diff: - description: - - Should puppet return diffs of changes applied. Defaults to off to avoid leaking secret changes by default. - required: false - default: no - choices: [ "yes", "no" ] -requirements: [ puppet ] -author: Monty Taylor -''' - -EXAMPLES = ''' -# Run puppet and fail if anything goes wrong -- puppet - -# Run puppet and timeout in 5 minutes -- puppet: timeout=5m -''' - - -def main(): - module = AnsibleModule( - argument_spec=dict( - timeout=dict(default="30m"), - puppetmaster=dict(required=True), - show_diff=dict( - default=False, aliases=['show-diff'], type='bool'), - ), - ) - p = module.params - - global PUPPET_CMD - PUPPET_CMD = module.get_bin_path("puppet", False) - - if not PUPPET_CMD: - module.fail_json( - msg="Could not find puppet. Please ensure it is installed.") - - cmd = ("timeout -s 9 %(timeout)s %(puppet_cmd)s agent --onetime" - " --server %(puppetmaster)s" - " --ignorecache --no-daemonize --no-usecacheonfailure --no-splay" - " --detailed-exitcodes --verbose") % dict( - timeout=pipes.quote(p['timeout']), puppet_cmd=PUPPET_CMD, - puppetmaster=pipes.quote(p['puppetmaster'])) - if p['show_diff']: - cmd += " --show-diff" - rc, stdout, stderr = module.run_command(cmd) - - if rc == 0: - # success - module.exit_json(rc=rc, changed=False, stdout=stdout) - elif rc == 1: - # rc==1 could be because it's disabled - # rc==1 could also mean there was a compilation failure - disabled = "administratively disabled" in stdout - if disabled: - msg = "puppet is disabled" - else: - msg = "puppet did not run" - module.exit_json( - rc=rc, disabled=disabled, msg=msg, - error=True, stdout=stdout, stderr=stderr) - elif rc == 2: - # success with changes - module.exit_json(rc=0, changed=True) - elif rc == 124: - # timeout - module.exit_json( - rc=rc, msg="%s timed out" % cmd, stdout=stdout, stderr=stderr) - else: - # failure - module.fail_json( - rc=rc, msg="%s failed with return code: %d" % (cmd, rc), - stdout=stdout, stderr=stderr) - -# import module snippets -from ansible.module_utils.basic import * - -main() diff --git a/files/roles/puppet/tasks/main.yml b/files/roles/puppet/tasks/main.yml deleted file mode 100644 index b2fe93a..0000000 --- a/files/roles/puppet/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -- name: run puppet - puppet: - puppetmaster: "{{puppetmaster}}" diff --git a/manifests/init.pp b/manifests/init.pp index eaf42d1..b5da970 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -1,7 +1,8 @@ # == Class: ansible # class ansible ( - $ansible_hostfile = '/usr/local/bin/puppet-inventory' + $ansible_hostfile = '/usr/local/bin/puppet-inventory', + $ansible_roles_path = '/etc/ansible/roles' ) { include logrotate @@ -35,18 +36,6 @@ class ansible ( source => 'puppet:///modules/ansible/puppet-inventory', } - file { '/etc/ansible/roles': - ensure => directory, - recurse => true, - source => 'puppet:///modules/ansible/roles', - require => File['/etc/ansible'], - } - - file { '/etc/ansible/library': - ensure => absent, - force => true, - } - include logrotate logrotate::file { 'ansible': log => '/var/log/ansible.log', diff --git a/templates/ansible.cfg.erb b/templates/ansible.cfg.erb index 1e659d8..2897362 100644 --- a/templates/ansible.cfg.erb +++ b/templates/ansible.cfg.erb @@ -2,3 +2,4 @@ hostfile=<%= @ansible_hostfile %> library=/usr/share/ansible log_path=/var/log/ansible.log +roles_path=<%= @ansible_roles_path %>