7. CONFIGURATION & LIFECYCLE: MIXED ENVIRONMENTS
LINUX VS WINDOWS: SO DIFFERENT
▸ ls vs dir
▸ bash vs cmd
▸ cat vs type
▸ $PATH vs %PATH%
▸ /boot vs C:Windows
▸ ext4 vs NTFS
▸ apt-get vs ???
7
12. CONFIGURATION MANAGEMENT
WHEN IT IS MORE OF SPAGHETTI
▸ Scripts are hard to re-use
▸ High code duplication
▸ High entry point for new staff
▸ Low documentation quality
▸ No clear standards
▸ No business behind provision.sh
12
13. CONFIGURATION MANAGEMENT
BENEFITS OF CONFIGURATION MANAGEMENT
▸ Improved Efficiency (no more duplication and golden image maintenance. Almost like in Hollywood)
▸ Visibility
▸ Confidence (if a change is made it is made to a right range of systems)
▸ Auditability (source control and reports allow you to track all changes down)
▸ Predictability (rolling out a change is similar to a software release)
▸ Configuration Drift Remediation (two or more entities are identical)
▸ Living Documentation (configurations serve as a «source of truth» and are up-to-date)
▸ Captured Effort (two or more entities are identical)
13
26. LIFE CYCLE MANAGEMENT
Provisioning Configuration Monitoring
Provision on bare-metal
& public or private
clouds all from one
place with one simple
process.
A complete configuration
management solution
including an ENC for
Puppet and Salt, built-in
support for parameterized
classes and hierarchical
parameter storage.
Collect Puppet, Chef and
Salt reports and facts.
Monitor host
configuration, report
status, distribution and
trends.
THE FOREMAN
26
27. LIFE CYCLE MANAGEMENT
THE FOREMAN
▸ Platform agnostic provisioning
▸ CLI
▸ RBAC and LDAP integration
▸ Plugins
▸ API
▸ Audits
▸ Host groups
▸ ERB Templates
▸ PXEBoot, TFTP, Kickstart
27
37. LIFECYCLE MANAGEMENT
WIMAGING
▸ Linux style installation using http:// or ftp:// installation media
▸ No extra servers like WDS needed - all relevant settings can
be configured in Foreman directly
▸ Official Microsoft utilities are used for all relevant setup
stages making it easy to add (future) operating systems
▸ Driver installation during build time
▸ Support for localization settings (like time zone, locale, UI
language)
▸ Optional domain join including target OU
▸ Optional local user creation
▸ Support for Foreman's root password using Base64 encoding
▸ Correctly report finished host building
▸ Optional software installation and user tasks at the end of the
build (like installing puppet etc)
37
39. LIFECYCLE MANAGEMENT
WIMAGING FLOW
▸ Create host (user)
▸ Download bootfiles
▸ Boot to WinPE via wimboot
▸ Partition disk
▸ Apply image
▸ Add drivers
▸ User software (Puppet)
▸ Finish script
▸ Reboot
39
40. LIFECYCLE MANAGEMENT
WIMAGING SETUP
▸ Clone repo
▸ Setup Foreman & Templates
▸ Setup Medium
▸ Produce boot medium
▸ Produce install medium
▸ Sync medium to http/ftp
▸ Provision host
40
41. CONFIGURATION & LIFECYCLE: MIXED ENVIRONMENTS
WHAT DO WE GET
▸ Infrastructure as a code
▸ Platform-agnostic
▸ Reusable code & templates (Puppet, ERB) that make sense
▸ Single point of entry for DevOps, Developers, APIs
▸ As much Open Source as possible (presence +
contribution)
▸ Well supported (RedHat, PuppetLabs, Community)
41
43. MIXED ENVIRONMENT
OTHER THINGS THAT I SHOULD’VE MENTIONED
▸ Foreman supports Chef, Salt Ansible
▸ profile::nginx::www_site_com vs provision.sh
▸ Chocolatey supports private repositories
▸ Puppet can also operate in server-less mode
▸ IntelliJ IDEA or RubyMine support puppet DSL
▸ Logstash is awesome
43