Follow Us on Twitter
by Sam Ramji on May 31, 2007 05:36pm
I got the chance to meet many extremely smart developers last month at SambaXP, the annual Samba developer conference. After attending I’m convinced that the Samba team knows more about how Windows networking works than most Microsoft developers.
One of the most informative sessions I attended was led by Dr. David Holder, an expert on IP networking and Windows/Linux interoperability. Specifically, he focuses on the IPv6 protocol, implementation, and interop, where he sees great opportunities for improved service levels in a range of applications and environments, but also sees a coming wave of interoperability problems between IPv6 implementations on various platforms.
He’s done some very slick stuff in getting Samba to work with Windows Vista and Longhorn’s IPv6 stack, which is encouraging, and lays out a roadmap for future interop work between the platforms.
We are posting the link to his slides along with this podcast of his interview, and David will be available to answer questions posted to the comments section of this page.
Cheers,
Sam
Links:
Dr. Holder's SambaXP “Vista and Samba with IPv6” presentation:
samba-and-vista-with-ipv6v2.pdf
Details regarding how to IPv6 enable Samba4:
http://www.ipv6consultancy.com/ipv6blog/?p=12
Attachment: davidholder.mp3
by kishi on May 25, 2007 04:18pm
Background: This is Part 4, continuation of the series of 8 blogs I’m doing on Systems Manageability. In this specific blog, I will focus on and explain the second part of the “ontology” which is “Systems Configuration”
Level-Set: System Configuration and Management encompasses all tasks related to the configuration of a host in a standardized and (when possible) centralized way. Many projects in this category provide a common configuration interface, either command-line or GUI-based, designed to ease typical administrative tasks. Other projects, specifically Cfengine, provide a higher level policy-based system to provide consistent configuration and state management for a set of systems. Again, in this case there’s lots of different tools out there that can be used but we have focused on the most popular ones such as Webmin, YaST, SSH, VNC and Cfengine. In the paragraphs to follow, we have attempted to lay out our understanding of these tools after using them in the OSSL:
I. WEBMIN: "Webmin is a web-based interface for system administration for Unix. Using any browser that supports tables and forms (and Java for the File Manager module), you can setup user accounts, Apache, DNS, file sharing and so on." Webmin is very modular in design, allowing third-party developers to add support for a particular service or task relatively easily. Many of the tasks involve easing or automating system administration tasks, or editing a configuration file using a specific syntax. Webmin is currently supported by OpenCountry, a company that sells Linux management solutions. The OpenCountry website includes information about Webmin, including two variations of the system that they support.
II. YAST: YaST (Yet another Setup Tool) is an OS installation and configuration utility used primarily in SUSE-based systems. YaST typically serves as the primary control panel interface in, and can be used for a number of configuration tasks – such as adding and removing software, patch management, user management, device configuration and for configuring individual services and daemons. Other common administration tasks such as obtaining system information and reading server logs is also possible via the YaST interface. All of the aforementioned YaST features are implemented as modules, each of which provide a specific functionality or perform certain tasks. These tasks typically involve editing one or more text configuration files on the system in a specific format to configure a specific service or daemon. On other Linux or UNIX-like systems, these tasks are typically performed manually via the command-line.
The YaST utility is very modular in its design, allowing Novell or other third-party providers to add modules into the YaST interface to configure a particular device or service. Many of these modules work independently of each other, and as such are often packaged as individual RPM packages that may be added or removed depending on the software and devices that are installed on a system. YaST modules are written using a scripting language specific to YaST called YCP. Other scripts, such as Perl or shell scripts can also be utilized via a YaST module to perform a particular task. A CIM module for YaST is also distributed with SLES10, which provides a client interface for CIMOM (Common Information Object Manager) to other YaST2 modules. It seems the most common administration task for which YaST is used involves setting up individual package repositories (discussed further in the Patch Management and Maintenance), adding or removing software packages and configuring or initiating online updates. YaST is capable of searching for and locating software on remote repositories, retrieving the software packages, resolving package dependencies, checking the cryptographic signature of the package (if available) and then installing the software on the system. Multiple repositories can be configured. Repositories can be located on a hard disk or CD/DVD, or on a remote system obtainable via HTTP(s), FTP, NFS or CIFS. Once a repository is configured it can then be indexed for later searching. The software search functionality is very powerful, allowing one to search for appropriate software packages using many of the attributes available in the RPM package header – such as the description or contents of the package. Besides software management, the quality and completeness of many YaST modules varies. Many modules (such as the log viewing modules) offer minimal functionality, and only work well enough to provide a few basic configuration options. Complex server configurations will therefore still require one to edit text-based configuration files by hand, or use another configuration engine for the task, such as Webmin. However, many other common tasks, such as configuring display settings or a printer, can be done entirely via YaST.
III. SSH/SCP/SFTP: SSH (Secure SHell) is likely the most widely used remote administration tool for Linux and UNIX-based systems. The typical SSH toolset includes the SSH client and server, as well as the SCP and SFTP client applications for copying files, both of which simply utilize the ssh binary on the backend. The following excerpt is from the OpenSSH project home page: "OpenSSH is a FREE version of the SSH connectivity tools that technical users of the Internet rely on. Users of telnet, rlogin, and ftp may not realize that their password is transmitted across the Internet unencrypted, but it is. OpenSSH encrypts all traffic (including passwords) to effectively eliminate eavesdropping, connection hijacking, and other attacks. Additionally, OpenSSH provides secure tunneling capabilities and several authentication methods, and supports all SSH protocol versions. Since most any task can be performed via the command-line, the OpenSSH utilities are likely the most critical component for a Linux administrator to have available. The remote copy and command execution options allow one to build, deploy and run a script on a number of machines relatively quickly and securely. OpenSSH is typically installed by default in most Linux-based distributions, although in some distributions the server may by default be disabled or blocked by the firewall. "Most common uses of SSH are:
IV. Cfengine: “Cfengine, or the configuration engine is an autonomous agent and a middle to high level policy language and agent for building expert systems to administrate and configure large computer networks. Cfengine is designed to be a part of a computer immune system. It is ideal for cluster management and has been adopted for use all over the world in small and huge organizations alike.” Cfengine consists of a userspace application called cfagent and a host of other utilities that reads and parses a series of text configuration files and performs tasks on the host system based on the configuration. The configuration syntax of Cfengine is actually a high-level policy language that allows cfagent to test the system’s configuration and perform corrective actions based on those tests. For example, cfagent may test to assure that a certain line of text exists within a configuration file, and if not it will add the text and restart the associated service. The cfagent utility is typically run on an hourly (or so) basis via cron, a task-scheduling application. This assures that mis-configurations will be found and corrected within a reasonable time frame.
The policy simply tests to make sure an entry for user root exists within the /etc/shadow file, and also checks to make sure the password matches. This assures that all systems have the same password for the root user. The configuration of Cfengine can become very complex, which would likely not surprise those who have had experience with the tool. The structure of the policy language eases this dilemma a bit, as platform definitions can be made and inherited by other blocks to help determine the appropriate action to take. The configuration is essentially a high-level policy language, and thus the various tests must be built and scripted manually. The toolset is, however, enormously powerful when implemented correctly. But as with many open-source technologies, the learning curve can be quite steep, and one must study the complexities of the tool before it can be competently used in a production environment. A version of Cfengine has been ported to the Windows platform to run under Cygwin.
editfiles: # We have different passwords for lab systems and workstations. linux.shadowpasswords.md5passwords.(!workstations):: { /etc/shadow SetLine "root:$1$383J33RL$ XXXXXXXXXXXXXXXXXXXXXX:12984:0:99999:7:::" AppendIfNoLineMatching '^root:.*' LocateLineMatching '^root:.*' ReplaceLineWith “root:$1$383J33RL$ XXXXXXXXXXXXXXXXXXXXXX:12984:0:99999:7:::” } linux.shadowpasswords.md5passwords.workstations:: { /etc/shadow SetLine “root:$1$gcGWA0qS$YYYYYYYYYYYYYYYYYYYYYY:13027:0:99999:7:::” AppendIfNoLineMatching ‘^root:.*’ LocateLineMatching ‘^root:.*’ ReplaceLineWith “root:$1$gcGWA0qS$YYYYYYYYYYYYYYYYYYYYYY:13027:0:99999:7:::” } Example Cfengine policy to check the password for the root user.
editfiles: # We have different passwords for lab systems and workstations. linux.shadowpasswords.md5passwords.(!workstations):: { /etc/shadow SetLine "root:$1$383J33RL$ XXXXXXXXXXXXXXXXXXXXXX:12984:0:99999:7:::" AppendIfNoLineMatching '^root:.*' LocateLineMatching '^root:.*' ReplaceLineWith “root:$1$383J33RL$ XXXXXXXXXXXXXXXXXXXXXX:12984:0:99999:7:::” } linux.shadowpasswords.md5passwords.workstations:: { /etc/shadow SetLine “root:$1$gcGWA0qS$YYYYYYYYYYYYYYYYYYYYYY:13027:0:99999:7:::” AppendIfNoLineMatching ‘^root:.*’ LocateLineMatching ‘^root:.*’ ReplaceLineWith “root:$1$gcGWA0qS$YYYYYYYYYYYYYYYYYYYYYY:13027:0:99999:7:::” }
Example Cfengine policy to check the password for the root user.
The following example Cfengine policy checks for the existence and the contents of the /etc/cron.d/yast2-online-update file for SUSE systems. If necessary it creates the file, and writes a cron entry into the file to schedule a daily check for updates and patches. Upon completion, it then runs the command “/etc/init.d/cron restart” as defined in the suse.restartcrond definition.
editfiles: suse:: { /etc/cron.d/yast2-online-update DefineClasses "restartcrond" Umask 077 AutoCreate BeginGroupIfNoLineMatching "^.*[\s\t]+root[\s\t]+online_update" AppendIfNoSuchLine "30 3 * * * root online_update" EndGroup } shellcommands: suse.restartcrond:: "/etc/init.d/cron restart" Example Cfengine policy to assure that SUSE systems check for updates daily.
editfiles: suse:: { /etc/cron.d/yast2-online-update DefineClasses "restartcrond" Umask 077 AutoCreate BeginGroupIfNoLineMatching "^.*[\s\t]+root[\s\t]+online_update" AppendIfNoSuchLine "30 3 * * * root online_update" EndGroup } shellcommands: suse.restartcrond:: "/etc/init.d/cron restart"
Example Cfengine policy to assure that SUSE systems check for updates daily.
And that does it for the “Systems Configuration” section As always, please let us know if you found the above mentioned useful and any comments/feedback you may have. Thank you for tuning into Port25.
by MichaelF on May 24, 2007 06:15pm
It's happened to me and I'm sure it has happened to you: your software won't load and your data is now trapped inside your PC. The problem may be a hardware or a software failure, and the problem may seem to be irrecoverable. Yet often Linux can be used to help recover data that otherwise might be lost. This paper describes how one can use Linux to recover data from a non-functioning Windows machine.
Attachment: datarecovery.pdf
by Bryan Kirschner on May 20, 2007 07:53pm
I just read Bill and Sam’s “Business as Usual” post. It made me think about the fact Port 25 was established in part to apply the idea that “transparency increases trust” to the work we do with the lab. So I’m sitting down to do a blog entry that’s a bit longer than usual, but will provide transparency about why “business as usual” for me. I previously blogged about a project we were starting to look at usability, human-computer interaction (HCI) and design rationale in open source development. I want to share how that came about and what I work on every day, over a period of about 12 months.
Part 1: Andrew Ko at Carnegie-Mellon (hi, Andrew) and folks from Microsoft Research (you rock, HIP) have done fascinating work on “Information Needs in Collocated Development Teams:” (emphasis added):
[In] a two-month field study of software developers at Microsoft. We took a broad look, observing 17 groups across the corporation, focusing on three specific questions: What information do software developers’ seek? Where do developers find this information? What inhibits the acquisition of such information? In our observations, we found several needs. The most difficult to satisfy were design questions: for example, developers needed to know the intent behind code already written and code yet to be written.
[In] a two-month field study of software developers at Microsoft. We took a broad look, observing 17 groups across the corporation, focusing on three specific questions:
What information do software developers’ seek? Where do developers find this information? What inhibits the acquisition of such information?
In our observations, we found several needs. The most difficult to satisfy were design questions: for example, developers needed to know the intent behind code already written and code yet to be written.
Code itself was a poor conductor—let’s call it bad currency, for reasons that will become apparent later—for transmission of design knowledge. From the MSR paper:
code did not look like design; intent could rarely be inferred from code; programming languages only allowed a single, structural perspective on code, yet there were many other perspectives on which developers reasoned about code
As a result, “the knowledge was primarily stored in the minds of developers. Consequently, developers relied on each other for design knowledge.” A common way to do this was face-to-face contact. Another way to do this was through email.
Part 2: Flore Barcellini (hi, Flore) is a research at INRIA (France) who has done a fascinating analysis of “Thematic Coherence and Quotation Practices in OSS Design-Oriented Online Discussions.” The implication is that traversing threads may be a lot more “lossy” than one might think because the “tree” you can build following transmission of knowledge using quotes can differ (from the abstract):
We show how quotation practices can be used to locate design relevant data in discussion archives. OSS developers use quotation as a mechanism to maintain the discursive context. To retrace the thematic coherence in the online discussions of a major OSS project, Python, we follow how messages are linked through quotation practices. We compare our quotation-based analysis with a more conventional analysis: a thread-based of the reply-to links between messages. The advantages of a quotation-based analysis over a thread-based analysis are outlined.
All but a few open source projects do not receive investment from vendors and do not have material revenue streams—for these “community-driven” projects, face-to-face contact would obviously be prohibitively expensive. So in reliance on code and email to transmit design knowledge, they would seem to be dependent on a lossy medium (code-as-currency) and a lossy mechanism (mail threads).
Part 3: David Nichols and Michael Twidale (hi, Michael) have done research identifying usability & HCI challenges in open source development, thoughtfully articulating some of the issues and possible ways to evolve distributed development.
Part 4: I was left with the impression this is a scenario that is really not good for community-driven OSS—and, by implication, for any resource-constrained distributed development process (something applicable to end-user developers collaborating online, and perhaps small ISVs, communities large in both number and importance to Microsoft’s business).
After reaching this conclusion I contacted the Codeplex team (meet the team) to talk about Microsoft taking a role in developing new functionality that might help this scenario. But first we needed to establish a research program to figure out whether this was a good path to go down, and what to do. That led to contact with Jack Carroll, Paula Bach, and the current project.
The first public session we held on this was a special interest group (Usability and Free / Libre / Open Source Software) at the recent CHI 2007 conference. Jack, Paula, and I moderated. I’ll let notes mostly from Paula sum up one aspect of a great discussion that gave me ideas I’d never thought of before:
About 40 people (1/3 to 1/ 2 of whom were involved in open source projects as contributors or researchers) attended the CHI Special Interest Group (SIG) on Usability and Free/Libre/Open Source Software (FLOSS). The group raised many issues including the “code as currency” issue. In essence, if “code is the only currency’ can there be a “benevolent HCI dictator?” The currency problem arises when HCI people who don’t write code work on FLOSS projects, potentially preventing the common mechanism of the “benevolent dictator” who can arbitrate conflicts over coding from emerging in the design and HCI domain. An interesting benevolent HCI dictator experiment would be to have HCI people design and initiate an open source project (it could even be a rapid prototyping tool that could be used as currency between FLOSS HCI people and developers) and have developers work on the project with an HCI person as the leader. This would be interesting in terms of social dynamics and to see who prevails as the benevolent dictator: would the HCI person remain or would a developer move into the leadership position once code writing began?
This is what we do every day. I hope this provides a bit of a view over time into our daily work to be center of excellence for (1) understanding and (2) finding opportunity with open source: ways for Microsoft and open source to “grow together.”
(Speaking of growing together, if you were one of the companies invited to the Microsoft Open Source ISV Forum before OSBC, I hope to see you there.)
by billhilf on May 18, 2007 09:22pm
It’s been an interesting week, with people offering a range of opinions about what they think is happening in Redmond. Despite a lot of pontification, our strategy regarding intellectual property and open source has not changed – and it is not frivolous litigation or fear.
IDG did an article – it’s a far more accurate reflection of Microsoft’s IP strategy than the Fortune article from earlier this week. Andy Updegrove also has a thoughtful article on his site, and Gartner’s lead open source analysts have been clear to customers: “don’t panic.” Our strategy remains the same:
Microsoft was created by developers, for developers and is only successful through developers and customers. Developers who write Open Source software are participating in a worldwide community of practice and a spirit of collaboration. These are noble characteristics and Microsoft both applauds and supports this work.
We continue to champion projects like JBoss, Zend (PHP), and SugarCRM, as well as Firefox, openwsman, Bandit and thousands of others. We are building relationships and a track record here and we ask that you judge us on these actions. We will work with commercial and non-commercial developers to increase the availability and quality of open source on Windows and interoperability with Windows.
Our IP strategy has not changed. Where we have unique and valuable intellectual property (as indicated by our high scores on the science strength of our patents) we will seek to license it to commercial entities (such as Samsung and Fuji Xerox).
It’s not us versus the free world. It’s about commercial companies working together around IP issues – it’s business as usual.
- Bill Hilf and Sam Ramji
by billhilf on May 15, 2007 02:49pm
I have strong opinions. Those of you who know me personally know that I am not one to "follow the herd" and that I speak up. However, I need to comment on a recent story where I was quoted.
A few folks have emailed or called me about statements I said in the Bangkok Post about the ‘end of Linux’ and ‘there is no free software movement.’ My statements were shaped in a sensationalist way, not surprisingly, this isn’t the first time the press has used shock value to get headlines. It then hit Slashdot and the blogosphere where a couple hundred people have called me every name under the sun. I have a tough skin – need to in this job. But days like this suck, to be honest.
I get asked Linux related questions from the press, most of which are probably obvious to you. One of the questions I often get asked is about the development of Linux by free software developers. I answer this by saying that most customers who use Linux, use a distribution like Red Hat or Ubuntu or SuSE and that although there are certainly a lot of developers who work for free, most of the people who do the daily work on the Linux kernel are paid to do so. Typically they are paid by IT companies who have a commercial interest in Linux. This isn’t FUD, it’s reality (Corbet from LWN did a great analysis of this here citing “at least 65% of the code which went into 2.6.20 was created by people working for companies”). And I answer this question because I get asked about it in press interviews.
But I’m rethinking that last part. Mostly because I don’t think it matters. If the software is open, it’s open, that does not change based on who developed it or why. In this article it sounds like I say ‘because they are paid, then free software is extinct!’ which, of course, is silly. I know this and I think it’s a combination of me not being clear and this particular article shaping it in a certain direction. But I’ll take the blame: I shoved my foot in my mouth and it came across as idiotic.
I will also use this blog entry to clarify our work in the Open Source Software Lab. Here’s exactly what I tell my team, and the rest of Microsoft, on our strategy related to Linux and open source software:
-We compete with Linux and Unix servers with Windows server -Many customers run a mix of servers in the same environment, so we’ll need to interoperate -We want to grow the software ecosystem, including open source software, as it relates to Microsoft software
I believe that we can continue to compete with Red Hat or SuSE or Solaris for server business while we also work on interoperating and growing the software ecosystem. I believe there is a lot we can do to grow an Open Source on Microsoft environment, realizing that sometimes we will simultaneously compete and collaborate. It’s not schizophrenic, we work this way today with many other types of software, it’s the nature of being in a platform business and believing in choice.
I’m sure there’s also a lot of questions about the Fortune story on ‘Microsoft versus the Free world’ – more wonderful sensationalism – and I will write on that soon.
-Bill
by MichaelF on May 09, 2007 07:27pm
In addition to technical tips, blogs and video interviews, the Open Source Software Lab at Microsoft conducts a number of technical analysis and research projects throughout the year to help inform and solve key interoperability challenges between Microsoft and open source technologies. This particular research was conducted after reviewing data from our VPN research which was previously posted to Port 25.
Abstract:
This document provides an overview of Linux IPsec solutions as well as detailed discussions on configuring IPsec-Tools for interoperability scenarios between Red Hat Linux Enterprise 4 and Windows Vista Ultimate Beta.
Attachment: IPsec-Interop-Final.pdf
by hjanssen on May 03, 2007 07:01pm
Here we are, day two of the Apache Conference in Amsterdam.
I have been attending less tracks today, I seem to be ending up talking to a lot of people.
It is very enjoyable to see the reaction when I tell people that I am from Microsoft, and I work at the open source software lab at Microsoft.
So far nothing but positive reactions to me being there.
I had the pleasure of talking with, among others, Lars Eilebrecht, Roy Fielding and William Rowe. They are of course very active in the core foundation. Very enjoyable, and there seems to be synergy for future collaborations.
Okay, before I go into what all took place today, I wanted to finish up yesterday’s events. And I am going to severely reduce my long winded writing (yeah right).
Two tracks I went to that were of interest yesterday were ‘ mod_rewrite’, which finally had some more technical content in it. I would love to see more of these talks. How and when to use which mod_*.
The second one was given by Rebecca Hansen of Sun Microsystems. She talked about ‘Best practices for incorporating open source code in Commercial Production’. I did not think she spent that much time on what the subject seems to imply. Much more time was spent talking about how Open Source is now viable and you can and should switch to it because large companies are now going to provide you support and services for it; so you will be safe using it.
She also said that companies are much more willing to pay for support to get what they want instead of paying for a license and being stuck with a product.
I have to say that these comments where met with some skepticism from the audience. And the questions that followed clearly showed this.
General audience response was that they are very well aware that OSS exists because of a community, not because of a company. So without the community there is no product/service. Which made the statement that you now can switch to open source because large companies will provide you service on the community software is kind of odd. Several people I spoke with afterwards seemed to share my views of it.
I think there is a place for service orientated opportunities for companies. But they better realize that without a healthy community for the projects they are trying to provide service to there is no business opportunity. Community comes first.
Okay I will write some more about what happened today. But I ended up talking to a lot of people and did not attend all the tracks I set out to. And since it is late here on the other side of the planet, I am stopping here for today.
Till tomorrow.
Well, at least it is a little shorter this time :)
by kishi on May 03, 2007 03:29pm
I want to start this blog with a note of Thanks to Ajay Mungara, the Manageability Developer Community Manager from Intel and “einhverfr”, both of whom gave some very constructive feedback on the previous blog. In the next six blogs to follow, including this one, I will do a “deep-dive” into the six specific areas we covered under the “Systems Manageability” ontology.
Let’s start this blog with the first of the six categories from the ontology - “Deployment and Provisioning”
Level-Set: Deployment and Provisioning as we understand it, encompasses all tasks related to the initial installation of an operating system on remote system, as well as post-installation of software on a remote system. Much of these toolsets are geared toward automated system provisioning and cloning. There’s lots of different tools out there that can be used but we have focused on the most popular ones, namely Kickstart, Autoyast, “Bare-Metal” provisioning and RedHat Network. In the paragraphs to follow, we have attempted to lay out our understanding of these tools after using them in the OSSL:
I.KICKSTART: is an automated installation utility for RedHat-based systems, including Fedora Core and RHEL based systems. Kickstart software requires the creation of a configuration file (similar to an “answer file” in Windows lingo) which contains all the information the installation program will require to install the operating system. The configuration file and all the RPM software packages are typically kept on a remote server such as a HTTP or FTP. The location of the Kickstart configuration file is typically passed to the kernel at boot time. For example, once the bootloader (GRUB, LILO) loads, the user is often presented with a “boot:” prompt that allows the user to pass arguments to the kernel. To load a kickstart configuration file from a remote server one would type the following:
boot: linux ks=http://<server>/location/of/kickstart.cfg
The administrator can then create multiple Kickstart configuration files for different configurations. With the addition of a PXE-based server, much of the provisioning process can be automated. A Kickstart configuration file is simply a text file, which can be created and edited manually with any text-editor. A GUI-based Kickstart file creation program called system-config-kickstart is also available from the Fedora and RHEL distributions. Both kickstart and autoYaST provide the ability to run arbitrary commands during the post-installation phase. This allows administrators to run individual commands, or entire shell scripts to automate any post installation tasks that may be required. RedHat provides a GUI-based tool to assist one in building a kickstart configuration , however in practice it is very easy to customize the configuration file by hand. The ability to run shell commands via the post-configuration phase is simple yet extremely powerful.
II. AutoYaST: is another automated installation utility, similar to RedHat’s Kickstart utility, but used primarily with SUSE-based systems. Novell provides a YaST2 module for autoYaST, which is a GUI tool that can be used to create an autoYaST configuration file – also similar to RedHat’s system-config-kickstart utility. Many of the same rules and procedures used with the kickstart utility also apply to autoYaST. Administrators that need to deploy SUSE clients or servers can create any number of autoYaST configuration files to fit a particular system profile. These can then be used to automate the installation of a SUSE system over a network. When combined with PXE/DHCP setup administrators can deploy and start a SUSE install without using any physical media (i.e. an installation CD/DVD).
III. Bare-Metal Provisioning: Automated deployment tools such as Kickstart and Autoyast support system provisioning via HTTP, (T)FTP and NFS. Completely automated installations can also be configured using the Pre-Execution Environment (PXE), DHCP, tftp and kickstart or autoyast. By automating the boot process, it no longer becomes necessary to manually initialize the installation process via a CDROM or other bootable medium.
Many cluster deployment solutions utilize these very same technologies to deploy large numbers of nodes in a very short time. ROCKS, for example, automates the booting and (re)deployment cluster nodes on the network using PXE, DHCP and kickstart, a process that can sometimes require less than 10-minutes for a single node. Proprietary tools such as CSM, IBM’s cluster management software, also utilizes PXE, DHCP and kickstart or autoYaST to (re)provision cluster nodes as needed.
allow bootp; class "pxeclients" { match if substring(option vendor-class-identifier, 0, 9) = "PXEClient"; filename "linux-install/pxelinux.0"; }
allow bootp;
class "pxeclients" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
filename "linux-install/pxelinux.0";
}
service tftp { disable = no port = 69 socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot per_source = 11 cps = 100 2 flags = IPv4 } TFTP Configuration in xinetd.conf
service tftp
{
disable = no
port = 69
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
per_source = 11
cps = 100 2
flags = IPv4
} TFTP Configuration in xinetd.conf
The directory /tftpboot/linux-install is the default used by the system-config-netboot configuration tool. The directory contains kernels and the necessary configuration files required to boot a system and begin a kickstart installation. The configuration file /tftpboot/linux-install/pxelinux.cfg/pxeos.xml contains specific definitions about which network install profiles are available to PXE boot clients.
That’s it for the Provisioning and Deployment section. As always, please let us know if you found the above mentioned useful and any comments/feedback you may have. Thank you for tuning into Port25.
by hjanssen on May 02, 2007 07:11pm
So here I am, Amsterdam May 2nd 2007. At the Apache Conference. (A Microsoft person at an Apache Conference, what is this world coming to??)
I am going to blog from the Conference until it is over.
So, today the conference started in earnest with all the tracks kicking off. The first day was one of technical training. But this second day is where all the sessions started.
It started all with Sander Striker President of the Apache Foundation. He described very high level what was to be expected in the next few days, and he talked about the following.
He describes describes ASF, Est. June 1999. Non profit 501(R )(3) charity
He talked about how ASF is much more about community than about code, ASF manages communities, not code.
As with most projects, Open Source or otherwise, there is a tendency of burnout. He wants to make sure people stick around at the ASF by making sure there is an environment of Healthy community through: respect, open discussion, shared views and direction.
Today there are 43 Top level Projects (6 more than last Apachecon, October Austin - 2006.). There are also 31 projects in the Incubator (compared to 38 at last Apachecon). Overall he expressed his belief in that the future is looking bright and ASF being very healthy.
Also, today there are 1500 Committers worldwide, 220 Members. Membership is about the individual. Not corporations.
He closed by saying that People have a tendency to burn out in the infrastructure portion. It is a tough job to keep doing.
Picture 1: Here is a shot of the attendance during the keynote and introductions
Being notoriously bad at guesstimating the total number of attendants at any event, I am guessing that there are about 250 to 300 people here.
A question from the audience resulted in a very interesting answer. The question was how do you become a member. The response from Sander was:
Become a Committer first, and provide good quality work. If you keep contributing you might be proposed as a member. This will be subject to a vote.
But the description of a clear path to become a member is somewhat unclear from my point of view. I would think this path is more defined for those people wanting to become way more involved.
Next up was the key note delivered by Steven Pemberton, Researcher at the Center of Math and Computer Science. His keynote was called:
Abstraction and extraction: in praise of
He talked about abstractions of programming languages. And then went into how complicated these abstractions still are today. Yet daily interaction with objects can lead us to confuse the concrete with the abstract.
One of the nice things about programming languages is that they abstract away detail, like how data structures are implemented, how procedures are called. Etc.
He described a talk by Kernigan and Ritchie that he went to in the 70s where they were talking about Unix and C. This gave me a nice flashback and I am starting to feel pretty old! Thanks!
Some of the things we are struggling with today where the result of mistakes that were made when UNIX/C came to be. He talked that in his view that UTF-8 today is the result of the way they conflated characters worth units of store.
The intention of his talk was to speak more about usability, and designing for usability.
I have taken many notes when he spoke and I am trying to compose them back into his keynote. Bear with me while I try to reconstruct my notes. :)
He stated that you shouldn't confuse usability with Learnability. They are distinct and different. What he means with that is that if you want your software to be used by a large audience, you need to make is usable. Emacs (Still my personal favorite) is a powertool, you can do great things with it. But it is not what I would call usable. (powerful? Yes, Easy to learn? Not so much.)
What are the features of websites that you go back to regularly. The thing that differentiate them from other websites with the same purpose that you don't go back to.
Forrester research found 4 reasons for this.
Yet Usability is usually the first thing scrapped when web sites are built. This seems to be applied to the design of software as well.
Eric Raymond, stated that making good software requires a lot of money to make sure it is usability tested and designed. This takes a large company with a large amount of money. OSS has not solved this problem yet.
Programmers like the command line, they are much more intuitive. ("Sensories" like much more graphical design). OSS programmers are intent with their use of the interface, yet the rest of the world is not. The rest of the world is much more Sensory.
A Dutch Magazine places GIMP last in it's review because of it's poor interface.
US Department of Defense discovered 90% of cost of SW production is debugging.
For example AJAX empowered page is a lot of work, Google maps, poster child of Ajax generation is more than 200k of code. He asks if it truly have to be this hard?
He made a really funny comment, while preparing his presentation he checked to see how much processor usage was going on on his machine. Then realized that his machine had dual core. And discovered that his computer is now twice as idle as it used to be. :)
Centre of his talk was really about usability. Much more so as it relates to languages. And I will give a plug here, it is basically the same argument he made as I did in my blog a few months ago. (He probably was more elegant in describing it) A link to the blog I wrote can be found here; Languages are becoming way too easy. In there I make the argument that languages are becoming easier yet they and the operating systems they run on have not kept up. (Meaning both have a really hard time protecting the programmer from the outside world :))
Some more data he gave that I found interesting: Computers have become 40 times faster in 25 years, Programmers managed to become 2 to 3 times faster maybe over that same time period. Which is because you still need to do to many things in languages. The example he gave was source code he found to display a clock. The clock part was only a few lines of code. But the rest of the 1000+ lines were taken up by setting up the framework. Making sure redraws and sizing are handled etc etc.
I will leave it at this for now. There is a lot more to write in the next few days, and I need to start reducing my blogs, they are becoming way to long!
Stay tuned, more to come in the next few days.