Sparrowdo automation. Part 2. Dealing with http proxy servers.

This is a next post in Sparrowdo automation series.

The previous one was Installing CPAN packages.

Sometimes having internet restricted by http proxy usage could be a problem.

Recalling our latest post on installing CPAN packages, what if we have a server with http traffic only available under some http proxy server? Then we would fail to install any CPAN packages here, and would have a similar error from cpanm client:

$ cpanm CGI

! Finding CGI on cpanmetadb failed.
--> Working on CGI
Fetching http://www.cpan.org/authors/id/L/LE/LEEJO/CGI-4.31.tar.gz ... FAIL

Ok. Passing http proxy is possible when using sparrowdo. Let's get back to the cpan-package plugin.

$ cat sparrowfile

task_run  %(
  task => 'install CGI module',
  plugin => 'cpan-package',
  parameters => %(
    list => 'CGI',
    http_proxy =>  $Sparrowdo::HttpProxy,
    https_proxy => $Sparrowdo::HttpsProxy,
  ),
);

Now let's run sparrowdo with some http/https proxy server parameters:

$ sparrowdo --http_proxy=http://my.internal.proxy:3128 --https_proxy=http://my.internal.proxy:3128 --host=192.168.0.1

That is it. Now sparrowdo will succeed in installing CPAN module CGI on the target server with http proxy restricted internet.

Bye! And keep your eye on following sparrowdo tutorials ... Next I am going to talk about installing system packages using sparrowdo.

Please delete old releases from your CPAN directory

The Perl NOC have informed the PAUSE admins that the CPAN Master is starting to get tight on diskspace. This is only a temporary constraint — at some point there will be a lot more space, but for now we need to free up some space.

A lot of space is being taken up by old releases, long since superseded. Please delete these old releases if you have some, and the NOC will stop being alerted.

Remember: everything you've ever released to CPAN will always be available in your BackPAN author directory. My PAUSE id is NEILB, so my BackPAN directory is:

backpan.perl.org/authors/id/N/NE/NEILB

How to Get a CPAN Module Download URL

Every so often you find yourself requiring the download URL for a CPAN module. You can use the MetaCPAN API to do this quite easily, but depending on your use case, you may not be able to do this in a single query. Well, that's actually not entirely true. Now that we have v1 of the MetaCPAN API deployed, you can test out the shiny new (experimental) download_url endpoint.

Read the full article.

Dancer 0.200003 Released

Dancer 0.200003 is on its way to a CPAN mirror near you. I'd like to give a big shout out to the rest of the Dancer core team and our awesome community members for their work in bringing this release to fruition.

There are several changes in particular worth noting:

- There is a security fix for Dancer2::Session::YAML that prevents accepting a bad session cookie value from the client. Thanks SysPete!

- There was a swift response to the breakage caused by YAML 1.16. Originally, we patched Dancer2 to require a minimum version of 0.86 and a maximum version of 1.15. Thankfully, YAML was patched and updated, and Dancer2 will again work with the latest YAML.pm.

For your convenience, here's the full changelog:

Dist::Zilla - Why you should use @Starter instead of @Basic

I posted previously about a new "starter" bundle for Dist::Zilla, the CPAN author's automation tool. I'd like to briefly try to answer the question: "Why should I care?"

If you're already happily using Dist::Zilla with an extensive configuration or plugin bundle of your own, this bundle isn't for you. But maybe you can get some ideas from the included plugins, I added a few to my author bundle!

If you're looking to get started in Dist::Zilla, the [@Starter] bundle makes a great starting point. Usage is similar to [@Basic] and all of the same information in the dzil.org tutorial applies.

Sparrowdo automation. Part 1. Installing cpan packages.

Here I start a series of posts on sparrowdo configuration management tool usage.

Installing sparrowdo

Sparrowdo implies installing software on both master and target host. Following "push" approach one should install a sparrowdo on master host where from he starts a ssh sessions against target hosts to be configurable:

$ ssh master.host 
$ panda install Sparrowdo

Once you install a sparrowdo you need to install a sparrow client on every host where you want to start deployments. Sparrow acts like client to carry out deployment tasks initiated from master host.

$ ssh target.host 
$ cpanm Sparrow
$ yum install curl

Here is simple schema of master -> target hosts interaction:

  +-----------------+
  |                 |    ssh
  |                 |------------> < host-1 > 192.168.0.1
  | <master host>   |    ssh
  | {sparrowdo}     |------------------> < host-2 > 192.168.0.2
  |                 |    ssh 
  |                 |-----------------------> < host-N > 192.168.0.3
  |                 |
  +-----------------+


  +-------------+
  |             |
  | <host>      |
  |             |
  | {sparrow}   | 
  | {curl}      |
  |             |
  +-------------+

That is it. Now you are ready to start your very first deployment with sparrowdo. As the title of the post has we want to install cpan packages.

Sparrowdo scenarios

Perl 5 Porters Mailing List Summary: June 30th - July 5th

Hey everyone,

Following is the p5p (Perl 5 Porters) mailing list summary for the past week. Enjoy!

PRC 2016 - Second Trimester

This second semester got me modules owned by well known community members. I expected that to make my life easier, namely to prepare more relevant PRs, but unfortunately it did not work that way.

For April, I got Dist::Zilla. My PR was the documentation of 'Dist::Zilla::App::Tester', but I never got any comment: https://github.com/rjbs/Dist-Zilla/pull/543

For May, I got WWW::xkcd. For this I could get an answer about what might be a relevant PR. I added a method to fetch random comic strips. I even got some comments, and I adapted my PR. But it not got merged: https://github.com/xsawyerx/www-xkcd/pull/5

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is hosted by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.