def server_setup(): # Set kernel options with warn_only(): sysctl('vm.swappiness', 0) # Basic system configuration file_update('/etc/sysconfig/clock', 'ZONE=', 'ZONE="America/Chicago"') sudo('cp -f /usr/share/zoneinfo/America/Chicago /etc/localtime') # Perform updates and installs yum.update() yum.install('yum-utils', 'ntp', 'ntpdate', 'uuid', 'zsh', 'screen', 'tmux', 'vim-enhanced', 'git', 'subversion', 'bind-utils', 'telnet', 'traceroute', 'curl', 'wget') # Performs a quick time sync so all logs are accurate with warn_only(): service.enable('ntpd') service.stop('ntpd') sudo('ntpdate time.nist.gov') sudo('ntpdate tick.usno.navy.mil') service.start('ntpd') # Add custom repos for nginx, more up-to-date PHP and MySQL packages, # and a few additional PHP modules with warn_only(): yum.add_epel_repo() for repo_name, repo_rpm_url in REPO_RPMS.iteritems(): yum.add_repo_rpm(repo_rpm_url) yum.enable_repo(repo_name)
def bootstrap(): # Set kernel options print(blue('Setting sysctl options...')) with warn_only(): sysctl('vm.swappiness', 0) # Basic system configuration print(blue('Tweaking configuration...')) file_update('/etc/sysconfig/clock', 'ZONE=', 'ZONE="America/Chicago"') run('cp -f /usr/share/zoneinfo/America/Chicago /etc/localtime') # Update existing packages print(blue('Updating installed packages...')) yum.update() # Install base packages and dev tools print(blue('Installing base packages and development tools...')) yum.install('yum-utils', 'ntp', 'ntpdate', 'vim-enhanced', 'git', 'subversion', 'bind-utils', 'telnet', 'traceroute', 'curl', 'wget', 'rpm-build', 'rpmdevtools', 'spectool') yum.install_group('Development Tools') # Perform a quick time sync -- particularly good for VMs print(blue('Synchronizing system time...')) with warn_only(): service.stop('ntpd') run('ntpdate time.nist.gov') run('ntpdate tick.usno.navy.mil') service.start('ntpd') service.enable('ntpd') # Set up build user and their unprivileged environment print(blue('Creating %s user and pushing SSH key...' % build_user)) with warn_only(): sudo('useradd -m %s' % build_user) keys.push_key(user_name=build_user) sudo('chown -R %s.%s ~%s/.ssh' % (build_user, build_user, build_user)) print(blue('Setting up rpmbuild environment...')) with settings(user=build_user, warn_only=True): run('rpmdev-setuptree') run('git clone %s' % sysfm_repo) # Huzzah! print(green('CentOS build instance ready!'))