Hi Stefan,

Thanks for the tasks! I have modified it a bit to what we use. See below:

---
- hosts: all
  remote_user: root

  tasks:
  - name: copy MyConfig.pm to the correct directory on remote host(s)
    template:
      src: ../../../library/conf/debian/debian-myconfig.pm
      dest: /root/.cpan/CPAN/MyConfig.pm
  - name: Install cpanm on Debian
    apt:
     name: cpanminus
    when:
     ansible_distribution|lower == 'debian'
  - name: Install other prerequisites (Debian)
    apt:
     name:
      - gcc
      - make
    when:
     ansible_distribution|lower == 'debian'
  - name: Install cpanm on Ubuntu
    apt:
     name: cpanminus
    when:
     ansible_distribution|lower == 'ubuntu'
  - name: Install other prerequisites (Ubuntu)
    apt:
     name:
      - gcc
      - make
    when:
     ansible_distribution|lower == 'ubuntu'
  - name: Install cpanm on RedHat
    yum:
     name: perl-App-cpanminus
    when:
     ansible_distribution|lower == 'redhat'
  - name: Install other prerequisites (RedHat)
    yum:
     name:
      - gcc
      - make
    when:
     ansible_distribution|lower == 'redhat'
  - name: Install cpanm (SUSE Linux)
    zypper:
     name: perl-App-cpanminus
    when:
     ansible_distribution|lower == 'sles'
  - name: Install other prerequisites (SUSE Linux)
    yum:
     name:
      - gcc
      - make
    when:
     ansible_distribution|lower == 'sles'
  - name: Install some CPAN modules
    cpanm:
     name: "{{ item }}"
     notest: true
    with_items:
    - "HTTP::DAV"
    - "Log::Log4perl"
    - "SOAP::Lite"
    - "Digest::SHA1"
    - "AnyData"
    - "Log::Dispatch::FileRotate"
    - "Term::Shell"
    - "Crypt::RC4"
    environment:
      PERL_CPANM_OPT: "--mirror http://hCPAN2.sde.rdlabs.hpecorp.net/";
...


When I run this I get:

