Sustainable Automated Software Deployment Practices Dan R. Herrick Colorado State University Engineering Network Services Fort Collins, CO 80523-1301 970-491-3131 Dan.Herrick@Colostate.edu John B. Tyndall The Pennsylvania State University Information Technology Services University Park, PA 16802 814-865-2886 jbt8@psu.edu ABSTRACT Many organizations follow the same error-prone, time- consuming, and redundant procedures to install software manually, whether as part of a master image or on individual computers. Usually this involves visiting a system, executing some sort of interface, selecting a subset of modules or configuring certain options, and waiting for the installer to complete. There is another way: automated software deployment, which affords greater efficiency, consistency, and ultimately, service. This paper discusses the organization and detailed implementation of automating software installations and updates using silent and unattended methods, with various levels of administrative intervention, from help desk to systems administrator. We also describe different approaches to creating such an environment for both “mass” devices (e.g., public computer lab systems) and individual devices (e.g., faculty/staff desktop systems). Key concepts include leveraging management software and resources you may already have (i.e., the “zero budget” approach) versus efficiency gains from third-party resources, high-level administrative toolkits along with low-level control methods, and developing a workflow for automated and semi-automated software installations. Categories and Subject Descriptors C.5.3 [Computer System Implementation]: Microcomputers personal computers, portable devices, workstations; D.0 [Software]: General General Terms Design, Documentation, Performance, Standardization, Theory. Keywords Baseline, best practice, EASI, EASI Make, installation, process, software, software deployment, software distribution, software installation, software packing, thin imaging, UPDATER 1. INTRODUCTION This paper discusses automated software deployment scenarios that have been tested and used in production environments at both the College of Engineering at Colorado State University (CSU) and Penn State University (PSU). Collectively, both universities provide regular, managed installation support for 300-400 automated software packages. 1.1 Colorado State University Within the College of Engineering at CSU, an IT group of 8 FTEs and 25 part-time student employees supports about 4,000 users (545 of which are faculty/staff with at least one university- supported computer) and about 1,650 computers (350 of which are centrally managed computers, e.g., computer lab PCs, servers, virtual desktops connected via thin clients). 1.2 Penn State University University Services, a sub-department in Information Technology Services, manages approximately 7,500 lab and classroom computers state-wide and offers a systems management service for an additional cooperative administration of 21,000 faculty/staff computers throughout the University. Instead of using traditional thick images with pre-installed software, computers are provisioned with a thin image with software deployed in the background. Originally, Group Policy software installations [3] were used; however, since 2008 PSU has been employing IBM Endpoint Manager [2]. 2. PROCESS OVERVIEW The process of automated software deployment breaks down into three phases: software packaging, software distribution and integration, and systems management. This paper will primarily focus on software distribution and integration, although an understanding of key elements from the other two areas is important to this process. Software must be distributed, either using automated or manual methods (or a hybrid of both), after it has been packaged and before it can be managed. Software distribution is the actual process of installing the prepared software package onto client computers. Once the software is installed, it may need some integration to accommodate the specific computer, the needs of the user(s), and/or the network environment. 3. SOFTWARE PACKAGING When automating installation of software, the installers that we receive from the Original Equipment Manufacturer (OEM) generally do not work for our needs; that is, they require user intervention: to select a destination folder, to select install-time options, and to select the appropriate components of a program. We find situations where we need to modify the OEM installation packages to allow for silent and unattended installation. Copyright is held by the owner/author(s). Publication rights licensed to ACM. ACM 978-1-4503-2318-5/13/11…$15.00. http://dx.doi.org/10.1145/2504776.2504802 189 Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from permissions@acm.org. SIGUCCS’13, November 3–8, 2013, Chicago, Illinois, USA.