What is good resource to take a look on puppet code? - deployment

Is there something like Chef's open recipes on github which is recognized by community?
I am starting building system with puppet, but tutorials are not enough and stuff on github is in the late stages of development.

The Forge - http://forge.puppetlabs.com.
Although a lot of the modules on GitHub are complete too.

You might want to check out the United States Government Configuration Baseline manifests as well.

Related

build Golang release binaries for Github

I'm looking for ideas on how to easily build binaries for common platforms for a Golang project, for release on Github.
I already know how to manually do releases, using Github's instructions at Creating Releases. And I'm currently doing releases using aktau/github-release, but this requires manually logging into different machines (OSX, Linux, Windows) and doing the release.
Benedikt Lang has blogged about using Travis-CI (which I'm yet to experiment with). But I presume the public Travis will only build binaries for Linux.
Any suggestions?
You are most likely right about the Travis CI only building in Linux as go cross-compilation requires you to build from source and build other go executables. Like RoninDev suggested, I would suggest that you setup your own cross-compilation build environment by following the blog post:
http://dave.cheney.net/2012/09/08/an-introduction-to-cross-compilation-with-go
It is quite easy, and only takes about 10 minutes. After you have that, a build tool such as Jenkins will give you the controls to kick off a build for the desired platforms (Mac, Windows, Linux, etc) and then push out git releases for each one.
Thanks for all the suggestions and answers that were given. Cross-compilation was what I was looking for, and Dave Cheney's blog post was a good start.
However I found a better solution - laher/goxc - "a build tool for Go, with a focus on cross-compiling, packaging and deployment". It was inspired by Dave Cheney's work, and also includes deploy tools for Github - just what I was looking for. (For example, I used it to release soniah/awsenv)
I created goreleaser to do just that.
You can try it out if you want :)

Using OBR on Virgo 3.5

I'm looking for a neat way to deploy and manage bundles on our Virgo container, but also want to ensure that should we want to move from Virgo in a few years, we're not heavily tied to it. We're using Maven, so get OBR for free, which could save us some work having to maintain a list of the dependency chains.
With that in mind, after having read this article;- How to deploy OSGi apps and dependencies? and some the Virgo 3.5 docs, I'm slightly at odds about the best approach.
The Virgo docs suggest using the plan mechanism, but this ties our deployment descriptors to Virgo (not what I'm after). The article suggests I can use OBR through the GoGo console, which now ships as standard with Virgo. However, when trying to use this console to manage OBR, all I get is
osgi> repos add /home/fuzzy/.m2/repository/repository.xml
No repository admin service available
I've done some more hunting through the Virgo docs, but can't find anything in reference to OBR - only bug reports suggesting that some of the OBR commands have been left in the GoGo shell, inappropriately.
I've also written to the Virgo forum, but no-one seems to really want to help there. Before I go down the route of tying us to Virgo plans, I thought I'd have a quick go here.
Any help, greatly appreciated! Thanks in advance.
As suggested, downloaded and installed org.apache.felix.bundlerepository-1.6.6.jar - however, get exactly the same error. Asked the same question of the Virgo user group, and the answer that came back is that OBR is not supported. Maybe I'm missing something here, but there's very little information about on this topic. If you know better - please update this thread for the sake of others!
The message is quite clear - you need a repository admin service. Felix provides an implementation (download Bundle Repository).

Could you use Nuget / OpenWrap to manage remote deployments?

I haven't thought this through to completion, but it seems that if nuget is a tool for managing the inclusion of packages in a known location, could it not be used as a deployment tool for web servers (a website being just a very large package itself)?
A service running on the web server would ping a nuget server for updates, and install them when available. There would have to be some additional management (recycling app pools, making sure that all your webservers don't update at the same time etc.), but I think it could work?
Any thoughts?
Yes that's definitly on the roadmap for openrasta/openwrap, so it's not a crazy idea. Some people already have done some of that work themselves.
This sort of thing is usually known as a Continuous Integration (CI for short) setup. You could probably cobble something together with Nuget but there are already some pretty good tools out there. Cruise and TFS to name a couple.
If you're looking for a mad scientist project though, carry on and let the community know what you come up with!

Choosing the right build and deployment tools

I have a very large, mostly HTML/SSI site that I manage part-time and do weekly deployments on in addition do being an enterprise Magento developer. The site in question has ~5000 static HTML files and requires a lot of upkeep to manage deployments.
In addition to that site, I manage numerous Magento installs. I currently manage them from SVN and do exports/checkouts from various production and qa branches/tags.
While this is manageable, I don't get some of the things that I know build tools provide. Some of those features would be:
Automatic Minification of CSS/JS
Revision History
Multi-server deployment
Runtime configuration
Stats of broken builds/build time/deployment frequency
Integration with Testing frameworks
The three tools I've been reviewing are
Apache Ant
phpUnderControl
Capistrano (at the insistence of a friend of mine who is a RoR dev)
I briefly looked at Hudson, and had a ton of problems trying to get it up and running.
My Questions:
What is the upside/downside of going to this type of strategy?
Any hidden pitfalls that you've experienced?
Which tool do you think would best fit for the deployment/management of the HTML site?
Does anyone have experience with deploying distributed Magento from a deployment/build management system?
Thanks in advance...
Update
Still no movement here, so I'm going to ask this:
Should I rather rebuild in HTML5 Boilerplate which has Ant build scripts out of the box? This would afford me the ability to use Ant, but the build scripts are already pre-made so I have a good starting point. Your thoughts and suggestions are welcome.
I've got one more tool for you to review: Jenkins (earlyer: Hudson).
Its a great tool to run and control your builds. Furthermore you can remote the console and get notifications via Jabber protocol.

Best Practice: Erlang Application Deploy on windows

When deploying a ready to use erlang application I don't want the user to
Find the right erl release on the
internet.
Install the erl vm
unzip and decide a location for the beam files (with the application)
read a readme
modify anything that even looks like a config file
I have a couple of ideas of what could be a way but I would like to get some input.
SAE (stand-alone Erlang) used to be a pretty good solution for situations like you describe, but that no longer seems to be maintained.
Although I've never used it myself, CEAN seems like it might come close to what you want: it offers a self-extracting installer (though not for Windows at present) and the option to deliver a customized minimal Erlang framework.
There is also Erlware.
At our core we host public
repositories containing reliable
Erlang OTP-compliant applications. Our
repositories enable developers to use
software written by the Erlang
community and to publish and
distribute their own software.
It's more backend orient though, so not a complete solution.
The reltool application first released with Erlang R13B02 is aimed at solving this issue. Note that it is currently a beta release (version 0.5).