X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=manifests%2Finstall.pp;h=56c4909e788f02aea0683a97617122b505e7ab02;hb=9e7f7358b51dd6438d7ae0e1e9a0279c890812ff;hp=8db8e6da58e19f270bfae610b545806c0023e522;hpb=a46828f07b1557ddd9934cea1a5510a8f5f3f20d;p=integration%2Fpackaging%2Fpuppet-opendaylight.git diff --git a/manifests/install.pp b/manifests/install.pp index 8db8e6d..56c4909 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -1,48 +1,65 @@ # == Class opendaylight::install # -# This class is called from opendaylight for install. +# Manages the installation of OpenDaylight. +# +# There are two install methods: RPM-based and deb-based. The resulting +# system state should be functionally equivalent. # class opendaylight::install { - if $opendaylight::install_method == 'rpm' { - # Choose Yum URL based on OS (CentOS vs Fedora) - $base_url = $::operatingsystem ? { - 'CentOS' => 'https://copr-be.cloud.fedoraproject.org/results/dfarrell07/OpenDaylight/epel-7-$basearch/', - 'Fedora' => 'https://copr-be.cloud.fedoraproject.org/results/dfarrell07/OpenDaylight/fedora-$releasever-$basearch/', - } - - yumrepo { 'opendaylight': + if $::osfamily == 'RedHat' { + # Add OpenDaylight's Yum repository + yumrepo { $opendaylight::rpm_repo: # 'ensure' isn't supported with Puppet <3.5 # Seems to default to present, but docs don't say # https://docs.puppetlabs.com/references/3.4.0/type.html#yumrepo # https://docs.puppetlabs.com/references/3.5.0/type.html#yumrepo - baseurl => $base_url, - descr => 'OpenDaylight SDN controller', - gpgcheck => 0, + baseurl => "http://cbs.centos.org/repos/nfv7-${opendaylight::rpm_repo}/\$basearch/os/", + descr => 'OpenDaylight SDN Controller', enabled => 1, + # NB: RPM signing is an active TODO, but is not done. We will enable + # this gpgcheck once the RPM supports it. + gpgcheck => 0, before => Package['opendaylight'], } + # Install the OpenDaylight RPM package { 'opendaylight': ensure => present, - require => Yumrepo['opendaylight'], + require => Yumrepo[$opendaylight::rpm_repo], + } + -> + # Configure the systemd file with Java options + file_line { 'java_options_systemd': + ensure => present, + path => '/usr/lib/systemd/system/opendaylight.service', + line => "Environment=_JAVA_OPTIONS=\'${opendaylight::java_opts}\'", + match => '^Environment.*', + after => 'ExecStart=/opt/opendaylight/bin/start', + } + ~> + exec {'reload_systemd_units': + command => 'systemctl daemon-reload', + path => '/bin', + refreshonly => true, } } - elsif $opendaylight::install_method == 'tarball' { - # Download and extract the ODL tarball - archive { 'opendaylight-0.2.2': - ensure => present, - url => $opendaylight::tarball_url, - target => '/opt/', - checksum => false, - # This discards top-level dir of extracted tarball - # Required to get proper /opt/opendaylight- path - # Ideally, camptocamp/puppet-archive would support this. PR later? - strip_components => 1, + + elsif $::osfamily == 'Debian'{ + + include apt + + # Add ODL ppa repository + apt::ppa{ $opendaylight::deb_repo: } + + # Install Opendaylight .deb pkg + package { 'opendaylight': + ensure => present, + require => Apt::Ppa[$opendaylight::deb_repo], } - # TODO: Download ODL systemd .service file and put in right location + Apt::Ppa[$opendaylight::deb_repo] -> Package['opendaylight'] } else { - fail("Unknown install method: ${opendaylight::install_method}") + fail("Unknown operating system method: ${::osfamily}") } }