diff --git a/Vagrantfile b/Vagrantfile index 40abee7..ec775cc 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -35,13 +35,19 @@ def loadProfile() } end -# Pull the HDP version out of the hdp.repo file -def findVersion() - fileObj = File.new('files/repos/hdp.repo', 'r') +# Pull the HDP version out of the repository file. +def findVersion(profile) + if (profile[:os] == "centos") + path = 'files/repos/hdp.repo.%s' % profile[:hdp_short_version] + elsif (profile[:os] == "ubuntu") + path = 'files/repos/hdp.list.%s' % profile[:hdp_short_version] + end + + fileObj = File.new(path, 'r') match = /^#VERSION_NUMBER=(?[-0-9.]*)/.match(fileObj.gets) fileObj.close() result = match['ver'] - puts "HDP Version = %s\n" % result + puts "HDP Build = %s\n" % result return result end @@ -49,8 +55,18 @@ end # Define cluster profile = loadProfile() -hdp_version = findVersion() -rpm_version = hdp_version.gsub /[.-]/, '_' + +# Set defaults. +default_os = "centos" +default_hdp_short_version = "2.2.6" +default_ambari_version = "2.1.0" +default_java_version = "java-1.7.0-openjdk" + +profile[:hdp_short_version] ||= default_hdp_short_version +profile[:ambari_version] ||= default_ambari_version +profile[:java_version] ||= default_java_version +profile[:os] ||= default_os +hdp_version = findVersion(profile) Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| if Vagrant.has_plugin?("vagrant-cachier") @@ -60,7 +76,15 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # All Vagrant configuration is done here. The most common configuration # Every Vagrant virtual environment requires a box to build off of. - config.vm.box = "omalley/centos6_x64" + if (profile[:os] == "centos") + config.vm.box = "omalley/centos6_x64" + package_version = "_" + (hdp_version.gsub /[.-]/, '_') + start_script_path = "rc.d/init.d" + elsif (profile[:os] == "ubuntu") + config.vm.box = "ubuntu/trusty64" + package_version = "-" + (hdp_version.gsub /[.-]/, '-') + start_script_path = "init.d" + end config.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", profile[:vm_mem] ] @@ -81,18 +105,22 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| "--verbose", "--debug", "--fileserverconfig=/vagrant/fileserver.conf"] puppet.facter = { + "hdp_short_version" => profile[:hdp_short_version], + "ambari_version" => profile[:ambari_version], + "package_version" => package_version, + "start_script_path" => start_script_path, + "hostname" => node[:hostname], "roles" => node[:roles], "nodes" => profile[:nodes], "hdp_version" => hdp_version, - "rpm_version" => rpm_version, "domain" => profile[:domain], "security" => profile[:security], "realm" => profile[:realm], "clients" => profile[:clients], "server_mem" => profile[:server_mem], "client_mem" => profile[:client_mem], - "profile" => profile + "profile" => profile, } end end diff --git a/files/repos/ambari.repo.1.6.1 b/files/repos/ambari.repo.1.6.1 new file mode 100644 index 0000000..c9b70e1 --- /dev/null +++ b/files/repos/ambari.repo.1.6.1 @@ -0,0 +1,15 @@ +[ambari-1.x] +name=Ambari 1.x +baseurl=http://public-repo-1.hortonworks.com/ambari/centos6/1.x/GA +gpgcheck=1 +gpgkey=http://public-repo-1.hortonworks.com/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +enabled=1 +priority=1 + +[Updates-ambari-1.6.1] +name=ambari-1.6.1 - Updates +baseurl=http://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/1.6.1 +gpgcheck=1 +gpgkey=http://public-repo-1.hortonworks.com/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +enabled=1 +priority=1 diff --git a/files/repos/ambari.repo.1.7.0 b/files/repos/ambari.repo.1.7.0 new file mode 100644 index 0000000..d1ccd28 --- /dev/null +++ b/files/repos/ambari.repo.1.7.0 @@ -0,0 +1,15 @@ +[ambari-1.x] +name=Ambari 1.x +baseurl=http://public-repo-1.hortonworks.com/ambari/centos6/1.x/GA +gpgcheck=1 +gpgkey=http://public-repo-1.hortonworks.com/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +enabled=1 +priority=1 + +[Updates-ambari-1.7.0] +name=ambari-1.7.0 - Updates +baseurl=http://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/1.7.0 +gpgcheck=1 +gpgkey=http://public-repo-1.hortonworks.com/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +enabled=1 +priority=1 diff --git a/files/repos/ambari.repo.2.0.2 b/files/repos/ambari.repo.2.0.2 new file mode 100644 index 0000000..2cfdc47 --- /dev/null +++ b/files/repos/ambari.repo.2.0.2 @@ -0,0 +1,7 @@ +[Updates-ambari-2.0.2] +name=ambari-2.0.2 - Updates +baseurl=http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.0.2 +gpgcheck=1 +gpgkey=http://public-repo-1.hortonworks.com/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +enabled=1 +priority=1 diff --git a/files/repos/ambari.repo b/files/repos/ambari.repo.2.1.0 similarity index 100% rename from files/repos/ambari.repo rename to files/repos/ambari.repo.2.1.0 diff --git a/files/repos/hdp.list.2.2.6 b/files/repos/hdp.list.2.2.6 new file mode 100644 index 0000000..4e82755 --- /dev/null +++ b/files/repos/hdp.list.2.2.6 @@ -0,0 +1,3 @@ +#VERSION_NUMBER=2.2.6.0-2800 +deb http://public-repo-1.hortonworks.com/HDP/ubuntu12/2.x/updates/2.2.6.0 HDP main +deb http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/ubuntu12 HDP-UTILS main diff --git a/files/repos/hdp.repo b/files/repos/hdp.repo index dc062bf..aee3023 100644 --- a/files/repos/hdp.repo +++ b/files/repos/hdp.repo @@ -1,9 +1,9 @@ -#VERSION_NUMBER=2.2.6.0-2800 -[HDP-2.2.6.0] -name=HDP Version - HDP-2.2.6.0 -baseurl=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.2.6.0 +#VERSION_NUMBER=2.2.4.2-2 +[HDP-2.2.4.2] +name=HDP Version - HDP-2.2.4.2 +baseurl=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.2.4.2 gpgcheck=1 -gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.2.6.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.2.4.2/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1 @@ -12,6 +12,6 @@ priority=1 name=HDP Utils Version - HDP-UTILS-1.1.0.20 baseurl=http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6 gpgcheck=1 -gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.2.6.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.2.4.2/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1 diff --git a/files/repos/hdp.repo.1.3.10 b/files/repos/hdp.repo.1.3.10 new file mode 100644 index 0000000..38c144b --- /dev/null +++ b/files/repos/hdp.repo.1.3.10 @@ -0,0 +1,17 @@ +#VERSION_NUMBER=1.3.10.0-24 +[HDP-1.3.10.0] +name=Hortonworks Data Platform Version - HDP-1.3.10.0 +baseurl=http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.3.10.0 +gpgcheck=0 +gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.3.10.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +enabled=1 +priority=1 + + +[HDP-UTILS-1.1.0.16] +name=Hortonworks Data Platform Utils Version - HDP-UTILS-1.1.0.16 +baseurl=http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.16/repos/centos6 +gpgcheck=1 +gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.3.10.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +enabled=1 +priority=1 diff --git a/files/repos/hdp.repo.2.0.13 b/files/repos/hdp.repo.2.0.13 new file mode 100644 index 0000000..b747415 --- /dev/null +++ b/files/repos/hdp.repo.2.0.13 @@ -0,0 +1,17 @@ +#VERSION_NUMBER=2.0.13.0-43 +[HDP-2.0.13.0] +name=Hortonworks Data Platform Version - HDP-2.0.13.0 +baseurl=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.13.0 +gpgcheck=1 +gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.13.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +enabled=1 +priority=1 + + +[HDP-UTILS-1.1.0.16] +name=Hortonworks Data Platform Utils Version - HDP-UTILS-1.1.0.16 +baseurl=http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.16/repos/centos6 +gpgcheck=1 +gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.13.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +enabled=1 +priority=1 diff --git a/files/repos/hdp.repo.2.1.15 b/files/repos/hdp.repo.2.1.15 new file mode 100644 index 0000000..cd910ea --- /dev/null +++ b/files/repos/hdp.repo.2.1.15 @@ -0,0 +1,17 @@ +#VERSION_NUMBER=2.1.15.0-946 +[HDP-2.1.15.0] +name=Hortonworks Data Platform Version - HDP-2.1.15.0 +baseurl=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.1.15.0 +gpgcheck=1 +gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.1.15.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +enabled=1 +priority=1 + + +[HDP-UTILS-1.1.0.19] +name=Hortonworks Data Platform Utils Version - HDP-UTILS-1.1.0.19 +baseurl=http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.19/repos/centos6 +gpgcheck=1 +gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.1.15.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +enabled=1 +priority=1 diff --git a/files/repos/hdp.repo.2.3.0 b/files/repos/hdp.repo.2.3.0 new file mode 100644 index 0000000..ffbefd1 --- /dev/null +++ b/files/repos/hdp.repo.2.3.0 @@ -0,0 +1,17 @@ +#VERSION_NUMBER=2.3.0.0-2557 +[HDP-2.3.0.0] +name=HDP Version - HDP-2.3.0.0 +baseurl=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.0.0 +gpgcheck=1 +gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.0.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +enabled=1 +priority=1 + + +[HDP-UTILS-1.1.0.20] +name=HDP Utils Version - HDP-UTILS-1.1.0.20 +baseurl=http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6 +gpgcheck=1 +gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.0.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins +enabled=1 +priority=1 diff --git a/modules/hbase_client/manifests/init.pp b/modules/hbase_client/manifests/init.pp index bec1056..b1cbaa2 100644 --- a/modules/hbase_client/manifests/init.pp +++ b/modules/hbase_client/manifests/init.pp @@ -35,14 +35,14 @@ content => template('hbase_client/zk-jaas.erb'), } -> - Package["hbase_${rpm_version}"] + Package["hbase${package_version}"] } - package { "hbase_${rpm_version}": + package { "hbase${package_version}": ensure => installed, } -> - package { "phoenix_${rpm_version}": + package { "phoenix${package_version}": ensure => installed, } -> diff --git a/modules/hbase_master/manifests/init.pp b/modules/hbase_master/manifests/init.pp index dc86bd8..54fe277 100644 --- a/modules/hbase_master/manifests/init.pp +++ b/modules/hbase_master/manifests/init.pp @@ -16,10 +16,27 @@ class hbase_master { require hbase_server - $path="/usr/bin" + $path="/bin:/sbin:/usr/bin" - package { "hbase_${rpm_version}-master" : - ensure => installed, + case $operatingsystem { + 'centos': { + package { "hbase${package_version}-master" : + ensure => installed, + } + } + # XXX: Work around BUG-39010. + 'ubuntu': { + exec { "apt-get download hbase${package_version}-master": + cwd => "/tmp", + path => "$path", + } + -> + exec { "dpkg -i --force-overwrite hbase${package_version}*master*.deb": + cwd => "/tmp", + path => "$path", + user => "root", + } + } } -> exec { "hdp-select set hbase-master ${hdp_version}": diff --git a/modules/hbase_regionserver/manifests/init.pp b/modules/hbase_regionserver/manifests/init.pp index c56c1be..4327891 100644 --- a/modules/hbase_regionserver/manifests/init.pp +++ b/modules/hbase_regionserver/manifests/init.pp @@ -16,10 +16,33 @@ class hbase_regionserver { require hbase_server - $path="/usr/bin" + $path="/bin:/sbin:/usr/bin" - package { "hbase_${rpm_version}-regionserver" : - ensure => installed, + case $operatingsystem { + 'centos': { + package { "hbase${package_version}-regionserver" : + ensure => installed, + } + } + # XXX: Work around BUG-39010. + 'ubuntu': { + exec { "apt-get download hbase${package_version}-regionserver": + cwd => "/tmp", + path => "$path", + } + -> + exec { "dpkg -i --force-overwrite hbase${package_version}*.deb": + cwd => "/tmp", + path => "$path", + user => "root", + } + # Fix incorrect startup script permissions (XXX: Is a bug filed for this?). + -> + file { "/usr/hdp/${hdp_version}/etc/init.d/hbase-regionserver": + ensure => file, + mode => '755', + } + } } -> exec { "hdp-select set hbase-regionserver ${hdp_version}": diff --git a/modules/hdfs_client/manifests/init.pp b/modules/hdfs_client/manifests/init.pp index adfb70b..1d4e66b 100644 --- a/modules/hdfs_client/manifests/init.pp +++ b/modules/hdfs_client/manifests/init.pp @@ -25,7 +25,7 @@ $pid_dir="/var/run/pid" $keytab_dir="/etc/security/hadoop" - package { "hadoop_${rpm_version}": + package { "hadoop${package_version}": ensure => installed, } -> @@ -34,22 +34,30 @@ path => "$path", } - package { "hadoop_${rpm_version}-libhdfs": - ensure => installed, - require => Package["hadoop_${rpm_version}"], + if ($operatingsystem == "centos") { + package { "hadoop${package_version}-libhdfs": + ensure => installed, + require => Package["hadoop${package_version}"], + } + } + elsif ($operatingsystem == "ubuntu") { + package { "libhdfs0${package_version}": + ensure => installed, + require => Package["hadoop${package_version}"], + } } - package { "hadoop_${rpm_version}-client": + package { "hadoop${package_version}-client": ensure => installed, - require => Package["hadoop_${rpm_version}"], + require => Package["hadoop${package_version}"], } - package { "hadooplzo_${rpm_version}": + package { "hadooplzo${package_version}": ensure => installed, - require => Package["hadoop_${rpm_version}"], + require => Package["hadoop${package_version}"], } -> - package { "hadooplzo_${rpm_version}-native": + package { "hadooplzo${package_version}-native": ensure => installed, } @@ -61,8 +69,15 @@ ensure => installed, } - package { 'lzo': - ensure => installed, + if ($operatingsystem == "centos") { + package { 'lzo': + ensure => installed, + } + } + elsif ($operatingsystem == "ubuntu") { + package { 'liblzo2-2': + ensure => installed, + } } file { '/etc/hadoop': @@ -76,7 +91,7 @@ file { '/etc/hadoop/conf': ensure => 'link', target => "${conf_dir}", - require => Package["hadoop_${rpm_version}"], + require => Package["hadoop${package_version}"], force => true } diff --git a/modules/hdfs_datanode/manifests/init.pp b/modules/hdfs_datanode/manifests/init.pp index 0f0dfeb..f9b6129 100644 --- a/modules/hdfs_datanode/manifests/init.pp +++ b/modules/hdfs_datanode/manifests/init.pp @@ -30,10 +30,10 @@ mode => '400', } -> - Package["hadoop_${rpm_version}-hdfs-datanode"] + Package["hadoop${package_version}-hdfs-datanode"] } - package { "hadoop_${rpm_version}-hdfs-datanode" : + package { "hadoop${package_version}-hdfs-datanode" : ensure => installed, } -> @@ -44,11 +44,11 @@ -> file { "/etc/init.d/hadoop-hdfs-datanode": ensure => 'link', - target => "/usr/hdp/current/hadoop-hdfs-datanode/../etc/rc.d/init.d/hadoop-hdfs-datanode", + target => "/usr/hdp/current/hadoop-hdfs-datanode/../etc/${start_script_path}/hadoop-hdfs-datanode", } -> service {"hadoop-hdfs-datanode": ensure => running, enable => true, } -} \ No newline at end of file +} diff --git a/modules/hdfs_namenode/manifests/init.pp b/modules/hdfs_namenode/manifests/init.pp index a5cc75f..964240a 100644 --- a/modules/hdfs_namenode/manifests/init.pp +++ b/modules/hdfs_namenode/manifests/init.pp @@ -34,10 +34,10 @@ user => hdfs, } -> - Package["hadoop_${rpm_version}-hdfs-namenode"] + Package["hadoop${package_version}-hdfs-namenode"] } - package { "hadoop_${rpm_version}-hdfs-namenode" : + package { "hadoop${package_version}-hdfs-namenode" : ensure => installed, } -> @@ -48,7 +48,7 @@ -> file { "/etc/init.d/hadoop-hdfs-namenode": ensure => 'link', - target => "/usr/hdp/current/hadoop-hdfs-namenode/../etc/rc.d/init.d/hadoop-hdfs-namenode", + target => "/usr/hdp/current/hadoop-hdfs-namenode/../etc/${start_script_path}/hadoop-hdfs-namenode", } -> exec {"namenode-format": @@ -56,7 +56,7 @@ path => "$PATH", creates => "${hdfs_client::data_dir}/hdfs/namenode", user => "hdfs", - require => Package["hadoop_${rpm_version}-hdfs-namenode"], + require => Package["hadoop${package_version}-hdfs-namenode"], } -> service {"hadoop-hdfs-namenode": diff --git a/modules/hive_client/manifests/init.pp b/modules/hive_client/manifests/init.pp index 87b3cd7..374126e 100644 --- a/modules/hive_client/manifests/init.pp +++ b/modules/hive_client/manifests/init.pp @@ -16,7 +16,7 @@ class hive_client { require yarn_client - package { "hive_${rpm_version}": + package { "hive${package_version}": ensure => installed, } @@ -31,7 +31,7 @@ file { '/etc/hive/conf': ensure => 'link', target => '/etc/hive/hdp', - require => Package["hive_${rpm_version}"], + require => Package["hive${package_version}"], force => true } @@ -57,6 +57,6 @@ file { "/usr/hdp/${hdp_version}/hive/lib/mysql-connector-java.jar": ensure => 'link', target => '/usr/share/java/mysql-connector-java.jar', - require => Package["hive_${rpm_version}"], + require => Package["hive${package_version}"], } -} \ No newline at end of file +} diff --git a/modules/hive_db/files/my.cnf b/modules/hive_db/files/my.cnf new file mode 100644 index 0000000..37b2e9a --- /dev/null +++ b/modules/hive_db/files/my.cnf @@ -0,0 +1,127 @@ +# +# The MySQL database server configuration file. +# +# You can copy this to one of: +# - "/etc/mysql/my.cnf" to set global options, +# - "~/.my.cnf" to set user-specific options. +# +# One can use all long options that the program supports. +# Run program with --help to get a list of available options and with +# --print-defaults to see which it would actually understand and use. +# +# For explanations see +# http://dev.mysql.com/doc/mysql/en/server-system-variables.html + +# This will be passed to all mysql clients +# It has been reported that passwords should be enclosed with ticks/quotes +# escpecially if they contain "#" chars... +# Remember to edit /etc/mysql/debian.cnf when changing the socket location. +[client] +port = 3306 +socket = /var/run/mysqld/mysqld.sock + +# Here is entries for some specific programs +# The following values assume you have at least 32M ram + +# This was formally known as [safe_mysqld]. Both versions are currently parsed. +[mysqld_safe] +socket = /var/run/mysqld/mysqld.sock +nice = 0 + +[mysqld] +# +# * Basic Settings +# +user = mysql +pid-file = /var/run/mysqld/mysqld.pid +socket = /var/run/mysqld/mysqld.sock +port = 3306 +basedir = /usr +datadir = /var/lib/mysql +tmpdir = /tmp +lc-messages-dir = /usr/share/mysql +skip-external-locking +# +# Instead of skip-networking the default is now to listen only on +# localhost which is more compatible and is not less secure. +bind-address = 0.0.0.0 +# +# * Fine Tuning +# +key_buffer = 16M +max_allowed_packet = 16M +thread_stack = 192K +thread_cache_size = 8 +# This replaces the startup script and checks MyISAM tables if needed +# the first time they are touched +myisam-recover = BACKUP +#max_connections = 100 +#table_cache = 64 +#thread_concurrency = 10 +# +# * Query Cache Configuration +# +query_cache_limit = 1M +query_cache_size = 16M +# +# * Logging and Replication +# +# Both location gets rotated by the cronjob. +# Be aware that this log type is a performance killer. +# As of 5.1 you can enable the log at runtime! +#general_log_file = /var/log/mysql/mysql.log +#general_log = 1 +# +# Error log - should be very few entries. +# +log_error = /var/log/mysql/error.log +# +# Here you can see queries with especially long duration +#log_slow_queries = /var/log/mysql/mysql-slow.log +#long_query_time = 2 +#log-queries-not-using-indexes +# +# The following can be used as easy to replay backup logs or for replication. +# note: if you are setting up a replication slave, see README.Debian about +# other settings you may need to change. +#server-id = 1 +#log_bin = /var/log/mysql/mysql-bin.log +expire_logs_days = 10 +max_binlog_size = 100M +#binlog_do_db = include_database_name +#binlog_ignore_db = include_database_name +# +# * InnoDB +# +# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. +# Read the manual for more InnoDB related options. There are many! +# +# * Security Features +# +# Read the manual, too, if you want chroot! +# chroot = /var/lib/mysql/ +# +# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". +# +# ssl-ca=/etc/mysql/cacert.pem +# ssl-cert=/etc/mysql/server-cert.pem +# ssl-key=/etc/mysql/server-key.pem + + + +[mysqldump] +quick +quote-names +max_allowed_packet = 16M + +[mysql] +#no-auto-rehash # faster start of mysql but no tab completition + +[isamchk] +key_buffer = 16M + +# +# * IMPORTANT: Additional settings that can override those from this file! +# The files must end with '.cnf', otherwise they'll be ignored. +# +!includedir /etc/mysql/conf.d/ diff --git a/modules/hive_db/manifests/init.pp b/modules/hive_db/manifests/init.pp index 4043801..ccb95c1 100644 --- a/modules/hive_db/manifests/init.pp +++ b/modules/hive_db/manifests/init.pp @@ -16,13 +16,36 @@ class hive_db { $PATH = "/bin:/usr/bin" - package { 'mysql-server': - ensure => installed, - } - -> - service { 'mysqld': - ensure => running, - enable => true, + case $operatingsystem { + 'centos': { + package { 'mysql-server': + ensure => installed, + } + -> + service { 'mysqld': + ensure => running, + enable => true, + } + } + 'ubuntu': { + package { 'mysql-server': + ensure => installed, + } + -> + file { '/etc/mysql/my.cnf': + ensure => file, + source => 'puppet:///modules/hive_db/my.cnf', + owner => root, + group => root, + mode => '644', + notify => Service["mysql"], + } + + service { 'mysql': + ensure => running, + enable => true, + } + } } -> exec { "secure-mysqld": @@ -42,4 +65,4 @@ cwd => "/vagrant/modules/hive_db", creates => "/var/lib/mysql/hive", } -} \ No newline at end of file +} diff --git a/modules/hive_meta/manifests/init.pp b/modules/hive_meta/manifests/init.pp index be635eb..4036a7b 100644 --- a/modules/hive_meta/manifests/init.pp +++ b/modules/hive_meta/manifests/init.pp @@ -28,10 +28,10 @@ mode => '400', } -> - Package["hive_${rpm_version}-metastore"] + Package["hive${package_version}-metastore"] } - package { "hive_${rpm_version}-metastore": + package { "hive${package_version}-metastore": ensure => installed, } -> @@ -56,4 +56,4 @@ ensure => running, enable => true, } -} \ No newline at end of file +} diff --git a/modules/ip_setup/manifests/init.pp b/modules/ip_setup/manifests/init.pp index 6f29b8d..bdddf61 100644 --- a/modules/ip_setup/manifests/init.pp +++ b/modules/ip_setup/manifests/init.pp @@ -14,19 +14,20 @@ # limitations under the License. class ip_setup { + if ($operatingsystem == "centos") { + service {"iptables": + ensure => stopped, + enable => false, + } - service {"iptables": - ensure => stopped, - enable => false, - } - - service {"ip6tables": - ensure => stopped, - enable => false, + service {"ip6tables": + ensure => stopped, + enable => false, + } } file { '/etc/hosts': ensure => file, content => template('ip_setup/hosts.erb'), } -} \ No newline at end of file +} diff --git a/modules/jdk/manifests/init.pp b/modules/jdk/manifests/init.pp index 76a8a81..3bca9a6 100644 --- a/modules/jdk/manifests/init.pp +++ b/modules/jdk/manifests/init.pp @@ -16,16 +16,39 @@ class jdk { $HOME = "/usr/lib/jvm/java" - package { "java-1.7.0-openjdk": - ensure => installed, - } + if ($operatingsystem == "centos") { + package { "java-1.7.0-openjdk": + ensure => installed, + } - package { "java-1.7.0-openjdk-devel": - ensure => installed, + package { "java-1.7.0-openjdk-devel": + ensure => installed, + } + } + elsif ($operatingsystem == "ubuntu") { + package { "openjdk-7-jdk": + ensure => installed, + } + -> + file { $HOME: + ensure => 'link', + target => '/usr/lib/jvm/java-7-openjdk-amd64', + force => true + } + -> + file { "/usr/java": + ensure => 'directory' + } + -> + file { "/usr/java/default": + ensure => 'link', + target => '/usr/lib/jvm/java', + force => true + } } file { "/etc/profile.d/java.sh": ensure => "file", content => template('jdk/java.erb'), } -} \ No newline at end of file +} diff --git a/modules/kerberos_client/manifests/init.pp b/modules/kerberos_client/manifests/init.pp index b7ee859..fac97a1 100644 --- a/modules/kerberos_client/manifests/init.pp +++ b/modules/kerberos_client/manifests/init.pp @@ -16,21 +16,35 @@ class kerberos_client { require ntp - - package { 'krb5-auth-dialog': - ensure => installed, - } - - package { 'krb5-workstation': - ensure => installed, + case $operatingsystem { + 'centos': { + package { 'krb5-auth-dialog': + ensure => installed, + before => File['/etc/krb5.conf'], + } + package { 'krb5-workstation': + ensure => installed, + before => File['/etc/krb5.conf'], + } + package { 'krb5-libs': + ensure => installed, + before => File['/etc/krb5.conf'], + } + } + 'ubuntu': { + package { 'krb5-user': + ensure => installed, + before => File['/etc/krb5.conf'], + } + package { 'krb5-config': + ensure => installed, + before => File['/etc/krb5.conf'], + } + } } - package { 'krb5-libs': - ensure => installed, - } - -> file { '/etc/krb5.conf': ensure => file, content => template('kerberos_client/krb5.erb'), } -} \ No newline at end of file +} diff --git a/modules/kerberos_kdc/manifests/init.pp b/modules/kerberos_kdc/manifests/init.pp index 3ad05c1..907a2ba 100644 --- a/modules/kerberos_kdc/manifests/init.pp +++ b/modules/kerberos_kdc/manifests/init.pp @@ -18,11 +18,33 @@ $path="/bin:/usr/bin:/sbin:/usr/sbin" $password="vagrant" - package { 'krb5-server': - ensure => installed, + if ($operatingsystem == "centos") { + $kdcpath = "/var/kerberos/krb5kdc" } - -> - file { '/var/kerberos/krb5kdc/kdc.conf': + elsif ($operatingsystem == "ubuntu") { + $kdcpath = "/etc/krb5kdc" + } + + case $operatingsystem { + 'centos': { + package { 'krb5-server': + ensure => installed, + before => File["$kdcpath/kdc.conf"] + } + } + 'ubuntu': { + package { 'krb5-kdc': + ensure => installed, + } + -> + package { 'krb5-admin-server': + ensure => installed, + before => File["$kdcpath/kdc.conf"] + } + } + } + + file { "$kdcpath/kdc.conf": ensure => file, content => template('kerberos_kdc/kdc.erb'), } @@ -40,12 +62,24 @@ -> exec { 'kdc-init': command => "/vagrant/generated/create-kerberos-db", - creates => "/var/kerberos/krb5kdc/principal", + creates => "$kdcpath/principal", path => $path, } - -> - service { 'krb5kdc': - ensure => running, - enable => true, + + case $operatingsystem { + 'centos': { + service { 'krb5kdc': + ensure => running, + enable => true, + require => Exec['kdc-init'], + } + } + 'ubuntu': { + service { 'krb5-kdc': + ensure => running, + enable => true, + require => Exec['kdc-init'], + } + } } -} \ No newline at end of file +} diff --git a/modules/ntp/manifests/init.pp b/modules/ntp/manifests/init.pp index d6dcedf..a719c50 100644 --- a/modules/ntp/manifests/init.pp +++ b/modules/ntp/manifests/init.pp @@ -17,9 +17,18 @@ package { "ntp": ensure => installed, } - service { "ntp": - name => "ntpd", - ensure => running, - enable => true, + if ($operatingsystem == "centos") { + service { "ntp": + name => "ntpd", + ensure => running, + enable => true, + } } -} \ No newline at end of file + elsif ($operatingsystem == "ubuntu") { + service { "ntp": + name => "ntp", + ensure => running, + enable => true, + } + } +} diff --git a/modules/oozie_client/manifests/init.pp b/modules/oozie_client/manifests/init.pp index 65d8037..f128135 100644 --- a/modules/oozie_client/manifests/init.pp +++ b/modules/oozie_client/manifests/init.pp @@ -17,7 +17,7 @@ require repos_setup require hdp_select - package { "oozie_${rpm_version}-client": + package { "oozie${package_version}-client": ensure => installed, } @@ -25,4 +25,4 @@ ensure => file, content => template('oozie_client/oozie.erb'), } -} \ No newline at end of file +} diff --git a/modules/oozie_server/manifests/init.pp b/modules/oozie_server/manifests/init.pp index d7f7e01..aa245cc 100644 --- a/modules/oozie_server/manifests/init.pp +++ b/modules/oozie_server/manifests/init.pp @@ -39,20 +39,55 @@ user => 'oozie', } -> - Package["oozie_${rpm_version}"] + Package["oozie${package_version}"] $prepare_war_opts = "-secure" } - package { "oozie_${rpm_version}": + # XXX: Uncaptured dependencies on Ubuntu (needs Bug filed). + case $operatingsystem { + 'ubuntu': { + package { "zip": + ensure => installed, + before => Package["oozie${package_version}"], + } + package { "unzip": + ensure => installed, + before => Package["oozie${package_version}"], + } + } + default: {} + } + + package { "oozie${package_version}": ensure => installed, } -> + case $operatingsystem { + # XXX: More packaging bugs. + 'ubuntu': { + file { "/var/run/oozie": + ensure => directory, + owner => oozie, + group => oozie, + mode => '755', + } + file { "/var/tmp/oozie": + ensure => directory, + owner => oozie, + group => oozie, + mode => '755', + } + } + default: {} + } + file { "/etc/oozie": ensure => directory, owner => "root", group => "oozie", mode => "0750", + require => Package["oozie${package_version}"], } -> file { "${conf_dir}/adminusers.txt": @@ -151,4 +186,4 @@ ensure => running, enable => true, } -} \ No newline at end of file +} diff --git a/modules/pig_client/manifests/init.pp b/modules/pig_client/manifests/init.pp index bcf08a3..947f828 100644 --- a/modules/pig_client/manifests/init.pp +++ b/modules/pig_client/manifests/init.pp @@ -19,7 +19,7 @@ $conf_dir="/etc/pig/hdp" $path="/usr/bin" - package { "pig_${rpm_version}": + package { "pig${package_version}": ensure => present, } @@ -34,7 +34,7 @@ file { '/etc/pig/conf': ensure => 'link', target => "${conf_dir}", - require => Package["pig_${rpm_version}"], + require => Package["pig${package_version}"], force => true } @@ -52,4 +52,4 @@ ensure => file, content => template('pig_client/pig.erb'), } -} \ No newline at end of file +} diff --git a/modules/repos_setup/manifests/init.pp b/modules/repos_setup/manifests/init.pp index 6a02010..3881130 100644 --- a/modules/repos_setup/manifests/init.pp +++ b/modules/repos_setup/manifests/init.pp @@ -14,15 +14,40 @@ # limitations under the License. class repos_setup { - file { '/etc/yum.repos.d/hdp.repo': - ensure => file, - source => 'puppet:///files/repos/hdp.repo', - } - file { '/etc/yum.repos.d/ambari.repo': - ensure => file, - source => 'puppet:///files/repos/ambari.repo', + $PATH="/bin:/usr/bin" + + if ($operatingsystem == "centos") { + file { '/etc/yum.repos.d/hdp.repo': + ensure => file, + source => "puppet:///files/repos/hdp.repo.${hdp_short_version}", + } + file { '/etc/yum.repos.d/ambari.repo': + ensure => file, + source => "puppet:///files/repos/ambari.repo.${ambari_version}", + } + package { 'epel-release-6-8': + ensure => absent, + } } - package { 'epel-release-6-8': - ensure => absent, + elsif ($operatingsystem == "ubuntu") { + file { '/etc/apt/sources.list.d/hdp.list': + ensure => file, + source => "puppet:///files/repos/hdp.list.${hdp_short_version}", + } + -> + exec { "gpg-updates-import": + command => "gpg --keyserver pgp.mit.edu --recv-keys B9733A7A07513CAD", + path => "$PATH", + } + -> + exec { "gpg-updates-aptkey": + command => "gpg -a --export 07513CAD | apt-key add -", + path => "$PATH", + } + -> + exec { "refresh-apt-cache": + command => "apt-get update", + path => "$PATH", + } } } diff --git a/modules/selinux/manifests/init.pp b/modules/selinux/manifests/init.pp index 77d6eb4..bf831ea 100644 --- a/modules/selinux/manifests/init.pp +++ b/modules/selinux/manifests/init.pp @@ -15,8 +15,10 @@ # Turns of selinux so that mapreduce's task controller will work correctly class selinux { - file { '/etc/selinux/config': - ensure => file, - content => template('selinux/selinux.erb'), + if ($operatingsystem == "centos") { + file { '/etc/selinux/config': + ensure => file, + content => template('selinux/selinux.erb'), + } } -} \ No newline at end of file +} diff --git a/modules/ssh_keygen/files/authorized_keys b/modules/ssh_keygen/files/authorized_keys new file mode 100644 index 0000000..8dce3fa --- /dev/null +++ b/modules/ssh_keygen/files/authorized_keys @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWb1HUKRCUhVnHe+Qm7yA/iKJkucOL7lTIVKwspK3Qylp55M6cZ87XngfGvbgthO5ytnNboRWBGhxDoXFXTMUBdofiE5cXooSWhpp1YKlYZx/Ewl/muThk77myS0jjAMUDIvu67K6tfAYJ8kiuQsyKtjiiMCoL+3nbLXuW9RPLEOIXALKooXCJhFzPj+cFJGDy7qHK5QbKI011C462nvFkl3bhSUyfkbRTZXW5Bm6TAHrxQRXwQmEW0GB8e6PQkHwH90HHP9TiaGFB8OdP1pu+u2Q4xPn1YRfqCSX/Jpi/zn3KUySbjgAM4bmALbka2Gex1tFS6Yk3gr5VBhJFXckR carter@HW11972.local diff --git a/modules/ssh_keygen/files/id_rsa b/modules/ssh_keygen/files/id_rsa new file mode 100644 index 0000000..5c42a14 --- /dev/null +++ b/modules/ssh_keygen/files/id_rsa @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA1m9R1CkQlIVZx3vkJu8gP4iiZLnDi+5UyFSsLKSt0MpaeeTO +nGfO154Hxr24LYTucrZzW6EVgRocQ6FxV0zFAXaH4hOXF6KEloaadWCpWGcfxMJf +5rk4ZO+5sktI4wDFAyL7uuyurXwGCfJIrkLMirY4ojAqC/t52y17lvUTyxDiFwCy +qKFwiYRcz4/nBSRg8u6hyuUGyiNNdQuOtp7xZJd24UlMn5G0U2V1uQZukwB68UEV +8EJhFtBgfHuj0JB8B/dBxz/U4mhhQfDnT9abvrtkOMT59WEX6gkl/yaYv859ylMk +m44ADOG5gC25GthnsdbRUumJN4K+VQYSRV3JEQIDAQABAoIBAASAkddChXaY1im6 +EDBBFQxAcihrPg/SETWjkXnee0fG999XTn86Lr2YM9GYaiWKhPcjnYhu+WSch7tj +yF1s3zYIpxG4F5QHdYEzkkqknOmeQKyA6EKP4P89iUiVDBK4EWrfcSmbjo9V60qK +K7x86o5/BPFi0X8u6IARlGa2/pNk3X4Iqy+LXI4ipow+MRB3bwdWTR0C9Tl3QcE/ +FgB+O4h7deGhpbCcEdEYfJb4blhkNXmQvQZC57Io40UYaLkqn87j21hzPEeQwYrN +C3albHKWlxeOGMUqlAk/XdmNrPfbP8KMgO3upV0jFOOATXtCu7n/uUPQFddoVDhu +EQSYigECgYEA+oESO8nmkZHnuhwYouX6y+xJou8LO/pQ0Sw/yvxpWk85ADcEDJBV +KV+rWM+wK6Lv2QAcPRptZJv5b4VFrzZjPrhUUsOEvGGzGfAyP+yYJDrdFk1mP29S +d5bdKWRkmvcW3CLbOD9+VgqVxI1ptgEex/nk+uTRgtxrY5zGZbv7YJUCgYEA2yOr +QrzEht/yFv/6vmr6DFMMWoWDDPcsrU6Xz7Zx3UasKc+RSJHiyf23kRsB7HWLE3jr +EBdVXcUmTZ62XH7DYj0YGWBGH2xsJGzMX0JVtIlBtnNVvOSwopcA/ev2XAK5MPKV +CymJGO7dcL8x+ATZEXFZapv7cB/lkCjwhVf6e40CgYEAx+GXb/eRL5RRZ3Ilwk1p +ia+3rfe5ahk4xT7ehBRV6AaQv/gmFfRQz5uTuGC3/ImdgfQRlDvzD7VZGcAosz7d +f91LA2MZFcuLQmYjYlhhqX8CjFoj/PfRwLSzMeT2VaRVLD/v1fjr0LHPgS8pK13H +dt+R8xQDjLxeP/SHZgPR9+UCgYBVYRpS0DVJz2sFJwrMseVmc9z2T9p1bMBNbbec +SBso+WYOjD6wpZZU2LNyp7EiLdHX7l63UEAEXtHDoDiw5Pq/Bcqj6GypxZaEwpcF +7lRyGKAvs9QN2pQvZOIQDKVZx/3bYkhLpw0xV6+TRAr19P2V3DHYZZmbX/ITLsA3 +U8XV6QKBgQCNNQh+UvgzNyu1YFbB8FjNHN7ZYehb/a04rxVwng2V0ejmx+yhR/VC +hO96FcsxkEnX1HLmtGwcdVgATRA8ryp64/B3aSgJ6dAs7Oe4VPHX+L8OU8CleG3l +YjUk8VYjcOpIFIDJ+qEWg0shAXZQBS0mrgtjsqkP+QHyoBEU/gnOPg== +-----END RSA PRIVATE KEY----- diff --git a/modules/ssh_keygen/files/id_rsa.pub b/modules/ssh_keygen/files/id_rsa.pub new file mode 100644 index 0000000..8dce3fa --- /dev/null +++ b/modules/ssh_keygen/files/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWb1HUKRCUhVnHe+Qm7yA/iKJkucOL7lTIVKwspK3Qylp55M6cZ87XngfGvbgthO5ytnNboRWBGhxDoXFXTMUBdofiE5cXooSWhpp1YKlYZx/Ewl/muThk77myS0jjAMUDIvu67K6tfAYJ8kiuQsyKtjiiMCoL+3nbLXuW9RPLEOIXALKooXCJhFzPj+cFJGDy7qHK5QbKI011C462nvFkl3bhSUyfkbRTZXW5Bm6TAHrxQRXwQmEW0GB8e6PQkHwH90HHP9TiaGFB8OdP1pu+u2Q4xPn1YRfqCSX/Jpi/zn3KUySbjgAM4bmALbka2Gex1tFS6Yk3gr5VBhJFXckR carter@HW11972.local diff --git a/modules/ssh_keygen/manifests/init.pp b/modules/ssh_keygen/manifests/init.pp new file mode 100644 index 0000000..ce7f956 --- /dev/null +++ b/modules/ssh_keygen/manifests/init.pp @@ -0,0 +1,53 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +class ssh_keygen { + $path = "/bin:/usr/bin" + + file { '/root/.ssh': + ensure => directory, + mode => 'go-rwx', + } + -> + file { '/root/.ssh/id_rsa': + ensure => file, + source => 'puppet:///modules/ssh_keygen/id_rsa', + owner => root, + group => root, + mode => '600', + } + -> + file { '/root/.ssh/id_rsa.pub': + ensure => file, + source => 'puppet:///modules/ssh_keygen/id_rsa.pub', + owner => root, + group => root, + mode => '644', + } + -> + file { '/root/.ssh/authorized_keys': + ensure => file, + source => 'puppet:///modules/ssh_keygen/authorized_keys', + owner => root, + group => root, + mode => '644', + } + -> + exec { 'known_hosts' : + path => $path, + command => 'ssh-keyscan -H `hostname` > /root/.ssh/known_hosts', + unless => 'test -f /root/.ssh/known_hosts', + } +} diff --git a/modules/tez_client/manifests/init.pp b/modules/tez_client/manifests/init.pp index b6c29bd..475d090 100644 --- a/modules/tez_client/manifests/init.pp +++ b/modules/tez_client/manifests/init.pp @@ -18,7 +18,7 @@ $conf_dir="/etc/tez/hdp" - package { "tez_${rpm_version}": + package { "tez${package_version}": ensure => installed, } -> @@ -45,4 +45,4 @@ ensure => file, content => template('tez_client/tez-site.erb'), } -} \ No newline at end of file +} diff --git a/modules/yarn_client/manifests/init.pp b/modules/yarn_client/manifests/init.pp index b59306b..51fa251 100644 --- a/modules/yarn_client/manifests/init.pp +++ b/modules/yarn_client/manifests/init.pp @@ -21,7 +21,7 @@ $user_logs = "/user/yarn/" $path="/usr/bin" - package { "hadoop_${rpm_version}-yarn": + package { "hadoop${package_version}-yarn": ensure => installed, } -> @@ -30,7 +30,7 @@ target => "/usr/hdp/${hdp_version}/hadoop/libexec", } - package { "hadoop_${rpm_version}-mapreduce": + package { "hadoop${package_version}-mapreduce": ensure => installed, } -> @@ -73,4 +73,4 @@ ensure => file, content => template('yarn_client/yarn-site.erb'), } -} \ No newline at end of file +} diff --git a/modules/yarn_node_manager/manifests/init.pp b/modules/yarn_node_manager/manifests/init.pp index f0cded4..9083bb2 100644 --- a/modules/yarn_node_manager/manifests/init.pp +++ b/modules/yarn_node_manager/manifests/init.pp @@ -17,7 +17,7 @@ require yarn_client require hadoop_server - $path="/usr/bin" + $path="/bin:/usr/bin" if $security == "true" { require kerberos_http @@ -38,10 +38,10 @@ mode => 400, } -> - Package["hadoop_${rpm_version}-yarn-nodemanager"] + Package["hadoop${package_version}-yarn-nodemanager"] } - package { "hadoop_${rpm_version}-yarn-nodemanager" : + package { "hadoop${package_version}-yarn-nodemanager" : ensure => installed, } -> @@ -52,7 +52,19 @@ -> file { "/etc/init.d/hadoop-yarn-nodemanager": ensure => 'link', - target => "/usr/hdp/current/hadoop-yarn-nodemanager/../etc/rc.d/init.d/hadoop-yarn-nodemanager", + target => "/usr/hdp/current/hadoop-yarn-nodemanager/../etc/${start_script_path}/hadoop-yarn-nodemanager", + } + -> + exec { "chgrp yarn /usr/hdp/${hdp_version}/hadoop-yarn/bin/container-executor": + # Bug: The Ubuntu packages don't work on secure cluster due to wrong group membership. + cwd => "/", + path => "$path", + } + -> + exec { "chmod 6050 /usr/hdp/${hdp_version}/hadoop-yarn/bin/container-executor": + # Bug: Puppet can't deal with a mode of 6050. + cwd => "/", + path => "$path", } -> service {"hadoop-yarn-nodemanager": @@ -60,4 +72,4 @@ enable => true, } -} \ No newline at end of file +} diff --git a/modules/yarn_resource_manager/manifests/init.pp b/modules/yarn_resource_manager/manifests/init.pp index a9ce079..1b10805 100644 --- a/modules/yarn_resource_manager/manifests/init.pp +++ b/modules/yarn_resource_manager/manifests/init.pp @@ -30,7 +30,7 @@ mode => '400', } -> - Package["hadoop_${rpm_version}-mapreduce-historyserver"] + Package["hadoop${package_version}-mapreduce-historyserver"] file { "${hdfs_client::keytab_dir}/jhs.keytab": ensure => file, @@ -40,10 +40,10 @@ mode => '400', } -> - Package["hadoop_${rpm_version}-yarn-resourcemanager"] + Package["hadoop${package_version}-yarn-resourcemanager"] } - package { "hadoop_${rpm_version}-yarn-resourcemanager" : + package { "hadoop${package_version}-yarn-resourcemanager" : ensure => installed, } -> @@ -54,7 +54,7 @@ -> file { "/etc/init.d/hadoop-yarn-resourcemanager": ensure => 'link', - target => "/usr/hdp/current/hadoop-yarn-resourcemanager/../etc/rc.d/init.d/hadoop-yarn-resourcemanager", + target => "/usr/hdp/current/hadoop-yarn-resourcemanager/../etc/${start_script_path}/hadoop-yarn-resourcemanager", } -> service {"hadoop-yarn-resourcemanager": @@ -62,7 +62,7 @@ enable => true, } - package { "hadoop_${rpm_version}-mapreduce-historyserver" : + package { "hadoop${package_version}-mapreduce-historyserver" : ensure => installed, } -> @@ -73,11 +73,11 @@ -> file { "/etc/init.d/hadoop-mapreduce-historyserver": ensure => 'link', - target => "/usr/hdp/current/hadoop-mapreduce-historyserver/../etc/rc.d/init.d/hadoop-mapreduce-historyserver", + target => "/usr/hdp/current/hadoop-mapreduce-historyserver/../etc/${start_script_path}/hadoop-mapreduce-historyserver", } -> service {"hadoop-mapreduce-historyserver": ensure => running, enable => true, } -} \ No newline at end of file +} diff --git a/modules/zookeeper_client/manifests/init.pp b/modules/zookeeper_client/manifests/init.pp index 49006c9..643e781 100644 --- a/modules/zookeeper_client/manifests/init.pp +++ b/modules/zookeeper_client/manifests/init.pp @@ -24,7 +24,7 @@ $pid_dir="/var/run/pid/zookeeper" $path="/usr/bin" - package { "zookeeper_${rpm_version}": + package { "zookeeper${package_version}": ensure => installed, } -> @@ -44,7 +44,7 @@ file { '/etc/zookeeper/conf': ensure => 'link', target => "${conf_dir}", - require => Package["zookeeper_${rpm_version}"], + require => Package["zookeeper${package_version}"], force => true } diff --git a/modules/zookeeper_server/manifests/init.pp b/modules/zookeeper_server/manifests/init.pp index b461ea4..8293468 100644 --- a/modules/zookeeper_server/manifests/init.pp +++ b/modules/zookeeper_server/manifests/init.pp @@ -16,14 +16,14 @@ class zookeeper_server { require zookeeper_client - $path="/usr/bin" + $path="/bin:/sbin:/usr/bin" if $security == "true" { file { "${zookeeper_client::conf_dir}/zookeeper-server.jaas": ensure => file, content => template('zookeeper_server/zookeeper-server.erb'), } - -> Package["zookeeper_${rpm_version}-server"] + -> Service["zookeeper-server"] file { "${hdfs_client::keytab_dir}/zookeeper.keytab": ensure => file, @@ -32,12 +32,34 @@ group => hadoop, mode => '400', } - -> - Package["zookeeper_${rpm_version}-server"] + -> Service["zookeeper-server"] } - package { "zookeeper_${rpm_version}-server": - ensure => installed, + case $operatingsystem { + 'centos': { + package { "zookeeper${package_version}-server": + ensure => installed, + } + } + # XXX: Work around BUG-39010. + 'ubuntu': { + exec { "apt-get download zookeeper${package_version}-server": + cwd => "/tmp", + path => "$path", + } + -> + exec { "dpkg -i --force-overwrite zookeeper${package_version}*.deb": + cwd => "/tmp", + path => "$path", + user => "root", + } + # Fix incorrect startup script permissions (XXX: Is a bug filed for this?). + -> + file { "/usr/hdp/${hdp_version}/etc/init.d/zookeeper-server": + ensure => file, + mode => '755', + } + } } -> exec { "hdp-select set zookeeper-server ${hdp_version}": @@ -52,7 +74,7 @@ -> file { "/etc/init.d/zookeeper-server": ensure => 'link', - target => "/usr/hdp/current/zookeeper-server/../etc/rc.d/init.d/zookeeper-server", + target => "/usr/hdp/current/zookeeper-server/../etc/${start_script_path}/zookeeper-server", } -> file { "${zookeeper_client::data_dir}": @@ -85,4 +107,4 @@ ensure => running, enable => true, } -} \ No newline at end of file +}