community.general.alternatives module – Manages alternative programs for common commands
Note
This module is part of the community.general collection (version 10.1.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: community.general.alternatives
.
Synopsis
Manages symbolic links using the ‘update-alternatives’ tool.
Useful when multiple programs are installed but provide similar functionality (e.g. different editors).
Requirements
The below requirements are needed on the host that executes this module.
update-alternatives
Parameters
Parameter |
Comments |
---|---|
The family groups similar alternatives. This option is available only on RHEL-based distributions. |
|
The path to the symbolic link that should point to the real executable. This option is always required on RHEL-based distributions. On Debian-based distributions this option is required when the alternative |
|
The generic name of the link. |
|
The path to the real executable that the link should point to. |
|
The priority of the alternative. If no priority is given for creation |
|
Choices:
|
|
A list of subcommands. Each subcommand needs a name, a link and a path parameter. Subcommands are also named ‘slaves’ or ‘followers’, depending on the version of alternatives. |
|
The path to the symbolic link that should point to the real subcommand executable. |
|
The generic name of the subcommand. |
|
The path to the real executable that the subcommand should point to. |
Attributes
Attribute |
Support |
Description |
---|---|---|
Support: full |
Can run in |
|
Support: full |
Will return details on what has changed (or possibly needs changing in |
Examples
- name: Correct java version selected
community.general.alternatives:
name: java
path: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
- name: Select java-11-openjdk.x86_64 family
community.general.alternatives:
name: java
family: java-11-openjdk.x86_64
when: ansible_os_family == 'RedHat'
- name: Alternatives link created
community.general.alternatives:
name: hadoop-conf
link: /etc/hadoop/conf
path: /etc/hadoop/conf.ansible
- name: Make java 32 bit an alternative with low priority
community.general.alternatives:
name: java
path: /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java
priority: -10
- name: Install Python 3.5 but do not select it
community.general.alternatives:
name: python
path: /usr/bin/python3.5
link: /usr/bin/python
state: present
- name: Install Python 3.5 and reset selection to auto
community.general.alternatives:
name: python
path: /usr/bin/python3.5
link: /usr/bin/python
state: auto
- name: keytool is a subcommand of java
community.general.alternatives:
name: java
link: /usr/bin/java
path: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
subcommands:
- name: keytool
link: /usr/bin/keytool
path: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/keytool