[CI] Update AZP CI matrix
SUMMARY
To update AZP CI matrix for ansible-core devel branch to address the following issue:
Fixes#408
Update Fedora36 with 37
Update RHEL8.6 with 8.7
Update RHEL9.0 with 9.1
Update FreeBSD 12.3 with 12.4
ISSUE TYPE
CI Tests Pull Request
COMPONENT NAME
ansible.posix
ADDITIONAL INFORMATION
Reference: ansible-test - new and deprecated platforms for testing #31
Fix boolean values in docs
SUMMARY
Fixes#397
ISSUE TYPE
Docs Pull Request
COMPONENT NAME
Docs of several modules
ADDITIONAL INFORMATION
Notes about testing. I'm not sure how to test collections properly. I have ran ansible-test sanity --python 3.10 and ansible-test units --python 3.10 in venv with ansible-core 2.14 (with 0 return code in both cases). To run units test successfully I had to install pytest-forked pip package in addition to this one pytest-xdist from test-requirements.txt.
Note about issue #397. I haven't changed yes here because in this case it is value from /etc/vfstab. Also I've changed yes for parameters masquerade and icmp_block_inversion because they both are converted to bool by boolean function and will be changed to boolean in a future release (1, 2), for required too.
Reviewed-by: Felix Fontein <felix@fontein.de>
Reviewed-by: Hideki Saito <saito@fgrep.org>
Modify firewalld port test cases to avoid port duplication on RHEL9.x
SUMMARY
Modify firewalld port test cases to avoid port duplication behavior on RHEL9.x
ISSUE TYPE
CI Tests Pull Request
COMPONENT NAME
ansible.posix.firewalld
ADDITIONAL INFORMATION
None
Add ephemeral state to mount fs without altering fstab
SUMMARY
Add ephemeral possible value for state parameter.
The ephemeral state allows end-users to mount a volume on a given path, without altering an fstab file or creating a dummy one.
There have been debates about splitting this module into an fstab module and a mount module, but nothing has been done in 5 years. This is why I'd like to propose this feature.
Downside: the way the posix.mount module handles mount options prevents it to be able to check exactly if the given opts perfectly match the mount options of an already mounted volume. To achieve this, the module would have to be aware of every mount default options, for all platforms. This is why state=ephemeral always return changed=yes.
In other terms, a remount will always be triggered if the volume is already mounted, even if the options look to be the same. Using state=unmounted on a volume previously mounted with ephemeral behaves correctly.
ISSUE TYPE
Feature Pull Request
Related issues:
ansible/ansible#48134
#84
COMPONENT NAME
mount
ADDITIONAL INFORMATION
Example use case
Sometimes it is handy to be able to temporarily mount a volume. I've seen this in couple companies where Ansible is used to generate reports and put it on network shares. However, some admins don't look into mount options such as krb5 and multiuser for SMB shares. Being forced to use fstab-based mounts leads to clear text passwords being stored more or less temporarily on the host filesystem, requiring "manual" deletion (with the hassle of using blocks, rescues, always, etc.). This feature respond to this use case by providing a way to mount a volume without having to alter an fstab file.
Description of changes
Edit DOCUMENTATION section to add ephemeral state
Edit EXAMPLES section to add ephemeral state example
Add new function _set_ephemeral_args to use instead of _set_fstab_args when using ephemeral state
Add new function _is_same_mount_src to determine if the mounted volume on the destination path has the same source than the one supplied to the module
Add new function _get_mount_info to avoid redundant code between functions get_linux_mounts and _is_same_mount_src
Modify get_linux_mount to use the new function _get_mount_info. Original behavior is preserved.
Integrate ephemeral parameter treatment into mounted treatment, and add if statements to avoid IO from/to fstab
Add ephemeral as a possible value for the state parameter in main()
Add required_if dependencies for ephemeral state
Reviewed-by: None <None>
Reviewed-by: Hideki Saito <saito@fgrep.org>
Reviewed-by: Abhijeet Kasurde <None>
ansible.posix.mount: add absent_from_fstab option
SUMMARY
Add absent_from_fstab option to remove the entry from fstab, but not unmount or delete the folder. Ideally this would have been the behavior of absent (as to mirror the behavior of present), but for backward compatibility I added a new verbose state
ISSUE TYPE
Feature Pull Request
COMPONENT NAME
mount
ADDITIONAL INFORMATION
Sometimes you may not want to delete the mountpoint (e.g. if it is not currently mounted and data is in the directory, the current behavior will simply error).
Reviewed-by: Amin Vakil <None>
Reviewed-by: None <None>
Fixes#390. Hosts involved must have same password
SUMMARY
Fixes#390
The change takes the password from destination hostvars ansible_ssh_pass or ansible_password when dest is remote.
In other case, previous behavior is maintained and password is taken form task vars ansible_ssh_pass or ansible_password.
Also, both user and password are templated to allow jinja expressions in them.
ISSUE TYPE
Bugfix Pull Request
COMPONENT NAME
ansible.posix.synchronize
ADDITIONAL INFORMATION
n/a
Reviewed-by: Adam Miller <admiller@redhat.com>
Update documented default parameters to match implementation
SUMMARY
Updates documented default value for the acl module's entity parameter to an empty string and rhel_rpm_ostree's name parameter to an empty array correctly matching the actual implementation in both cases. This should fix currently failing test cases in the devel and milestone branches of CI/CD.
ISSUE TYPE
Docs Pull Request
COMPONENT NAME
ansible.posix.acl
ansible.posix.rhel_rpm_ostree
ADDITIONAL INFORMATION
Display the current documentation for the acl module using ansible-doc ansible.posix.acl or rhel_rpm_ostree module using ansible-doc ansible.posix.rhel_rpm_ostree
Alternatively using ansible-test on devel/milestone branches of ansible, execute:
ansible-test sanity --test validate-modules plugins/modules/
Running sanity test "validate-modules"
ERROR: Found 2 validate-modules issue(s) which need to be resolved:
ERROR: plugins/modules/acl.py:0:0: doc-default-does-not-match-spec: Argument 'entity' in argument_spec defines default as ('') but documentation defines default as (None)
ERROR: plugins/modules/rhel_rpm_ostree.py:0:0: doc-default-does-not-match-spec: Argument 'name' in argument_spec defines default as ([]) but documentation defines default as (None)
Before (ansible.posix.acl)
- entity
The actual user or group that the ACL applies to when matching
entity types user or group are selected.
[Default: (null)]
type: str
After (ansible.posix.acl)
- entity
The actual user or group that the ACL applies to when matching
entity types user or group are selected.
[Default: ]
type: str
Before (ansible.posix.rhel_rpm_ostree)
- name
A package name or package specifier with version, like
`name-1.0'.
Comparison operators for package version are valid here `>',
`<', `>=', `<='. Example - `name>=1.0'
If a previous version is specified, the task also needs to
turn `allow_downgrade' on. See the `allow_downgrade'
documentation for caveats with downgrading packages.
When using state=latest, this can be `'*'' which means run
`yum -y update'.
You can also pass a url or a local path to a rpm file (using
state=present). To operate on several packages this can accept
a comma separated string of packages or (as of 2.0) a list of
packages.
aliases: [pkg]
default: null
elements: str
type: list
After (ansible.posix.rhel_rpm_ostree)
- name
A package name or package specifier with version, like
`name-1.0'.
Comparison operators for package version are valid here `>',
`<', `>=', `<='. Example - `name>=1.0'
If a previous version is specified, the task also needs to
turn `allow_downgrade' on. See the `allow_downgrade'
documentation for caveats with downgrading packages.
When using state=latest, this can be `'*'' which means run
`yum -y update'.
You can also pass a url or a local path to a rpm file (using
state=present). To operate on several packages this can accept
a comma separated string of packages or (as of 2.0) a list of
packages.
aliases: [pkg]
default: []
elements: str
type: list
Reviewed-by: Felix Fontein <felix@fontein.de>
Reviewed-by: Adam Miller <admiller@redhat.com>
rpm-ostree based RHEL modules
SUMMARY
Add modules to handle RHEL for Edge updates and package installation state as a compat layer for core.
ISSUE TYPE
New Module Pull Request
COMPONENT NAME
rhel_facts
rhel_rpm_ostree
rpm_ostree_upgrade
Reviewed-by: Abhijeet Kasurde <None>
Reviewed-by: Adam Miller <admiller@redhat.com>
Add stable-2.14 branch to AZP
SUMMARY
Add stable-2.14 branch to Azure pipleline.
Fixes#388
Relates to ansible-collections/news-for-maintainers#24
ISSUE TYPE
CI tests Pull Request
COMPONENT NAME
ansible.posix
ADDITIONAL INFORMATION
None
More complete missing lib msg
adds 'exact' python used by module and hostname to avoid confusion
ISSUE TYPE
Bugfix Pull Request
COMPONENT NAME
firewalld
Reviewed-by: Hideki Saito <saito@fgrep.org>
[CI] Address pylint check check error in ansible-test-sanity-docker-devel test
SUMMARY
Currently, ansible-test-sanity-docker-devel is set non voting, but we need to fix pylint check error in several modules.
https://ansible.softwarefactory-project.io/zuul/build/fbd5ac593fe44fa7b3d77e5557de1607
ISSUE TYPE
Bugfix Pull Request
COMPONENT NAME
ansible.posix.authorized_keys
ansible.posix.mount
ADDITIONAL INFORMATION
None
[CI] Update AZP matrix to remove Fedora35 and FreeBSD12.3 tests from devel
SUMMARY
Removing Fedora35 and FreeBSD12.3 from CI tests for devel branch(docker and remote).
ISSUE TYPE
CI tests Pull Request
COMPONENT NAME
ansible.posix
ADDITIONAL INFORMATION
Related to ansible-collections/news-for-maintainers/issues/21
[CI] Bump AZP container version
SUMMARY
Addresses the following requirements:
ansible-collections/news-for-maintainers#18
However, ansible.posix needs to support Ansible Engine 2.9, so we will keep 2.9, 2.10, and 2.11 in the CI tests for now.
ISSUE TYPE
CI tests Pull Request
COMPONENT NAME
ansible.posix
ADDITIONAL INFORMATION
None
[CI] Refactor AZP settings and CI script
SUMMARY
Refactored AZP settings and CI script to correct the following PR's side effects:
Addresses #369
ISSUE TYPE
CI tests Pull Request
COMPONENT NAME
ansible.posix
ADDITIONAL INFORMATION
None