Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What's New In Foreman 1.12

What's New In Foreman 1.12

Michael Moll

July 21, 2016
Tweet

More Decks by Michael Moll

Other Decks in Programming

Transcript

  1. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! What’s New In Foreman 1.12 Michael Moll <[email protected]> Foreman Meetup Germany 21st July 2016 1 / 16
  2. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! Questions Who does not use Foreman, yet? Who does not use Puppet? Anybody still using Puppet 2.x? Who is already using Puppet 4? Who is already using Puppet 4 with Foreman? 2 / 16
  3. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! Key Changes Puppet 4 is fully supported now! Details in a minute... Changes in operating systems support: Newly supported: Fedora 24 Ubuntu/xenial (16.04) Desupported: Debian/wheezy (7.x) Ubuntu/precise (12.04) RHEL 6 based operating systems deprecated likely to be desupported in 1.13, please migrate to RHEL 7 Changes under the hood Ruby 1.9.3 desupported Ruby 2.3 supported Rails updated to 4.2 3 / 16
  4. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! What is that installer? Puppet modules to configure Foreman, Foreman-Proxy, Puppet... kafo_parsers gem to extract class structure and parameters Information about top-level classes and application specific default parameters is provided as YAML files (similar to hiera) kafo gem is using these informations to provide a CLI frontend for execution (puppet apply) and optional parameter editing The resulting application is called foreman-installer Answers (Puppet class parameter values) are saved into the answer file 4 / 16
  5. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! reset parameters All answers are saved at the first run, also computed defaults. When the defaults of a parameter changes with a module update, the old value is still used. This is also a problem when computed defaults should change, e.g. after an apt-get dist-upgrade or for all changed paths on an update to Puppet 4. A reset deletes the saved answer for that parameter and lets the Puppet module compute the default value again. --foreman-admin-email E-mail address of the initial admin user --reset-foreman-admin-email Reset admin_email to the default value 5 / 16
  6. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! answer migrations Can use the answer file as a big Ruby hash to auto-edit or reset values Useful for installer updates, like parameter renaming or type changes # Redetermine the value of passenger_ruby, # as it changed on Debian in puppet-foreman f9329b6 answers[’foreman’].delete(’passenger_ruby’) if answers[’foreman’] # Rename foreman_proxy provider "puppetssh" to "ssh" # http://projects.theforeman.org/issues/15323 if (answers[’foreman_proxy’] && answers[’foreman_proxy’][’puppetrun_provider’] == ’puppetssh’) answers[’foreman_proxy’][’puppetrun_provider’] = ’ssh’ end 6 / 16
  7. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! hiera integration We’re using external modules, like puppetlabs-apache. With a new version of that module, a Phusionlabs repository was added by default on RHEL based systems, resulting into SELinux problems. This can’t get regulated by setting default parameters because of the module structure, which was planned with the usage of hiera in mind. [...] :hierarchy: - kafo_answers - "%{::osfamily}" [...] # /usr/share/foreman-installer/config/foreman.hiera/RedHat.yaml: --- # Disable additional Passenger repo on EL, preferring EPEL/Foreman’s apache::mod::passenger::manage_repo: false 7 / 16
  8. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! Puppet 4 support Various changes under the hood required for Puppet 4 support. 8 / 16
  9. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! Puppet 4 Support - Why did it take so long? Important changes in Puppet 4: Clojure/JVM based Puppet Server replacing Ruby based Puppet Master AIO packaging for Puppet Agent, bringing its own Ruby For Foreman users, no changes are visible. However, there were pretty big changes needed from a technical perspective. 9 / 16
  10. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! Consequences for Foreman components Puppet modules theforeman-puppet needs to configure Puppet Server instead of Puppet Master theforeman-puppet needs to handle config file changes form 3.x to 4.x all modules have to be future/4.x parser compatible all modules need to handle different paths Installer can’t load Puppet directly anymore Puppet and the installer used to run in the same Ruby environment Proxy can’t load Puppet directly anymore Puppet agent, Puppet master (sharing e.g. parser code) and the proxy used to run in the same Ruby 10 / 16
  11. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! Puppet Module Updates Modules were already Puppet 4 compliant because of former work Reports/ENC required no changes (JRuby is still there!) Huge PR for Puppet AIO agent support (and lots of refactorings) from mcanevet and roidelapluie - merci! Basic support for Puppet Server 1 was already there Huge PR for Puppet Server 2 support from jyaworski - dzi˛ ekujemy! Puppet server minor updates need handling... smart-proxy provider without apipie gem 11 / 16
  12. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! Proxy Updates The puppet feature now has multiple backends (like DHCP and DNS already had before for e.g. ISC and MS backends). According to the puppet_version parameter, the correct backend is chosen. On Puppet 4 only API calls to the Puppet Server are used. Older versions still load Puppet directly into the proxy. 12 / 16
  13. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! Upgrading from Puppet 3 to Puppet 4 http://projects.theforeman.org/projects/foreman/wiki/Upgrading_from_Puppet_3_to_4 A very long installer command, resetting all the affected parameters and setting the master implementation to puppetserver. 13 / 16
  14. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! Other News Hammer 0.7 ruby-libvirt (>= 0.6.0) instead of virsh used for DHCP/DNS 14 / 16
  15. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! Outlook: 1.13 Full IPv6 support Central parser for structured facts (Facter 3.x), re-usable for other Configuration Management plugins ISC DHCP proxy no longer parses the entire lease file repeatedly 15 / 16
  16. Questions Key Changes Installer Updates Puppet 4 Other News Outlook:

    1.13 Thanks! Thanks! Questions? Discussion! 16 / 16