Hi Darrel, I've created some shell scripts for crowbar multi-node setups back in the day https://github.com/iteh/crowbar-virtualbox Maybe this is starting point for what you want to accomplish.
- Edmund 2013/11/21 Darrel O'Pry <darrel.o...@gmail.com> > > On Thu, Nov 21, 2013 at 6:45 AM, Adam Spiers <aspi...@suse.com> wrote: > >> Darrel O'Pry (darrel.o...@gmail.com) wrote: >> >> > I hear a lot of knee jerk throw everything out and start over >> undertones. I >> > don't that that is a wise idea as it loses history. One of the things I >> > love about git is history. Also being an agile developer I focus on >> > continuous improvement and rarely like to start things over. >> >> Exactly Darrel! I understand where the instinct for "let's start >> afresh" comes from, but really it's only sweeping ugly stuff under the >> carpet. And it's not just git history we'd risk losing - it's issue >> history, wiki history ... >> > > It also doesn't address the workflow issues that created the current state > of things... It's more important to address a possible cause rather than a > symptom. > > <snip> > >> >> > 2) On boarding new developers. >> > <snip> > >> > Beyond that we go our of our way to make development across platforms >> easy. >> > We typically use virtual box and vagrant as a starting point to >> normalize >> > everyone's development environment and share the git checkout with the >> > vagrant. This way everyone is building on the same build environment. >> We >> > typically share the git checkout from the VM host to the build VM. The >> > build, run, test within the VM. You just expand the number of vagrants >> you >> > use to test on other platforms. I tend toward veewee if I need to build >> and >> > track any sort of super custom vagrant base boxes. >> > >> >> Standardising the dev environment is a great idea. There's still some >> remaining work to do in order for this to be SUSE-friendly though. >> Most SUSE-oriented folk prefer KVM to VirtualBox, and last time I >> looked, vagrant's support for kvm / libvirt still needed work. This >> would be well worth completing. Secondly, building openSUSE-based >> ISOs is still a work in progress (I worked with John on this last >> weekend). >> > > This is a situation where I feel the needs of the project to be accessible > as a whole, should override the preferences of a few participants. > VirtualBox is a free cross platform desktop virtualization environment. It > is available to windows, mac, and linux developers. It is accessible for > both corporate teams and private hackers. The public shared project should > focus on the most accessible development tools possible. Try to cater to > kvm, vbox, vmware will just add unnecessary complexity to on boarding a new > developer. > > It's totally doable, but it means that new developers have more decisions > to make to get started on the project and someone has to spend time > planning, testing, and maintain support for multiple virtual box providers. > It means time will be spent debugging whether the problem is the > virtualization layer or crowbar. Time better spent making crowbar more > awesome. > > If the team at SUSE or any other team is really insistent on maintaining > another development environment, they should be welcome to fork and manage > their own tooling to convert the vboxes to kvm. Alternatively, get involved > in the vagrant and veewee communities to streamline the generation and > publishing of consistent virtual machines for multiple virtualization > providers. > > Even then tools like veewee don't make much sense in a developer's > workflow. I've tried fitting things like veewee into developer workflows > with the idea of letting everyone build images from preseed and > kickstart... Too much time is spent building images and drinking coffee for > simple package additions. > > The approach our teams use is to build minimal vboxes using veewee. We > mostly use debian/ubuntu so we switch the tasksel from standard/server to > minimal to reduce the OS footprint in the VMs. We also remove ruby, chef, > and puppet to avoid conflicts with whatever we'll be installing. We store > the veewee definitions in our code repositories so they're tracked with > code, but we don't require developers to build the vboxes. We build and > publish them to a private website where our team can access them. We don't > do any configuration via veewee except setting up ssh and public key access > (necessary for vagrant). We also use private keypairs in lieu of the public > vagrant keys for our private projects. > > All of the dev environment configuration is handled by vagrant > provisioning shell scripts.. typically config.vm.provision "shell", path: > "bootstrap.sh". > > There is of course a need to expand on this to build a dev environment for > a project like crowbar that needs multiple vm for building and needs to > setup a rather complex testing environment with mutiple vms. The nice thing > is you can also ship a testing environment with vagrant and the same boxes. > This makes it possible to > > vagrant up dev > vagrant up ubuntu12.10-admin > vagrant up bare-node1 > vagrant up bare-node2 > vagrant up bare-node3 > vagrant up bare-node4 > > Which could all be wrapped up in a grunt, make, rake, shell script task... > There could even have a grunt watcher kicking of environment re-builds and > test locally on commit. It would probably be wise to expand testing to KVM > and other virtualization providers and testing stacks... > > When we've helped clients implement deployment and testing of other > opensource projects in private environments with more rigorous testing and > QA requirements, We've created a separate internal deployment repository > that includes the upstream code as a sub-module and provides the project or > implementation specific continuous deployment pipeline around the existing > public project tooling. > > Feel free to reach out directly if anyone wants to implement this stuff. > I'm glad to help if people are interested in the community can agree on a > direction, but my time to contribute actual code to open source projects is > limited by my own consulting practice. We've also been unfortunately lax in > building model repositories as starting points, and I'm unable to share > examples of our client work. I do have an interest in testing out tooling > and workflows in lots of different development environments and settings. > Crowbar is a pretty complex case from a continuous deployment perspective > and the virtual development to bare metal deployment is a an important use > case to work with. > > > > 3) Maintenance >> > >> > We use jenkins extensively to review our pull requests. We do a number >> of >> > smoke tests including linting to enfoce code style, fxcop/sniffing/etc >> to >> > look for common code mistakes, code coverage. We lean heavily on peer >> > review of pull requests. Our team is distributed and we don't always >> have >> > the luxury of pairing, instead we do a code review with each pull >> request >> > that includes a developer on the project and a developer from another >> > project. It serves to cross train, and have someone less familiar with >> the >> > project who will not take the knowledge one develops writing and >> working on >> > the code for granted. >> >> +1. Of course Crowbar doesn't use Jenkins yet, but it probably could >> in the future if we reduced the number of git repos and wanted to >> switch to it (I'm not religious either way - github is good enough for >> our code reviews IMO). > > > We actually use GitHub for everything. Jenkins is pretty easy to integrate > with GitHub and setup to update your pull requests with testing... We run a > Jenkins server per GitHub repository in the cloud and run our build agents > on physical hardware with virtual box and vagrant available so we can do > all of our unit testing inside the same development environment as the > developers without having to do a lot of customization in our build farm to > support projects. > > > _______________________________________________ > Crowbar mailing list > Crowbar@dell.com > https://lists.us.dell.com/mailman/listinfo/crowbar > For more information: http://crowbar.github.com/ > -- Edmund Haselwanter Head of Consulting and Training / Leiter Consulting und Training Körnerstr. 7-10 10785 Berlin T: +49 171 7607049 F: +49 30 577018099 cloudbau GmbH, Körnerstr. 7-10, 10785 Berlin Geschäftsführer: Sören Blom, Hendrik Volkmer, Edmund Haselwanter Registergericht: AG Hamburg, HRB 125114 Steuernummer: 37/223/21966 www.cloudbau.de
_______________________________________________ Crowbar mailing list Crowbar@dell.com https://lists.us.dell.com/mailman/listinfo/crowbar For more information: http://crowbar.github.com/