failed: [ubuntu12ex6401] (item=HTTP::DAV) => {"ansible_loop_var": "item", 
"changed": false, "cmd": "/usr/bin/cpanm HTTP::DAV -n", "item": 
"HTTP::DAV", "msg": "! Finding HTTP::DAV on cpanmetadb failed.\n! Finding 
HTTP::DAV on search.cpan.org failed.\n--> Working on HTTP::DAV\nFetching 
http://hCPAN2.sde.rdlabs.hpecorp.net/authors/id/C/CO/COSIMO/HTTP-DAV-0.49.tar.gz
 
... OK\nConfiguring HTTP-DAV-0.49 ... OK\n==> Found dependencies: 
XML::DOM\n! Finding XML::DOM on cpanmetadb failed.\n! Finding XML::DOM on 
search.cpan.org failed.\n--> Working on XML::DOM\nFetching 
http://hCPAN2.sde.rdlabs.hpecorp.net/authors/id/T/TJ/TJMATHER/XML-DOM-1.46.tar.gz
 
... OK\nConfiguring XML-DOM-1.46 ... OK\n==> Found dependencies: 
XML::Parser::PerlSAX, XML::Parser\n! Finding XML::Parser::PerlSAX on 
cpanmetadb failed.\n! Finding XML::Parser::PerlSAX on search.cpan.org 
failed.\n--> Working on XML::Parser::PerlSAX\nFetching 
http://hCPAN2.sde.rdlabs.hpecorp.net/authors/id/K/KM/KMACLEOD/libxml-perl-0.08.tar.gz
 
... OK\nConfiguring libxml-perl-0.08 ... OK\n==> Found dependencies: 
XML::Parser\n! Finding XML::Parser on cpanmetadb failed.\n! Finding 
XML::Parser on search.cpan.org failed.\n--> Working on 
XML::Parser\nFetching 
http://hCPAN2.sde.rdlabs.hpecorp.net/authors/id/T/TO/TODDR/XML-Parser-2.44.tar.gz
 
... OK\nConfiguring XML-Parser-2.44 ... OK\nBuilding XML-Parser-2.44 ... 
FAIL\n! Installing XML::Parser failed. See /root/.cpanm/build.log for 
details.\n! Bailing out the installation for libxml-perl-0.08. Retry with 
--prompt or --force.\n! Bailing out the installation for XML-DOM-1.46. 
Retry with --prompt or --force.\n! Bailing out the installation for 
HTTP-DAV-0.49. Retry with --prompt or --force.\n"}

failed: [ubuntu12ex6401] (item=SOAP::Lite) => {"ansible_loop_var": "item", 
"changed": false, "cmd": "/usr/bin/cpanm SOAP::Lite -n", "item": 
"SOAP::Lite", "msg": "! Finding SOAP::Lite on cpanmetadb failed.\n! Finding 
SOAP::Lite on search.cpan.org failed.\n--> Working on SOAP::Lite\nFetching 
http://hCPAN2.sde.rdlabs.hpecorp.net/authors/id/P/PH/PHRED/SOAP-Lite-1.27.tar.gz
 
... OK\nConfiguring SOAP-Lite-1.27 ... OK\n==> Found dependencies: 
IO::Socket::SSL, LWP::Protocol::https, XML::Parser\n! Finding 
IO::Socket::SSL on cpanmetadb failed.\n! Finding IO::Socket::SSL on 
search.cpan.org failed.\n--> Working on IO::Socket::SSL\nFetching 
http://hCPAN2.sde.rdlabs.hpecorp.net/authors/id/S/SU/SULLR/IO-Socket-SSL-2.066.tar.gz
 
... OK\n==> Found dependencies: Net::SSLeay\n! Finding Net::SSLeay on 
cpanmetadb failed.\n! Finding Net::SSLeay on search.cpan.org failed.\n--> 
Working on Net::SSLeay\nFetching 
http://hCPAN2.sde.rdlabs.hpecorp.net/authors/id/C/CH/CHRISN/Net-SSLeay-1.88.tar.gz
 
... OK\nConfiguring Net-SSLeay-1.88 ... OK\nBuilding Net-SSLeay-1.88 ... 
FAIL\n! Installing Net::SSLeay failed. See /root/.cpanm/build.log for 
details.\n! Bailing out the installation for IO-Socket-SSL-2.066. Retry 
with --prompt or --force.\n! Finding LWP::Protocol::https on cpanmetadb 
failed.\n! Finding LWP::Protocol::https on search.cpan.org failed.\n--> 
Working on LWP::Protocol::https\nFetching 
http://hCPAN2.sde.rdlabs.hpecorp.net/authors/id/O/OA/OALDERS/LWP-Protocol-https-6.07.tar.gz
 
... OK\nConfiguring LWP-Protocol-https-6.07 ... OK\n==> Found dependencies: 
IO::Socket::SSL\nBuilding LWP-Protocol-https-6.07 ... OK\nSuccessfully 
installed LWP-Protocol-https-6.07\n! Finding XML::Parser on cpanmetadb 
failed.\n! Finding XML::Parser on search.cpan.org failed.\n--> Working on 
XML::Parser\nFetching 
http://hCPAN2.sde.rdlabs.hpecorp.net/authors/id/T/TO/TODDR/XML-Parser-2.44.tar.gz
 
... OK\nConfiguring XML-Parser-2.44 ... OK\nBuilding XML-Parser-2.44 ... 
FAIL\n! Installing XML::Parser failed. See /root/.cpanm/build.log for 
details.\n! Bailing out the installation for SOAP-Lite-1.27. Retry with 
--prompt or --force.\n1 distribution installed\n"}

Could you help me with this failure?




On Thursday, July 25, 2019 at 7:12:08 AM UTC-5, Stefan Hornburg (Racke) 
wrote:
>
> On 7/24/19 10:17 PM, Keith Mills wrote: 
> > I have my playbook for CPAN. Right now it only works for Debian. I need 
> it to work for SLES/RHEL/UBUNTU also but I don't 
> > know how to add them into the playbook. Can someone please help! 
> > 
> > 
>
> Please check the tasks below. 
>
> Tested on: 
>
> - Debian 9 and Debian 10 
> - CentOS 7 
> - Ubuntu Bionic (symlink /usr/bin/python3 or set 
> ansible_python_interpreter inventory variable) 
> - OpenSuSE 15 
>
> Notes: 
>
> - notest is true as the @INC dot removal broke a couple of Perl modules 
> - additional prerequisites might be needed for XS modules, e.g. 
>
> https://wiki.linuxia.de/library/stefan-hornburg-racke-perl-tricks-en#text-amuse-label-debianprequisites
>  
> - split up the OS specific tasks into separate task files and include them 
>
> Let me know if you have any questions. 
>
> Regards 
>           Racke 
>
> --- 
> - hosts: all 
>   become: yes 
>
>   tasks: 
>     - name: Install cpanm on Debian/Ubuntu 
>       apt: 
>         name: cpanminus 
>       when: 
>         ansible_os_family == 'Debian' 
>     - name: Install other prerequisites (Debian) 
>       apt: 
>         name: 
>           - gcc 
>           - make 
>       when: 
>         ansible_os_family == 'Debian' 
>
>     - name: Install cpanm on RedHat 
>       yum: 
>         name: perl-App-cpanminus 
>       when: 
>         ansible_os_family == 'RedHat' 
>
>     - name: Install other prerequisites (RedHat) 
>       yum: 
>         name: 
>           - gcc 
>           - make 
>       when: 
>         ansible_os_family == 'RedHat' 
>
>     - name: Install cpanm (SUSE Linux) 
>       zypper: 
>         name: perl-App-cpanminus 
>       when: 
>         ansible_os_family == 'Suse' 
>
>     - name: Install other prerequisites (SUSE Linux) 
>       yum: 
>         name: 
>           - gcc 
>           - make 
>       when: 
>         ansible_os_family == 'Suse' 
>
>     - name: Install some CPAN modules 
>       cpanm: 
>         name: "{{ item }}" 
>         notest: true 
>       with_items: 
>         - DBIx::Class 
>         - DateTime 
>         - Dancer2 
>
>
>
> > What I have: 
> > 
> > cpan-modules.yaml  
> > 
> > --- 
> >         - hosts: gen10alltools 
> >         remote_user: root 
> >          
> >         # Note: I am testing this script 
> >         # The intended result is to increase speed to deploy new servers 
> >         # by installing the needed CPAN modules through Ansible instead 
> >         # of the old scripts from Build Admin. Copying requirements 
> from: 
> >         # 
> E:\BuildAgent\buildagent\linux\matrix_update\12-cpan\SLES-12-x86_64.sh 
> >          
> >         tasks: 
> >         - name: copy MyConfig.pm to the correct directory on remote 
> host(s) 
> >         template: 
> >         src: ../../../library/conf/debian/debian-myconfig.pm 
> >         dest: /root/.cpan/CPAN/MyConfig.pm 
> >         # - name: install CPANM so the next step can install all modules 
> >         # zypper: 
> >         # name: perl-App-cpanminus 
> >         # state: present 
> >         # Commented out the CPANM install because it...doesn't work 
> right, 
> >         # did manually by executing "cpan App::cpanminus" from our 
> mirror 
> >         # install needed CPAN modules 
> >         # - cpanm: name={{ item }} 
> >         - cpanm: 
> >         name: "{{ item }}" 
> >         with_items: 
> >         - "HTTP::DAV" 
> >         - "Log::Log4perl" 
> >         - "SOAP::Lite" 
> >         - "Digest::SHA1" 
> >         - "AnyData" 
> >         - "Log::Dispatch::FileRotate" 
> >         - "Term::Shell" 
> >         - "Crypt::RC4" 
> >         environment: 
> >         PERL_CPANM_OPT: "--mirror http://hCPAN2.sde.rdlabs.hpecorp.net/"; 
>
> >         ... 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups "Ansible Project" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to 
> > [email protected] <javascript:> <mailto:
> [email protected] <javascript:>>. 
> > To view this discussion on the web visit 
> > 
> https://groups.google.com/d/msgid/ansible-project/31ae91af-9d54-445c-8e1b-b583d284569c%40googlegroups.com
>  
> > <
> https://groups.google.com/d/msgid/ansible-project/31ae91af-9d54-445c-8e1b-b583d284569c%40googlegroups.com?utm_medium=email&utm_source=footer>.
>  
>
>
>
> -- 
> Ecommerce and Linux consulting + Perl and web application programming. 
> Debian and Sympa administration. Provisioning with Ansible. 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/d2af32c7-f0ba-4120-8378-a988696501d8%40googlegroups.com.

Reply via email to