Commit Graph

167 Commits (3a00d2bb38d17e714eedcdc8299facd923229df3)

Author SHA1 Message Date
Tobias Wolf 3a00d2bb38 Add diff support to apt_repository module
The returned list of diffs aims to simulate how a file system diff would
look before and after writing the sources list files.

![screenshot](http://i.imgur.com/dH6QXtY.png)

n.b. Ternary conditional  is due to failing integration test for
python 2.4
2016-12-08 11:24:10 -05:00
Stefano Mazzucco 04e9677ae0 'executable' and 'virtualenv' mutually exclusive
fixes https://github.com/ansible/ansible/issues/14415
2016-12-08 11:24:09 -05:00
callipeo 4331fcae34 Add support for both keyserver and keyring in apt_key
Fixes Issue #2996
2016-12-08 11:24:09 -05:00
Matt Clay 53b0fd65ee Split shell command to avoid use_unsafe_shell.
This mirrors a nearly identical change made to apt_repository.py.

Also removes the use of apt-get --force-yes as it can be dangerous
and should not be necessary (apt_repository.py does not use it).

Repeating the explanation from the apt_respository change below:

Since use_unsafe_shell is suspicious from a security point
of view (or it wouldn't be unsafe), the less we have, the less
code we have to thoroughly inspect for a security audit.

In this case, the '&&' can be replaced by doing 2 calls to run_command.
2016-12-08 11:24:09 -05:00
Jonathan Mainguy 44bde46097 Add ability to download deb from url
if :// in deb, will try to download from url.
2016-12-08 11:24:09 -05:00
Brian Coca 2ed38b79cb expanded info on fail on check + missing apt-python
it now explains that apt module will auto install
2016-12-08 11:24:05 -05:00
Matt Clay 4288150270 Do not install python-apt in check mode. 2016-12-08 11:24:04 -05:00
Toshio Kuratomi 03fc2c0c79 use new method of setting locale and other environment variables
The old method left settings in the environment.  The new method takes
care of clearing them after use.  In this module, the old method was
also setting the environment too late to affect all the command line
tools which lead to a bug.

Fixes https://github.com/ansible/ansible/issues/14264
2016-12-08 11:24:03 -05:00
Charles Paul 3e841c04d2 adding autoremove to apt 2016-12-08 11:24:03 -05:00
Joel Thompson d8d8d7da64 Add umask option to pip module
On systems with restrictive umasks, the pip module won't allow you to
install pip packages that are usable by everyone on the system. This
commit adds a umask option to optionally override the umask on a
per-package basis.
2016-12-08 11:24:02 -05:00
Matt Clay b02eb232b0 Show error if python-apt is absent in check mode.
Previously this would fail with an exception which
did not clearly explain the reason for the failure.
2016-12-08 11:24:01 -05:00
Michael Scherer 63490709e6 Do not use a shell construct for rhnreg_ks
Since there is no shell escape of the password parameter, a password with
a single quote (or even worst, a single quote and a pipe) could have
unattended consequences. Also, the less we use use_unsafe_shell=True, the
better.
2016-12-08 11:24:01 -05:00
Toshio Kuratomi f4c9c4596f Fix for yum's use of rpm with non English locales
Depends upon https://github.com/ansible/ansible/pull/14025

Fixes https://github.com/ansible/ansible/issues/13996
Fixes https://github.com/ansible/ansible/issues/13975
2016-12-08 11:24:00 -05:00
Evgeny Vereshchagin 8f23e54a80 apt-key: convert ids to the 'short' format
Fixes:
$ ansible all -m apt_key -a 'state=present id=7A82B743B9B8E46F12C733FA4759FA960E27C0A6 keyserver=hkp://keyserver.ubuntu.com:80' --sudo
127.0.0.1 | SUCCESS => {
    "changed": true
}

$ ansible all -m apt_key -a 'state=absent id=7A82B743B9B8E46F12C733FA4759FA960E27C0A6' --sudo
127.0.0.1 | SUCCESS => {
    "changed": false
}

$ apt-key export 7A82B743B9B8E46F12C733FA4759FA960E27C0A6
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
...

See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1481871
2016-12-08 11:24:00 -05:00
Michael Scherer 519e699b98 Split a shell snippet in 2 to avoid using use_unsafe_shell=True
Since use_unsafe_shell is suspicious from a security point
of view (or it wouldn't be unsafe), the less we have, the less
code we have to toroughly inspect for a security audit.

In this case, the '&&' can be replaced by doing 2 calls to run_command.
2016-12-08 11:24:00 -05:00
Albert Mikaelyan a61095b0b1 Update yum.py 2016-12-08 11:23:59 -05:00
Matt Clay d861329d5e Added filename option to apt_repository module. 2016-12-08 11:23:58 -05:00
Brian Coca e2062c44d9 made note about choice availability in ansible ver 2016-12-08 11:23:57 -05:00
Arata Notsu a9f23ac54f apt: export env vars before run dpkg
Without this change, some trouble may occur when "deb" parameter
is used as env vars controlling dpkg are not set. For example,
installing a package that requires user input will never end since
DEBIAN_FRONTEND=noninteractive is not set.

So export env vars in APT_ENV_VARS before run dpkg, like in cases
using apt-get/aptitude.
2016-12-08 11:23:56 -05:00
Barnaby Court 73d47ec7a4 add no_log to the password parameter 2016-12-08 11:23:55 -05:00
Michael Scherer d321670b38 Add more precise documentation on the requirements parameter
Fix #427
2016-12-08 11:23:55 -05:00
Martin Matuska 4cce825ae9 rhn_register: add sslcacert and systemorgid options 2016-12-08 11:23:55 -05:00
stephane 40e7ed9518 Add support for pip force-reinstall
The pip command allows a user to force reinstallation,
but the module doesn't currently support it. Add
"force-reinstall" as a possible state.
2016-12-08 11:23:54 -05:00
Toshio Kuratomi 687257bd62 Use rpm instead of repoquery for is_installed()
* This keeps us from hitting bugs in repoquery/yum plugins in certain
  instances (#2559).

* The previous is also a small performance boost

* Also in is_installed(), when using the yum API, return if we detect
  a package name has been installed.  We don't need to also check
  virtual provides in that case.  This is another small performance
  boost.

* Sort the list of packages returned by the list parameter.
2016-12-08 11:23:52 -05:00
Veaceslav Mindru fa98f55c44 fix typo s/defaults/default 2016-12-08 11:23:52 -05:00
Daniele Varrazzo a057431a78 Detect unchanged pip runs when using a vcs url in name
Should fix bug #1645
2016-12-08 11:23:51 -05:00
Daniele Varrazzo 53e1310a7f Use 'pip freeze' output to detect changes with requirement specified
If the requirements contains a repos url it will always report 'Successfully
installed'; there is no difference in the output to tell apart if
anything new was pulled. Use freeze to detect if the environment changed
in any way.

Should fix ansible/ansible#1705
2016-12-08 11:23:51 -05:00
Daniel Kimsey a8f7fda210 Fix yum module failing to initalize yum plugins 2016-12-08 11:23:51 -05:00
Veaceslav Mindru 0f456d7e61 adding validate_certs for YUM. #2582 2016-12-08 11:23:50 -05:00
Charles Ferguson ac1e4bf6e0 Update the documentation of the 'apt' action for the 'name'.
The package name has two aliases, 'package' and 'pkg'. Add them to the
documentation.
2016-12-08 11:23:49 -05:00
Charles Ferguson 3969bba771 Update documentation of the 'pkg' and 'state' parameters in yum.
The yum module allows the 'name' parameter to be given as 'pkg', in
a similar way to some of the other package managers. This change
documents this alias.

The module's 'state' parameter has two other aliases, in line with
the 'apt' action; the 'state' parameter can take 'installed' as an
alias for 'present', and 'removed' as an alias for 'absent'. These
aliases are documented.
2016-12-08 11:23:49 -05:00
Felix Engelmann abca0327b9 re-implements #226
in optional (editable) way
with backward compatibility
2016-12-08 11:23:46 -05:00
Toshio Kuratomi 7ae4bdadfc Fixes for bcoca's review of #1916 2016-12-08 11:23:46 -05:00
Harlan Lieberman-Berg a32e5932e9 Give include_recommends a useless default to make the parser happy. 2016-12-08 11:23:45 -05:00
Harlan Lieberman-Berg f9c435ebd5 Add missing brace. 2016-12-08 11:23:45 -05:00
Harlan Lieberman-Berg 1ff12b66fb Change install_recommended in apt to a trinary.
Conditions are now "yes", "no", and "default", with the latter falling
back to the OS default.
2016-12-08 11:23:45 -05:00
Harlan Lieberman-Berg 8ef4715cf6 Change behavior of apt.py around installing recommended packages.
Closes #1189.

This will cause the settings in Ansible to override the system settings.
That will have no effect except on systems that have an out-of-Ansible
configuration that disables automatic installation of recommended
packages.  Previously, ansible would use the OS default whenever
install_recommends wasn't part of the playbook.  This change will cause
the Ansible default configuration setting of installing recommended
packages to override the configuration files set on the OS for things
installed through ansible, even when there is no install_recommends
specified in the playbook.  Because the OS default matches the Ansible
default, this shouldn't have wide impact.
2016-12-08 11:23:45 -05:00
Toshio Kuratomi 5425f3e757 Correct typo in yum module docs 2016-12-08 11:23:44 -05:00
Patrick Galbraith 223c689ec0 Fix to issue 12912. Supply 'force' to install of python-apt. 2016-12-08 11:23:44 -05:00
Toshio Kuratomi 5f87f9deda Note the difference between yum package groups and environment groups.
Fixes https://github.com/ansible/ansible/issues/12873
2016-12-08 11:23:44 -05:00
Toshio Kuratomi 2c378cc78a Fix for state=latest with wildcard or virtual provide package names 2016-12-08 11:23:40 -05:00
Brian Coca 2d7b1bd1c4 added comment explaining chdir defaults 2016-12-08 11:23:39 -05:00
Brian Coca d34f89a6fe default chdir to tmpdir to avoid virtualenv issues 2016-12-08 11:23:39 -05:00
Brian Coca 68e7945767 make chdir a path so it resolves shell aliases also removed this_dir logic as it is not needed, chdir is None by default and run_command can handle that. 2016-12-08 11:23:39 -05:00
Brian Coca d55ba3ab7c removed syslog in favor of common module logging functions 2016-12-08 11:23:38 -05:00
Greg DeKoenigsberg c2cc7f17a3 Change author field for os_redhat_subscription.py 2016-12-08 11:23:37 -05:00
Marius Gedminas 270c2e8bbd apt: check for "0 upgraded" to be at the beginning of the line
Fixes #1678.
2016-12-08 11:23:33 -05:00
Toshio Kuratomi 1102afed43 Fix for the case where plugins aren't loaded on old RHEL systems 2016-12-08 11:23:32 -05:00
Toshio Kuratomi 77457feda6 Return change results in a dictionary listing the package names.
Fix a parsing problem when package names contain a dot.
2016-12-08 11:23:32 -05:00
Brian Coca 9ad712018c deal with more failures when apt module fails to instantiate pkg fixes #1499 2016-12-08 11:23:32 -05:00