= Welcome to Dploy Wiki = = Design Ideas around a dploy.org project = Currently we have great pieces of software such as [http://linuxcoe.sourceforge.net LinuxCOE] and [http://www.mondorescue.org MondoRescue] to manage server deployment from an automatic installation manner or from an imaging manner respectively (multi-distro support in both case). I'll later use the word deployment meaning both scenarios. It would be great to associate the 2 software under a common GPL ombrella to create a multi-purpose deployment server that would allow: * to deploy a known or unknown server with whatever method from a central place * to manage centraly in a database every information related to the machine deployed. The set of tables could be in a standalone database or integrated in other management platform which are open to such integration ([http://www.hp.com/go/hpsim HP SIM], [http://ocsinventory.sourceforge.net/index.php OCS Inventory]). * to take in account hardware particularities in the deployment (using manufacturer available tools and/or opensource tools) * give a standardized method on how to setup such a deployment server from scratch, including mirroring instruction and automatic mirror structure creation from a set of ISOs. * provide a web interface (what else :-) for the mangement of the systems deployed or to be deployed. Should work in both text and graphical environment for easiest usage (lynx compliant) * Modular approach of deployement (new features should be easily added) * architecture neutral (with initial support of i386, x86_64 and ia64), and of course distribution neutral. This web page has been written following multiple discussions around these topics with J. Vance, B. Gartner, L. Mayes, G. Renaud, L. Bouchard and many others. = Technical ideas around a dploy.org project = * use a standard protocol such as HTTP, and apache+wget to allow communication between the machine deployed and and deployment server. This would be the prefered way of exchanging informations (hw inventory typically) * mindi (minimal boot environement) could be used on the machine deployed at first run, through media or PXE. Or it could also be launched on an already deployed server. * mindi could also integrate other required components such as lshw, ssst tools, or other manufacturer tools based on a future set of configuration files provided in mindi 2.x * the inventory is stored in the server DB (standalone RDBMS, or integrated in another tool) and will be maintained as oprations are made on the machine, as well as some status. * following reboot of the server will trigger the installtion planned (deployment through LinuxCOE or image deployment with mondo) * Full support of proliant hardware (ILO - Raid - Firmware updates) * For security reason most of the scripts run as dploy user (not root) == Interface functions == * list of servers (automatic addition of PXE based servers, manual addition for others) * assigning a task to a machine/group of machines * (proliant) manage already discovered servers (power on, off... ILO functions) * delete servers to restart discovery / installation * group servers to apply the same job to multiple servers * (proliant) firmware update * (proliant) link to admin page (2381) * link to webmin page (10000) * (proliant) link to ACU (started on demand before launching the interface) * launch any commands thru SSH (password or public key protected) * launch an imaging job == Proposed Requirements == * Perl * Perl DBI * dhcpd * MySQL, PostgreSQL or file * Perl CGI or TT * tftpd * pxelinux == Concerning trac == * TracGuide -- Built-in Documentation * [http://projects.edgewall.com/trac/ The Trac project] -- Trac Open Source Project * [http://projects.edgewall.com/trac/wiki/TracFaq Trac FAQ] -- Frequently Asked Questions * TracSupport -- Trac Support For a complete list of local wiki pages, see TitleIndex. Trac is brought to you by [http://www.edgewall.com/ Edgewall Software], providing professional Linux and software development services to clients worldwide. Visit http://www.edgewall.com/ for more information.