1# (c) 2020, Berkhan Berkdemir
2# (c) 2021, Alexei Znamensky
3# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
4
5- name: bail out for non-supported platforms
6  meta: end_play
7  when:
8    - (ansible_os_family != "RedHat" or ansible_distribution_major_version|int < 7)
9    - ansible_os_family != "Debian"
10
11- name: install perl development package for Red Hat family
12  package:
13    name:
14      - perl-devel
15      - perl-App-cpanminus
16    state: present
17  become: yes
18  when: ansible_os_family == "RedHat"
19
20- name: install perl development package for Debian family
21  package:
22    name:
23      - cpanminus
24    state: present
25  become: yes
26  when: ansible_os_family == "Debian"
27
28- name: install a Perl package
29  cpanm:
30    name: JSON
31    notest: yes
32  register: install_perl_package_result
33
34- name: assert package is installed
35  assert:
36    that:
37      - install_perl_package_result is changed
38      - install_perl_package_result is not failed
39
40- name: install same Perl package
41  cpanm:
42    name: JSON
43    notest: yes
44  register: install_same_perl_package_result
45
46- name: assert same package is installed
47  assert:
48    that:
49      - install_same_perl_package_result is not changed
50      - install_same_perl_package_result is not failed
51
52- name: install a Perl package with version operator
53  cpanm:
54    name: JSON
55    version: "@4.01"
56    notest: yes
57    mode: new
58  register: install_perl_package_with_version_op_result
59
60- name: assert package with version operator is installed
61  assert:
62    that:
63      - install_perl_package_with_version_op_result is changed
64      - install_perl_package_with_version_op_result is not failed
65