Firefox Deployment Kit
Before even starting the project I have to know what I'm getting into, where to start, and who I should talk to
should when I have problems.
1. Project Plan - This needs to be done before anything else. In this document I will plan my deliverables and set my goals. I also plan to incorporate a personal schedule so I know when I should be working on the project, and others will be able to contact me easily.
2. Research - I have to figure out early where the deployment kit stands as of now. Has there been work done on it? and if so, where I can learn about it.
3. Collaboration - By talking to developers who are already working on the project I should be able to get some idea of what has already been built and what I have to do to finish this project.
This section contains links relevant to the project.
- http://bertenshaw.blogspot.com/ - A link to my Blog which discusses my experience and documents my progress
- http://www.frontmotion.com/ - A company that has developed a .msi install file for pushing through AD
- Add MSI to Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=231062
Documentation of Research
January 15th - I have found a script/program called FrontMotion that seems to be open source. I havn't been able to test it out as of yet but I plan to tomorrow. This script doesn't support Vista.
January 16th - This evening I plan on finishing my project plan and upload it to the wiki. I am also going to take a stab at building the FrontMotion script and testing it in a work environment. For more information on FrontMotion click here http://www.frontmotion.com/Firefox/fmfirefox.htm
January 17th - I've started researching IEAK so that I can get an idea of how an Admin kit works. See IEAK Documentation
January 18th - I tried installing CCK today. I was able to get it as an add-on but was unsuccessful making my first build. I expect that it has something to do with me running Windows Vista at home. The make file needs to have a ZIP program in the PATH and although I had one there, it still didn't work. I am aiming to have a build by the 22nd of Jan.
Jan 20th - Today I spend sometime setting up a small 'coroporate' like network at home. Working at a computer store allows me access to many older computers and I've been able to set up Server 03 on a test box here at home. I expect that after I set up some client machines I will be able to start testing the firefox build kit (CCK). I also am going to document the set up process.
Jan 22nd - After setting up my Server 03 environment I needed a client to test with. I have set up a client server environment and re-familiarized myself with active directory and group permissions.
Jan 24th - I've done some research on pushing an install through active directory. With Microsoft's Server 2003 it is possible to push an install to clients using group policy and a .msi file. Since most Firefox installers are .exe I had to do some looking for a .msi file. I was able to find one from a company called FrontMotion. They develop .msi files for the very reason of pushing them through AD (active directory). To read more about this, read my Jan 25th build statement.
Jan 26th - Successful remote install of Firefox over a network using the .msi file from FrontMotion.
Jan 28th - I've done some research into customizing a push of Firefox over the network. I'd ideally like to create a tool like Mkaply's CCK tool which exports an .xpi file to customize Firefox.
Feb 1st - Turns out there could be an easier way of customizing Firefox. There are server admin files (also known as .adm) files that allow an admin to customize and install of Firefox over a network. Such settings include install directory and default browser settings.
Feb 4th - I've been successful in using a .adm file to customize a push of Firefox over the network. After doing so, I'd like to do some more research into figuring out how this .adm file interacts with the install.
Feb 6th - Today I've started to get a little lost again. Not only do I have to create an .msi I am actually attempting to create a program that can create and customize .msi files. I figure the most important thing is to understand more about .msi files so I can edit/create them.
Feb 8th - So I did some research on .msi files. There are tons of tutorials on the internet on how to use automated tools to create .msi files. I need to manually do it so that I can customize it. I found a Microsoft SDK on the internet for it. I am currently downloading it and will begin my work with it tomorrow.
Feb 9th - Knowing that I must produce some tangible code for this week I have been really stressing about my project. I feel somewhat lost. I've used a tool called Orca (included in the SDK) that has allowed me open some .msi files and edit them. I still know very little about creating .msi files.
Feb 10th - After speaking with David Humphrey I feel much better about my work. He has pointed me at a project know as Wix. Which seems to be an OS SDK for developing .msi files. Since I'm at work I can't write more yet.
By the end of this semester I hope to have a program that can deploy Firefox over a network or work environment. My build will include all the add-ons that I personally like as well as being fully customized for a work environment (ie. setting default homepage).
- Updated Feb 13th*
I realize my goals have been somewhat vague. For that reason I will clarify. By the end of the semester I hope to create a program that can customize and create .msi files. Whether I succeed or fail in my goal, I hope to pave the road for other developers to pick-up where I left off.
Dec 25th) This is my first real build for my project and it only really includes documentation. I am still not sure if this the right approach for my project however even if it isn't I'm sure that this is useful information. In this build I was successful in pushing an install of Firefox over the network. The following includes documentation on how this process was completed.
Installing Firefox over the network with Microsoft Server 2003 and Active Directory.
Assuming that Server 2003 is set up and that there is a domain running on it, there are a couple things one must do before attempting the remote install. Firstly there must be a mapped drive on the server, this must also be accessible from the user(s) you are planning to push the install to. Once that is completed, create a folder in the mapped drive where you want to put your installer. In my case I downloaded the latest build from [FrontMotion]. You can’t simply put a .exe file in this directory, it must be a .msi file or this won’t work. After that is done, a user account must be created (if not already) to push the install to. You may also create a group so that the install can be pushed to all the users in that group. Lastly a group policy object or GPO must be created. The following instructs on how to create a GPO: Create a Group Policy Object
To create a Group Policy object (GPO) to use to distribute the software package: 1. Start the Active Directory Users and Computers snap-in. To do this, click Start, point to Administrative Tools, and then click Active Directory Users and Computers.
2. In the console tree, right-click your domain, and then click Properties.
3. Click the Group Policy tab, and then click New.
4. Type a name for this new policy (for example, Office XP distribution), and then press ENTER.
5. Click Properties, and then click the Security tab.
6. Click to clear the Apply Group Policy check box for the security groups that you want to prevent from having this policy applied.
7. Click to select the Apply Group Policy check box for the groups that you want this policy to apply to.
8. When you are finished, click OK.
- The above was taken from Microsoft Documentation, see referenced (A).
Next, you must Assign a package to the GPO. In my case the Microsoft documentation differed greatly from how I did it, so I will document my process.
1. Select the GPO created in the steps above and click edit.
2. Under either ‘Computer Configuration’ or ‘User Configuration’ (depending on where you want to push the software) click new and then click package.
3. A dialog box will open, navigate to the .msi package you want to push (in this case firefox) and select it.
4. Click Assigned, then navigate the tabs to ensure the package will be pushed to the proper computers/users.
5. Exit AD. When the user/computer is logged on the install will commence.
That is all I did to remotely install the package. My next build will be using CCK to customize the package I decide to push over and documenting different types of remote installs.
References A) Microsoft’s “How to use Group Policy to remotely install software in Windows Server 2003” http://support.microsoft.com/kb/816102