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
Start from
development
, launchcpan Task::Viral
Create folders for mcpani
mkdir -p $HOME/.mcpani/local mkdir -p $HOME/.mcpani/private
and write
$HOME/.mcpani/config
configurationcat <<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
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
.
Launch a cpanmirrorhttpd to serve installed packages to
test
, for instance on port2000
cpanmirrorhttpd --root $HOME/.cpan/sources --port 2000
Login into
test
and configure cpan to install packages fromdevelopment
.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 © III Millenium 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.