Ottomata has submitted this change and it was merged. Change subject: Puppetizing oozie client and server ......................................................................
Puppetizing oozie client and server Change-Id: I57d6289420e929f5badef04aab286c66db9bd3c5 --- M README.md A manifests/oozie.pp A manifests/oozie/database/mysql.pp A manifests/oozie/defaults.pp A manifests/oozie/server.pp A templates/oozie/oozie-env.sh.erb A templates/oozie/oozie-site.xml.erb 7 files changed, 729 insertions(+), 0 deletions(-) Approvals: Ottomata: Verified; Looks good to me, approved jenkins-bot: Verified diff --git a/README.md b/README.md index b1a357c..2233d94 100644 --- a/README.md +++ b/README.md @@ -108,3 +108,24 @@ metastore_database => undef, } ``` + + +## For Oozie client nodes: + +```puppet +class { 'cdh4::oozie': } +``` + +## For Oozie Server Nodes + +The following will install and run oozie-server, as well as create a MySQL +database for it to use. A MySQL database is the only currently supported +automatically installable backend database. Alternatively, you may set +```database => undef``` to avoid setting up MySQL and then configure your own +Oozie database manually. + +```puppet +class { 'cdh4::oozie::server: + jdbc_password -> $secret_password, +} +``` diff --git a/manifests/oozie.pp b/manifests/oozie.pp new file mode 100644 index 0000000..1412a8b --- /dev/null +++ b/manifests/oozie.pp @@ -0,0 +1,24 @@ +# == Class cdh4::oozie +# Installs the oozie-client package +# And sets OOZIE_URL in /etc/profile.d/oozie.sh. +# +class cdh4::oozie( + $oozie_host = 'localhost' +) +{ + # oozie server url + $url = "http://$oozie_host:11000/oozie" + + package { 'oozie-client': + ensure => 'installed', + } + + # create a file in /etc/profile.d to export OOZIE_URL. + file { '/etc/profile.d/oozie.sh': + content => "# NOTE: This file is managed by Puppet. + +export OOZIE_URL='${url}' +", + mode => '0444', + } +} \ No newline at end of file diff --git a/manifests/oozie/database/mysql.pp b/manifests/oozie/database/mysql.pp new file mode 100644 index 0000000..b81811b --- /dev/null +++ b/manifests/oozie/database/mysql.pp @@ -0,0 +1,52 @@ +# == Class cdh4::oozie::database::mysql +# Configures and sets up a MySQL database for Oozie. +# +# Note that this class does not support running +# the Oozie database on a different host than where your +# oozie server will run. Permissions will only be granted +# for localhost MySQL users, so oozie server must run on this node. +# +# Also, root must be able to run /usr/bin/mysql with no password and have permissions +# to create databases and users and grant permissions. +# +# You probably shouldn't be including this class directly. Instead, include +# cdh4::oozie::server with database => 'mysql'. +# +# See: http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/4.2.1/CDH4-Installation-Guide/cdh4ig_topic_17_6.html +# +class cdh4::oozie::database::mysql { + if (!defined(Package['libmysql-java'])) { + package { 'libmysql-java': + ensure => 'installed', + } + } + + # symlink mysql.jar into /var/lib/oozie + file { '/var/lib/oozie/mysql.jar': + ensure => 'link', + target => '/usr/share/java/mysql.jar', + require => Package['libmysql-java'], + } + + $db_name = $cdh4::oozie::server::jdbc_database + $db_user = $cdh4::oozie::server::jdbc_username + $db_pass = $cdh4::oozie::server::jdbc_password + + # oozie is going to need an oozie database and user. + exec { 'oozie_mysql_create_database': + command => "/usr/bin/mysql -e \" +CREATE DATABASE ${db_name}; +GRANT ALL PRIVILEGES ON ${db_name}.* TO '${db_user}'@'localhost' IDENTIFIED BY '${db_pass}'; +GRANT ALL PRIVILEGES ON ${db_name}.* TO '${db_user}'@'127.0.0.1' IDENTIFIED BY '${db_pass}';\"", + unless => "/usr/bin/mysql -BNe 'SHOW DATABASES' | /bin/grep -q ${db_name}", + user => 'root', + } + + # run ooziedb.sh to create the oozie database schema + exec { 'oozie_mysql_create_schema': + command => '/usr/lib/oozie/bin/ooziedb.sh create -run', + require => [Exec['oozie_mysql_create_database'], File['/var/lib/oozie/mysql.jar']], + unless => "/usr/bin/mysql -u${db_user} -p'${db_pass}' ${db_name} -BNe 'SHOW TABLES;' | /bin/grep -q OOZIE_SYS", + user => 'oozie', + } +} \ No newline at end of file diff --git a/manifests/oozie/defaults.pp b/manifests/oozie/defaults.pp new file mode 100644 index 0000000..aca44dc --- /dev/null +++ b/manifests/oozie/defaults.pp @@ -0,0 +1,28 @@ +# == Class cdh4::oozie::defaults +# +class cdh4::oozie::defaults { + $database = 'mysql' + + $jdbc_driver = 'com.mysql.jdbc.Driver' + $jdbc_protocol = 'mysql' + $jdbc_database = 'oozie' + $jdbc_host = 'localhost' + $jdbc_port = 3306 + $jdbc_username = 'oozie' + $jdbc_password = 'oozie' + + $smtp_host = undef + $smtp_port = 25 + $smtp_from_email = undef + $smtp_username = undef + $smtp_password = undef + + $authorization_service_security_enabled = true + + # Default puppet paths to template config files. + # This allows us to use custom template config files + # if we want to override more settings than this + # module yet supports. + $oozie_site_template = 'cdh4/oozie/oozie-site.xml.erb' + $oozie_env_template = 'cdh4/oozie/oozie-env.sh.erb' +} diff --git a/manifests/oozie/server.pp b/manifests/oozie/server.pp new file mode 100644 index 0000000..f84c70e --- /dev/null +++ b/manifests/oozie/server.pp @@ -0,0 +1,171 @@ +# == Class cdh4::oozie::server +# +# Installs and configureds oozie server. If database is set, +# The oozie database will also be created by the database class. +# +# See: http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/4.2.1/CDH4-Installation-Guide/cdh4ig_topic_17_6.html +# +# == Parameters +# $database - Name of database class. +# Set to undef to disable configuartion of Oozie database. +# Default: mysql +# +# $jdbc_database - Oozie database name. Default: oozie +# $jdbc_username - Oozie JDBC username. Default: oozie +# $jdbc_password - Oozie JDBC password. Default: oozie +# $jdbc_host - Oozie JDBC hostname. Default: localhost +# $jdbc_port - Oozie JDBC port. Default: 3306 +# $jdbc_driver - Oozie JDBC driver class name. Default: com.mysql.jdbc.Driver +# $jdbc_protocol - Name of database protocol. Default: mysql +# +# $smtp_host - SMTP host for email notifications. +# Default: undef, SMTP will not be configured. +# $smtp_port - SMTP port. Default: 25 +# $smtp_from_email - Sender email address of notifications. Default: undef +# $smtp_username - Username for SMTP authentication. Default: undef +# $smtp_password - Password for SMTP authentication. Default: undef +# +# $authorization_service_security_enabled - If disabled any user can manage Oozie +# system and manage any job. Default: true +# +class cdh4::oozie::server( + $database = $cdh4::oozie::defaults::database, + + $jdbc_database = $cdh4::oozie::defaults::jdbc_database, + $jdbc_username = $cdh4::oozie::defaults::jdbc_username, + $jdbc_password = $cdh4::oozie::defaults::jdbc_password, + $jdbc_host = $cdh4::oozie::defaults::jdbc_host, + $jdbc_port = $cdh4::oozie::defaults::jdbc_port, + $jdbc_driver = $cdh4::oozie::defaults::jdbc_driver, + $jdbc_protocol = $cdh4::oozie::defaults::jdbc_protocol, + + $smtp_host = $cdh4::oozie::defaults::smtp_host, + $smtp_port = $cdh4::oozie::defaults::smtp_port, + $smtp_from_email = $cdh4::oozie::defaults::smtp_from_email, + $smtp_username = $cdh4::oozie::defaults::smtp_username, + $smtp_password = $cdh4::oozie::defaults::smtp_password, + + $authorization_service_security_enabled = $cdh4::oozie::defaults::authorization_service_security_enabled, + + $oozie_site_template = $cdh4::oozie::defaults::oozie_site_template, + $oozie_env_template = $cdh4::oozie::defaults::oozie_env_template +) inherits cdh4::oozie::defaults +{ + # cdh4::oozie::server requires hadoop client and configs are installed. + Class['cdh4::hadoop'] -> Class['cdh4::oozie::server'] + # Also require cdh4::oozie client class. + Class['cdh4::oozie'] -> Class['cdh4::oozie::server'] + + package { 'oozie': + ensure => 'installed', + } + + if (!defined(Package['libjs-extjs'])) { + package { 'libjs-extjs': + ensure => 'installed', + } + } + # Symlink extjs install path into /var/lib/oozie. + # This is required for the Oozie web interface to work. + file { '/var/lib/oozie/extjs': + ensure => 'link', + target => '/usr/share/javascript/extjs', + require => [Package['oozie'], Package['libjs-extjs']], + } + + $catalina_base = $cdh4::hadoop::use_yarn ? { + true => '/usr/lib/oozie/oozie-server', + false => '/usr/lib/oozie/oozie-server-0.20', + } + # Ensure that Catalina working directories exist. + # Without these, oozie will log the error: + # "The specified scratchDir is unusable: /usr/lib/oozie/oozie-server/work/Catalina/localhost/_" + file { ["${catalina_base}/work", + "${catalina_base}/work/Catalina", + "${catalina_base}/work/Catalina/localhost"]: + ensure => 'directory', + owner => 'root', + group => 'root', + mode => '0755', + require => Package['oozie'], + } + file { ["${catalina_base}/work/Catalina/localhost/_", + "${catalina_base}/work/Catalina/localhost/oozie"]: + ensure => 'directory', + owner => 'oozie', + group => 'oozie', + mode => '0755', + require => File["${catalina_base}/work/Catalina/localhost"], + } + + # Extract and install Oozie ShareLib into HDFS + # at /user/oozie/share + + # sudo -u hdfs hadoop fs -mkdir /user/oozie + # sudo -u hdfs hadoop fs -chmod 0775 /user/oozie + # sudo -u hdfs hadoop fs -chown hive:hadoop /user/oozie + cdh4::hadoop::directory { '/user/oozie': + owner => 'oozie', + group => 'hadoop', + mode => '0755', + require => Package['oozie'], + } + + # Put oozie sharelib into HDFS: + $oozie_sharelib_archive = $cdh4::hadoop::use_yarn ? { + true => '/usr/lib/oozie/oozie-sharelib-yarn.tar.gz', + false => '/usr/lib/oozie/oozie-sharelib.tar.gz', + } + $oozie_sharelib_tmpdir = inline_template('/tmp/oozie_sharelib_install.<%= rand() %>') + exec { 'oozie_sharelib_install': + command => "\ +/bin/mkdir -p ${oozie_sharelib_tmpdir} && \ +/bin/tar -C ${oozie_sharelib_tmpdir} -xzf ${oozie_sharelib_archive} && \ +/usr/bin/hadoop fs -put ${oozie_sharelib_tmpdir}/share /user/oozie/share && \ +/bin/rm -rf ${oozie_sharelib_tmpdir}", + # don't run this command if /user/oozie/share already exists in HDFS. + unless => '/usr/bin/hadoop fs -ls /user/oozie | grep -q /user/oozie/share', + user => 'oozie', + require => Cdh4::Hadoop::Directory['/user/oozie'], + } + + file { '/etc/oozie/conf/oozie-site.xml': + content => template($oozie_site_template), + mode => '0440', # has database pw in it, shouldn't be world readable. + owner => 'root', + group => 'oozie', + require => Package['oozie'], + } + file { '/etc/oozie/conf/oozie-env.sh': + content => template($oozie_env_template), + mode => '0444', + owner => 'root', + group => 'oozie', + require => Package['oozie'], + } + + # Set up the database by including $database_class + $database_class = "cdh4::oozie::database::${database}" + if ($database) { + class { $database_class: } + # Make sure the $database_class is included and set up + # before we start the oozie server service + Class[$database_class] -> Service['oozie'] + } + + service { 'oozie': + ensure => 'running', + hasrestart => true, + hasstatus => true, + subscribe => [ + File['/etc/oozie/conf/oozie-site.xml'], + File['/etc/oozie/conf/oozie-env.sh'] + ], + require => [ + File['/var/lib/oozie/extjs'], + # Package['libcnative-1'], + File["${catalina_base}/work/Catalina/localhost/oozie"], + File["${catalina_base}/work/Catalina/localhost/_"] + ], + } +} \ No newline at end of file diff --git a/templates/oozie/oozie-env.sh.erb b/templates/oozie/oozie-env.sh.erb new file mode 100644 index 0000000..e4a9a98 --- /dev/null +++ b/templates/oozie/oozie-env.sh.erb @@ -0,0 +1,20 @@ +#! /bin/bash + +# Note: This file is managed by Puppet. + +export OOZIE_CONFIG=/etc/oozie/conf +export OOZIE_DATA=/var/lib/oozie +export OOZIE_LOG=/var/log/oozie +export OOZIE_CATALINA_HOME=/usr/lib/bigtop-tomcat +export CATALINA_TMPDIR=/var/lib/oozie +export CATALINA_PID=/var/run/oozie/oozie.pid +export CATALINA_BASE=<%= @catalina_base %> +export CATALINA_OPTS=-Xmx1024m +<% +# This puppet module doesn't (yet) support HTTPS configuration. +# These are the defaults that ship with CDH4. +-%> +export OOZIE_HTTPS_PORT=11443 +export OOZIE_HTTPS_KEYSTORE_PASS=password +export CATALINA_OPTS="$CATALINA_OPTS -Doozie.https.port=${OOZIE_HTTPS_PORT}" +export CATALINA_OPTS="$CATALINA_OPTS -Doozie.https.keystore.pass=${OOZIE_HTTPS_KEYSTORE_PASS}" diff --git a/templates/oozie/oozie-site.xml.erb b/templates/oozie/oozie-site.xml.erb new file mode 100644 index 0000000..927761d --- /dev/null +++ b/templates/oozie/oozie-site.xml.erb @@ -0,0 +1,413 @@ +<?xml version="1.0"?> +<!-- NOTE: This file is managed by Puppet. --> + +<configuration> + + <!-- + Refer to the oozie-default.xml file for the complete list of + Oozie configuration properties and their default values. + --> + + <property> + <name>oozie.service.ActionService.executor.ext.classes</name> + <value> + org.apache.oozie.action.email.EmailActionExecutor, + org.apache.oozie.action.hadoop.HiveActionExecutor, + org.apache.oozie.action.hadoop.ShellActionExecutor, + org.apache.oozie.action.hadoop.SqoopActionExecutor, + org.apache.oozie.action.hadoop.DistcpActionExecutor + </value> + </property> + + <property> + <name>oozie.service.SchemaService.wf.ext.schemas</name> + <value>shell-action-0.1.xsd,shell-action-0.2.xsd,email-action-0.1.xsd,hive-action-0.2.xsd,hive-action-0.3.xsd,sqoop-action-0.2.xsd,sqoop-action-0.3.xsd,ssh-action-0.1.xsd,distcp-action-0.1.xsd</value> + </property> + + <property> + <name>oozie.system.id</name> + <value>oozie-${user.name}</value> + <description> + The Oozie system ID. + </description> + </property> + + <property> + <name>oozie.systemmode</name> + <value>NORMAL</value> + <description> + System mode for Oozie at startup. + </description> + </property> + + <property> + <name>oozie.service.AuthorizationService.security.enabled</name> + <value><%= @authorization_service_security_enabled %></value> + <description> + Specifies whether security (user name/admin role) is enabled or not. + If disabled any user can manage Oozie system and manage any job. + </description> + </property> + + <property> + <name>oozie.service.PurgeService.older.than</name> + <value>30</value> + <description> + Jobs older than this value, in days, will be purged by the PurgeService. + </description> + </property> + + <property> + <name>oozie.service.PurgeService.purge.interval</name> + <value>3600</value> + <description> + Interval at which the purge service will run, in seconds. + </description> + </property> + + <property> + <name>oozie.service.CallableQueueService.queue.size</name> + <value>10000</value> + <description>Max callable queue size</description> + </property> + + <property> + <name>oozie.service.CallableQueueService.threads</name> + <value>10</value> + <description>Number of threads used for executing callables</description> + </property> + + <property> + <name>oozie.service.CallableQueueService.callable.concurrency</name> + <value>3</value> + <description> + Maximum concurrency for a given callable type. + Each command is a callable type (submit, start, run, signal, job, jobs, suspend,resume, etc). + Each action type is a callable type (Map-Reduce, Pig, SSH, FS, sub-workflow, etc). + All commands that use action executors (action-start, action-end, action-kill and action-check) use + the action type as the callable type. + </description> + </property> + + <property> + <name>oozie.service.coord.normal.default.timeout</name> + <value>120</value> + <description> + Default timeout for a coordinator action input check (in minutes) for normal job. + -1 means infinite timeout + </description> + </property> + + <property> + <name>oozie.db.schema.name</name> + <value><%= @jdbc_database %></value> + <description> + Oozie DataBase Name + </description> + </property> + + <property> + <name>oozie.service.JPAService.create.db.schema</name> + <value>true</value> + <description> + Creates Oozie DB. + + If set to true, it creates the DB schema if it does not exist. If the DB schema exists is a NOP. + If set to false, it does not create the DB schema. If the DB schema does not exist it fails start up. + </description> + </property> + + <property> + <name>oozie.service.JPAService.jdbc.driver</name> + <value><%= @jdbc_driver %></value> + <description> + JDBC driver class. + </description> + </property> + + <property> + <name>oozie.service.JPAService.jdbc.url</name> + <value><%= "jdbc:#{@jdbc_protocol}://#{@jdbc_host}:#{@jdbc_port}/#{@jdbc_database}" %></value> + <description> + JDBC URL. + </description> + </property> + + <property> + <name>oozie.service.JPAService.jdbc.username</name> + <value><%= @jdbc_username %></value> + <description> + DB user name. + </description> + </property> + + <property> + <name>oozie.service.JPAService.jdbc.password</name> + <value><%= @jdbc_password %></value> + <description> + DB user password. + + IMPORTANT: if password is empty leave a 1 space string, the service trims the value, + if empty Configuration assumes it is NULL. + </description> + </property> + + <property> + <name>oozie.service.JPAService.pool.max.active.conn</name> + <value>10</value> + <description> + Max number of connections. + </description> + </property> + + <property> + <name>oozie.service.HadoopAccessorService.kerberos.enabled</name> + <value>false</value> + <description> + Indicates if Oozie is configured to use Kerberos. + </description> + </property> + + <property> + <name>local.realm</name> + <value>LOCALHOST</value> + <description> + Kerberos Realm used by Oozie and Hadoop. Using 'local.realm' to be aligned with Hadoop configuration + </description> + </property> + + <property> + <name>oozie.service.HadoopAccessorService.keytab.file</name> + <value>${user.home}/oozie.keytab</value> + <description> + Location of the Oozie user keytab file. + </description> + </property> + + <property> + <name>oozie.service.HadoopAccessorService.kerberos.principal</name> + <value>${user.name}/localhost@${local.realm}</value> + <description> + Kerberos principal for Oozie service. + </description> + </property> + + <property> + <name>oozie.service.HadoopAccessorService.jobTracker.whitelist</name> + <value> </value> + <description> + Whitelisted job tracker for Oozie service. + </description> + </property> + + <property> + <name>oozie.service.HadoopAccessorService.nameNode.whitelist</name> + <value> </value> + <description> + Whitelisted job tracker for Oozie service. + </description> + </property> + + <property> + <name>oozie.service.HadoopAccessorService.hadoop.configurations</name> + <value>*=/etc/hadoop/conf</value> + <description> + Comma separated AUTHORITY=HADOOP_CONF_DIR, where AUTHORITY is the HOST:PORT of + the Hadoop service (JobTracker, HDFS). The wildcard '*' configuration is + used when there is no exact match for an authority. The HADOOP_CONF_DIR contains + the relevant Hadoop *-site.xml files. If the path is relative is looked within + the Oozie configuration directory; though the path can be absolute (i.e. to point + to Hadoop client conf/ directories in the local filesystem. + </description> + </property> + + <property> + <name>oozie.service.WorkflowAppService.system.libpath</name> + <value>/user/${user.name}/share/lib</value> + <description> + System library path to use for workflow applications. + This path is added to workflow application if their job properties sets + the property 'oozie.use.system.libpath' to true. + </description> + </property> + + <property> + <name>use.system.libpath.for.mapreduce.and.pig.jobs</name> + <value>false</value> + <description> + If set to true, submissions of MapReduce and Pig jobs will include + automatically the system library path, thus not requiring users to + specify where the Pig JAR files are. Instead, the ones from the system + library path are used. + </description> + </property> + + <property> + <name>oozie.authentication.type</name> + <value>simple</value> + <description> + Defines authentication used for Oozie HTTP endpoint. + Supported values are: simple | kerberos | #AUTHENTICATION_HANDLER_CLASSNAME# + </description> + </property> + + <property> + <name>oozie.authentication.token.validity</name> + <value>36000</value> + <description> + Indicates how long (in seconds) an authentication token is valid before it has + to be renewed. + </description> + </property> + + <property> + <name>oozie.authentication.signature.secret</name> + <value>oozie</value> + <description> + The signature secret for signing the authentication tokens. + If not set a random secret is generated at startup time. + In order to authentiation to work correctly across multiple hosts + the secret must be the same across al the hosts. + </description> + </property> + + <property> + <name>oozie.authentication.cookie.domain</name> + <value></value> + <description> + The domain to use for the HTTP cookie that stores the authentication token. + In order to authentiation to work correctly across multiple hosts + the domain must be correctly set. + </description> + </property> + + <property> + <name>oozie.authentication.simple.anonymous.allowed</name> + <value>true</value> + <description> + Indicates if anonymous requests are allowed. + This setting is meaningful only when using 'simple' authentication. + </description> + </property> + + <property> + <name>oozie.authentication.kerberos.principal</name> + <value>HTTP/localhost@${local.realm}</value> + <description> + Indicates the Kerberos principal to be used for HTTP endpoint. + The principal MUST start with 'HTTP/' as per Kerberos HTTP SPNEGO specification. + </description> + </property> + + <property> + <name>oozie.authentication.kerberos.keytab</name> + <value>${oozie.service.HadoopAccessorService.keytab.file}</value> + <description> + Location of the keytab file with the credentials for the principal. + Referring to the same keytab file Oozie uses for its Kerberos credentials for Hadoop. + </description> + </property> + + <property> + <name>oozie.authentication.kerberos.name.rules</name> + <value>DEFAULT</value> + <description> + The kerberos names rules is to resolve kerberos principal names, refer to Hadoop's + KerberosName for more details. + </description> + </property> + + <!-- Proxyuser Configuration --> + + <!-- + + <property> + <name>oozie.service.ProxyUserService.proxyuser.#USER#.hosts</name> + <value>*</value> + <description> + List of hosts the '#USER#' user is allowed to perform 'doAs' + operations. + + The '#USER#' must be replaced with the username o the user who is + allowed to perform 'doAs' operations. + + The value can be the '*' wildcard or a list of hostnames. + + For multiple users copy this property and replace the user name + in the property name. + </description> + </property> + + <property> + <name>oozie.service.ProxyUserService.proxyuser.#USER#.groups</name> + <value>*</value> + <description> + List of groups the '#USER#' user is allowed to impersonate users + from to perform 'doAs' operations. + + The '#USER#' must be replaced with the username o the user who is + allowed to perform 'doAs' operations. + + The value can be the '*' wildcard or a list of groups. + + For multiple users copy this property and replace the user name + in the property name. + </description> + </property> + + --> + + <!-- Default proxyuser configuration for Hue --> + + <property> + <name>oozie.service.ProxyUserService.proxyuser.hue.hosts</name> + <value>*</value> + </property> + + <property> + <name>oozie.service.ProxyUserService.proxyuser.hue.groups</name> + <value>*</value> + </property> + + <!-- enable uber jars --> + <property> + <name>oozie.action.mapreduce.uber.jar.enable</name> + <value>true</value> + </property> + +<% if @smtp_host -%> + <!-- smtp email configuration --> + <property> + <name>oozie.email.smtp.host</name> + <value><%= @smtp_host %></value> + </property> + <property> + <name>oozie.email.smtp.port</name> + <value><%= @smtp_port %></value> + </property> + +<% if @smtp_from_email -%> + <property> + <name>oozie.email.from.address</name> + <value><%= @smtp_from_email %></value> + </property> +<% end -%> + +<% if @smtp_username -%> + <property> + <name>oozie.email.smtp.auth</name> + <value>true</value> + </property> + <property> + <name>oozie.email.smtp.username</name> + <value><%= @smtp_username %></value> + </property> + <property> + <name>oozie.email.smtp.password</name> + <value><%= @smtp_password %></value> + </property> +<% end -%> + +<% end # if @smtp_host -%> + +</configuration> \ No newline at end of file -- To view, visit https://gerrit.wikimedia.org/r/69804 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I57d6289420e929f5badef04aab286c66db9bd3c5 Gerrit-PatchSet: 5 Gerrit-Project: operations/puppet/cdh4 Gerrit-Branch: master Gerrit-Owner: Ottomata <o...@wikimedia.org> Gerrit-Reviewer: Akosiaris <akosia...@wikimedia.org> Gerrit-Reviewer: Faidon <fai...@wikimedia.org> Gerrit-Reviewer: Ottomata <o...@wikimedia.org> Gerrit-Reviewer: jenkins-bot _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits