Archiv:Devops Meetup: Unterschied zwischen den Versionen
Japhy (Diskussion | Beiträge) |
Japhy (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 11: | Zeile 11: | ||
== Next meetup == | == Next meetup == | ||
Tue., '''2012- | Tue., '''2012-06-19, 19:00''', [[Lage|Metalab]] Library | ||
=== Agenda === | === Agenda === | ||
* | * TBA | ||
== Presentation/topic propositions for future == | == Presentation/topic propositions for future == | ||
Zeile 91: | Zeile 86: | ||
== History == | == History == | ||
=== 2012-05-29 === | |||
* Continuous Integration Packaging with FPM -- [[User:japhy|japhy]] | |||
** Code snippets with comments for the build system: https://gist.github.com/2823575 | |||
** Vagrant, a convenient command-line tool for running VirtualBox virtual machines (VMs): http://vagrantup.com/ | |||
** FPM (Effing Package Management), the main actor: https://github.com/jordansissel/fpm/ | |||
** Buildbot, the continuous integration server: http://trac.buildbot.net/ (alternative for open source, Travis CI: http://travis-ci.org/) | |||
** Articles about setting up Buildbot by Jacob Kaplan-Moss, creator of Django: | |||
*** Part 1, http://jacobian.org/writing/buildbot/ci-is-hard/ | |||
*** Part 2, http://jacobian.org/writing/buildbot/configuration-and-architecture/ | |||
** Runit, a sane reimplementation of Dan J. Bernstein's daemontools under BSD-like license. A tool for managing long-running services (I'd say "daemons", but they don't daemonize – they are managed by runit when running in the foreground): http://smarden.org/runit/ | |||
** LXC - Linux Containers, a lightweight userspace virtualization for Linux (may be used for real clean builds or for testing the packages): http://lxc.sourceforge.net/ | |||
** The Debian Policy Manual: http://www.debian.org/doc/debian-policy/index.html#contents | |||
FPM is a command-line tool that converts between different package formats (from: local directory, ruby gem, php pear, python module, node.js npm package, deb, rpm; to: local directory, deb, rpm, solaris, tar). The "local directory" pseudo-format allows for easy creation of quick-and-dirty packages that Just Work, short-circuiting all the layers from the Debian Policy Manual all the way up to dh_make with one quick script call. FPM doesn't care about actually building your stuff (as in: unpacking, configuring, compiling, etc). It just takes directory you put it into, and turns it into a package. To prepare the compiled files and put them in the right place first is your job. So is specifying the dependencies - there are no automatic dependencies on dynamically linked libraries. | |||
Workflow for the continuous integration using bits & pieces from the gist: | |||
** On developer's workstation, "vagrant up" command brings up new VirtualBox VM with clean Debian and sets up a clone of the "packages" repository with a local branch | |||
** "vagrant ssh" to the VM, go to the packages repo, prepare or modify new package, test it | |||
** "git push" from the VM to the "develop" branch on the host server | |||
** "git pull . develop" on the host server's master branch to merge | |||
** "git push" to central git repo | |||
** buildbot (continuous integration server) picks up the commit | |||
** buildbot builds changed package and adds it to the apt repo | |||
** new package is available to clients via apt-get within minutes from the push. | |||
=== 2012-02-21 === | === 2012-02-21 === |