NAME

Task::Viral - Conquer hosts with a camel

DESCRIPTION

This bundle includes all the stuff you need to build a chain of hosts with Perl installed and CPAN modules you need updated, including your private packages.

WHAT IS AN HOST CHAIN?

Suppose you have the following topology.

Internet <-- host-1 <-- host-2 <-- ... <-- host-N

where host-i are, for instance, under .example.org domain.

Here I call an host chain an array of hosts, where host-0 is some active CPAN mirror on Internet.

The host-(i+1) can connect to host-i and use it as CPAN mirror.

For example, an host chain could be

www.cpan.org <-- development.example.org <-- test.example.org <-- production.example.org

where test and production hosts perhaps could not connect to Internet.

SETUP FIRST HOST CHAIN

  1. Start from development, launch

    cpan Task::Viral
  2. Create folders for mcpani

    mkdir -p $HOME/.mcpani/local
    mkdir -p $HOME/.mcpani/private

    and write $HOME/.mcpani/config configuration

    cat <<EOF > $HOME/.mcpani/config
    local: $HOME/.mcpani/local
    remote: http://www.cpan.org
    repository: $HOME/.mcpani/private
    passive: yes
    dirmode: 0755
    EOF

    Create your mirror

    mcpani --mirror -v
  3. Configure cpan to install from local mirror

    cpan> o conf urllist file://home/user/.mcpani/local
    cpan> o conf commit

SETUP THE WHOLE HOST CHAIN

Start from development.

  1. Launch a cpanmirrorhttpd to serve installed packages to test, for instance on port 2000

    cpanmirrorhttpd --root $HOME/.cpan/sources  --port 2000
  2. Login into test and configure cpan to install packages from development.

    cpan> o conf urllist http://development.example.org:2000
    cpan> o conf commit

Now you can launch

cpan Task::Viral

and iterate steps on host-(i+1) until last element in the host chain, in this case production.

ADD YOUR PRIVATE DISTROS

Suppose you create some distro on development host, for instance My::Package. You may want to install it on test host as usual

cpan My::Package

To add your private distros to your host chain,

Create your distro tarball, for instance My-Package-0.01.tar.gz, and inject it in your local CPAN

mcpani  --add --module My::Package --authorid AUTHOR --modversion 0.01 --file ./My-Package-0.01.tar.gz

Inject your module

mcpani --inject -v

STUFF INCLUDED

SEE ALSO

Private CPAN Distributions article by https://metacpan.org/author/BDFOY|BDFOY.

COPYRIGHT AND LICENSE

This software is copyright © 2015 by G. Casati.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 121:

=back without =over