Commit Graph

899 Commits (d9ff373cec5ecd3bc90c021dd746e552aedac99b)

Author SHA1 Message Date
Fabio Alessandro Locati 1f0d62b36d Use native YAML (#5571) 9 years ago
Michael Scherer 872594b49a Make service work when the service is not present in rc.conf
After installing a package from the ports collection on a
fresh FreeBSD 11.0, Ansible was unable to enable it, failing with
"unable to get current rcvar value". Debugging showed that sysrc
didn't see the variable from /usr/local/etc/rc.d/myservice, but
adding the value was working.

So we will just fallback to the default value if we can't find it.
9 years ago
Brian Coca 76fd19c3ca dont join when group is none 9 years ago
Brian Coca 86fc6970be docit 9 years ago
Brian Coca c4342c3c7d allow groups to be passed as YAML list as well
keeps backwards copat with 'comma delimited string'
fixes #5163
9 years ago
Evan Kaufman 45760eef44 Identify existing unmanaged jobs by exact match, when no header comment is found
* updated `find_job` method to find by exact match of job, when no matching header comment is found
  * note this fallback injects a header comment for later calls to `update_job` or `remove_job`
* abstracted header comment building to `do_comment` method

Fixes #3256
9 years ago
Brian Coca ebcc46fa27 make sure all svcadm operations are syncronous
fixes #5296
9 years ago
Hiroaki Nakamura 1072555cc9 hostname: add support for alpine linux (#4837)
* Add update_current_and_permanent_hostname to the hostname module

* Add support for Alpine Linux to the hostname module
9 years ago
Jonathan Mainguy ea7005a185 update maintainer 9 years ago
Evan Kaufman b0c94e957e Record existing cron file as string property, rather than only recording termination
This seems less hackish, and feels more proper for diff generation
9 years ago
Evan Kaufman 7c9401a7ff Rendering of crontab should reflect actual newline termination, in diff mode 9 years ago
Evan Kaufman 10b0580ff4 Ensure trailing newline is written to cron file
Records whether existing cron file (or CRONCMD output) has a terminating newline, and ensures a trailing newline is written as necessary EVEN IF NO CHANGE WAS MADE to the target env/job

Fixes #2316
9 years ago
Adrian Likins 8d3a34ced6 Make authorized_key preserve key order (#5339)
* Make authorized_key preserve key order

Track the ordering of keys in the original file (rank)
and try to preserve it when writing out updates.

Fixes #4780
9 years ago
Toshio Kuratomi d77027f495 Fix authorized_key module to preserve the order of options
The last fix allowing multiple definitions of the same option key (for
permitopen support) introduced a set() which removed the guaranteed
ordering of the options.

This change restores ordering.  The change is larger than simply
removing the set because we do need to handle the non-dict semantics
around keys not being unique in the data structure.  The new code make
use of __setitem__() and items() to do its work.  Trying to use
getitem() or keys() should be looked upon with suspicion as neither of
those follow dictionary semantics and it is quite possible the coder
doesn't realize this.  The next time we need to touch or enhance the
keydict code it should probably be rewritten to not pretend to extend
the dictionary interface.
9 years ago
Michael Scherer 6145e24ed4 Fix code for python 3
Since dict.keys return a dictkeys under python 3, we hav to cast it
to a list to avoid traceback:

    Traceback (most recent call last):
      File "/tmp/ansible_sh16ejbd/ansible_module_authorized_key.py", line 496, in <module>
        main()
      File "/tmp/ansible_sh16ejbd/ansible_module_authorized_key.py", line 490, in main
        results = enforce_state(module, module.params)
      File "/tmp/ansible_sh16ejbd/ansible_module_authorized_key.py", line 410, in enforce_state
        parsed_new_key = parsekey(module, new_key)
      File "/tmp/ansible_sh16ejbd/ansible_module_authorized_key.py", line 308, in parsekey
        options = parseoptions(module, options)
      File "/tmp/ansible_sh16ejbd/ansible_module_authorized_key.py", line 259, in parseoptions
        options_dict[key] = value
      File "/tmp/ansible_sh16ejbd/ansible_module_authorized_key.py", line 164, in __setitem__
        self.itemlist.append(key)
    AttributeError: 'dict_keys' object has no attribute 'append'

Yet another fix for https://github.com/ansible/ansible/pull/18053
9 years ago
Michael Scherer 2511500a91 Cleanup import for authorized_key
Do not import '*', to ease future refactoring and cleanup of
module_utils.
9 years ago
Michael Scherer 3266efb02f Make the code run on python 3
Test suite block on:

    Traceback (most recent call last):
      File "/tmp/ansible_fhootp1e/ansible_module_authorized_key.py", line 496, in <module>
        main()
      File "/tmp/ansible_fhootp1e/ansible_module_authorized_key.py", line 490, in main
        results = enforce_state(module, module.params)
      File "/tmp/ansible_fhootp1e/ansible_module_authorized_key.py", line 410, in enforce_state
        parsed_new_key = parsekey(module, new_key)
      File "/tmp/ansible_fhootp1e/ansible_module_authorized_key.py", line 308, in parsekey
        options = parseoptions(module, options)
      File "/tmp/ansible_fhootp1e/ansible_module_authorized_key.py", line 253, in parseoptions
        if options_dict.has_key(key):
    AttributeError: 'keydict' object has no attribute 'has_key'

With keydict being a subclass of dict.
9 years ago
Michael Scherer b0159fe7d3 Remove the wide try/expect clause
This doesn't catch anything precise, and none of the methods should
throw a expection for anything. This also hide python 3 errors.
9 years ago
Steven de Vries 4900632342 Move job parameter to meet expected requirements (#5151)
closes #5273
9 years ago
Michael Scherer a35b77a10c Convert name to bytes to compare it to bools
On python 3, bools is a list of bytes:

    >>> rc,bools = selinux.security_get_boolean_names()
    >>> 'virt_use_nfs' in bools
    False
    >>> bools
    [b'abrt_anon_write', b'abrt_handle_event', ...]
9 years ago
John R Barker 312f578f93 Bulk spelling improvement to modules-core (#5225)
* Correct spelling mistakes

* Correct more spelling issues

* merge conflict

* Revert typo in parms
9 years ago
Laurent Godet 0ee774ff15 Fix daemon_reload in systemd module 9 years ago
Jiri Tyr c1a51d74ff Fixing bind mount pattern in the mount module (#5084) 9 years ago
Toshio Kuratomi ca0e78d12a Fix mount default options -- should be defaults, not default 9 years ago
Jiri Tyr 7808f42aff Ultimate fix of the mount module for Linux (#5055) 9 years ago
Jiri Tyr 25585937fb Fixing bind mount on Linux (#1942) (#4439)
* Fixing bind mount on Linux

* Fixing broken implementation
9 years ago
Toshio Kuratomi edf361a5d4 Fix #3153 again (#4989) 9 years ago
Toshio Kuratomi d843204575 Working subset of mount fixes (#4987)
* Fixing bind mount on Linux

* The latest update from jtyr doesn't pass integration tests.

Manually select the changes that are necessary to fix the bug with
unmounting
9 years ago
Lars Engels a49cd08832 Add support for password aging on Solaris (#4372)
* Add support for password aging on Solaris

* Fix shadow file editing when {MIN,MAX,WARN}WEEKS is not set in /etc/default/passwd

* Un-break with python3

* _Really_ un-break with python3
9 years ago
Riccardo Murri 344927a6b1 hostname: Support "Scientific Linux CERN" (#4855)
CERN maintains its own fork of "Scientific Linux",
which identifies as "Scientific Linux CERN SLC".
This commit lets Ansible know that this is again
another variant of RHEL.
9 years ago
Toshio Kuratomi 432ee70da1 Fix syntax 9 years ago
Brian Coca 067167a9b3 switched to use built in function for validation 9 years ago
Antonio Murdaca dc7ba8f3c9 system/systemd: enable systemctl --user (#4208)
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
9 years ago
glovenglaven 9bb0c498df Added Solaris support to core mount module (#4771)
* Added Solaris support to the mount module.

* Added checking so that if a non-standard fstab file is specified it will
still work in Solaris without breaking existing functionality.

* Added a check to avoid writing duplicate vfstab entries on Solaris

* Added "version_added" to new boot option
9 years ago
Gregor Giesen 2f3fdc4975 cron: replacement for os.getlogin() (#4777)
os.getlogin() returns the user logged in on the controlling terminal. However
'crontab' only looks for the login name of the process' real user id which
pwd.getpwuid(os.getuid())[0] does provide.

While in most cases there is no difference, the former might fail under certain
circumstances (e.g. a lxc container connected by attachment without login),
throwing the error 'OSError: [Errno 25] Inappropriate ioctl for device'.
9 years ago
Michael Scherer 5f652c7584 Add support for selinux_boolean_sub conversion (#4570)
SELinux since 2012 use a configuration file to
convert boolean names from a old name to a new name,
for preserving backward compatibility.

However, this has to be done explicitely when using the python
bindings, and the module was not doing it.

Openshift ansible script use this construct to detect if
a boolean exist or not:

    - name: Check for existence of virt_sandbox_use_nfs seboolean
      command: getsebool virt_sandbox_use_nfs
      register: virt_sandbox_use_nfs_output
      failed_when: false
      changed_when: false

    - name: Set seboolean to allow nfs storage plugin access from containers(sandbox)
      seboolean:
        name: virt_sandbox_use_nfs
        state: yes
        persistent: yes
      when: virt_sandbox_use_nfs_output.rc == 0

On a system where virt_sandbox_use_nfs do not exist, this work. But
on a system where virt_sandbox_use_nfs is a alias to virt_use_nfs (like
Fedora 24), this fail because the seboolean is not aware of the alias.
10 years ago
Michael Scherer cee7473df6 Port mount.py to python3, need to use six.iteritems (#4581) 10 years ago
Michael Scherer 38992bbd57 Fix user module under python3 (#4560)
Using something like:

    - name: Create ssh keys
      user:
        name: root
        generate_ssh_key: yes
      register: key

result into this traceback on F24

    Traceback (most recent call last):
      File \"/tmp/ansible_jm5d4vlh/ansible_module_user.py\", line 2170, in <module>
        main()
      File \"/tmp/ansible_jm5d4vlh/ansible_module_user.py\", line 2108, in main
        (rc, out, err) = user.modify_user()
      File \"/tmp/ansible_jm5d4vlh/ansible_module_user.py\", line 660, in modify_user
        return self.modify_user_usermod()
      File \"/tmp/ansible_jm5d4vlh/ansible_module_user.py\", line 417, in modify_user_usermod
        has_append = self._check_usermod_append()
      File \"/tmp/ansible_jm5d4vlh/ansible_module_user.py\", line 405, in _check_usermod_append
        lines = helpout.split('\\n')
    TypeError: a bytes-like object is required, not 'str'
10 years ago
Michael Scherer 6063071a46 Fix traceback on python3 (#4556)
Traceback (most recent call last):
  File "/tmp/ansible_csqv781s/ansible_module_systemd.py", line 374, in <module>
    main()
  File "/tmp/ansible_csqv781s/ansible_module_systemd.py", line 263, in main
    for line in out.split('\\n'): # systemd can have multiline values delimited with {}
10 years ago
Levi Morales 688fa6fc54 Fixes #2322 fix for missing append check on Darwin systems (#4256) 10 years ago
Ali Ok ab55355b00 Fix minor syntax error in authorized_key module doc (#4491) 10 years ago
Michael Scherer 21688383c3 Convert command output to native string (#4559)
Without it, the module always return changed on python3,
which is harmless but add noise and can have some side effects.
10 years ago
Michael Scherer 5f1d6ded7f Add support for setting fstab location on Linux too for mount (#3271)
Fix #3153
10 years ago
jctanner 4047096ac4 user: Cast all arguments to string before passing to run_command (#4398)
Fixes #4397
10 years ago
Brian Coca 1eb01d7612 remove X bit 10 years ago
Indrajit Raychaudhuri 23ebb98570 Improve hostname module to support systemd in more generic way (#4382)
Now that there is general purpose `Fact` helper to detect if systemd
is active, we would be able to rely on that to apply SystemdStrategy.

Detecting presence of systemd at runtime would be more reliable than
distribution version based heuristics. (e.g., Debian, Ubuntu allows
user to change the default init system, Gentoo allows switching as
well, and so on).
10 years ago
Brian Coca f3e761f0c8 improved logic when dealing with init scripts 10 years ago
Brian Coca 92b4ae4768 fixes corner case for systemd services
when both unit file and sysv init script exist
Thanks to @olfway for fix.

fixes #3764
10 years ago
Evan Kaufman 4905ab66d6 Fixes #3791 cron always returning changed state for multiline jobs (#4285)
Strip only newlines and carriage returns. Instead of stripping ALL whitespace, which may have unintended side effects
10 years ago
BradLook 7c4de52693 Allow cron to target remote user (#4270) 10 years ago