This is an automated email from the ASF dual-hosted git repository.

sekikn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bigtop.git


The following commit(s) were added to refs/heads/master by this push:
     new 63706a1ad BIGTOP-4035: Fix ranger deb packaging and puppet script 
(#1204)
63706a1ad is described below

commit 63706a1ad5d2a2ee4fde673f9877ed9b732c5233
Author: jialiang <[email protected]>
AuthorDate: Wed Nov 1 22:09:03 2023 +0800

    BIGTOP-4035: Fix ranger deb packaging and puppet script (#1204)
    
    * BIGTOP-4035: Fix ranger deb packaging and puppet script
    
    * fix rocky8 python package name
    
    * add rocky for latest Rocky images
    
    ---------
    
    Co-authored-by: jialiang <[email protected]>
---
 .../puppet/modules/ranger/manifests/init.pp        | 72 +++++++++++++---------
 .../templates/ranger-admin/install.properties      |  2 +-
 bigtop-packages/src/deb/ranger/control             |  2 +-
 bigtop-packages/src/deb/ranger/ranger.postinst.tpl |  2 +-
 bigtop-packages/src/deb/ranger/ranger.prerm.tpl    |  2 +-
 bigtop-packages/src/deb/ranger/rules               | 13 ++--
 bigtop-packages/src/rpm/ranger/SPECS/ranger.spec   |  2 +-
 7 files changed, 54 insertions(+), 41 deletions(-)

diff --git a/bigtop-deploy/puppet/modules/ranger/manifests/init.pp 
b/bigtop-deploy/puppet/modules/ranger/manifests/init.pp
index bdbc36647..7abb4f519 100644
--- a/bigtop-deploy/puppet/modules/ranger/manifests/init.pp
+++ b/bigtop-deploy/puppet/modules/ranger/manifests/init.pp
@@ -17,63 +17,75 @@ class ranger {
 
   class deploy($roles) {
     if ('ranger-server' in $roles) {
-      include ranger::prerequisites
       include ranger::admin
     }
   }
 
-  class prerequisites {
+
+  class admin($admin_password) {
     # Before Facter 3.14.17, Rocky Linux 8 is detected as 'RedHat'.
     # 
https://puppet.com/docs/pe/2019.8/osp/release_notes_facter.html#enhancements-3-14-17
-    if (($operatingsystem == 'RedHat' or $operatingsystem == 'Rocky') and 0 <= 
versioncmp($operatingsystemmajrelease, '8')) {
-      # For some reason, 'python3' doesn't seem to work on Rocky Linux 8.
+    if ( $operatingsystem =~ /^(?i:(redhat|rocky))$/ and 0 <= 
versioncmp($operatingsystemmajrelease, '8')) {
       $python = 'python36'
     } else {
       $python = 'python3'
     }
 
-    package { ['postgresql-jdbc', 'postgresql-server', $python]:
-      ensure => latest,
+    package { ['ranger-admin', $python]:
+          ensure => latest,
     }
 
-    exec { 'initdb':
-      command => '/usr/bin/pg_ctl initdb -D /var/lib/pgsql/data',
-      user    => 'postgres',
-      require => Package['postgresql-jdbc', 'postgresql-server', $python],
-    }
+    if ($operatingsystem =~ /^(?i:(ubuntu|debian))$/) {
+      service { 'postgresql':
+        ensure  => running,
+        require => Package[$python, 'ranger-admin'],
+      }
 
-    service { 'postgresql':
-      ensure  => running,
-      require => Exec['initdb'],
+      file { '/usr/share/java/postgresql-jdbc.jar':
+        ensure => link,
+        target => '/usr/share/java/postgresql.jar',
+        require => Package[$python, 'ranger-admin'],
+      }
+    } else {
+      exec { 'initdb':
+        command => '/usr/bin/pg_ctl initdb -D /var/lib/pgsql/data',
+        user    => 'postgres',
+        require => Package[$python, 'ranger-admin'],
+      }
+
+      service { 'postgresql':
+        ensure  => running,
+        require => Exec['initdb'],
+      }
     }
-  }
 
-  class admin($admin_password) {
-    package { 'ranger-admin':
-      ensure  => latest,
-      require => Class['ranger::prerequisites'],
+    exec { 'change_postgres_password':
+      path    => ['/usr/bin', '/bin','/sbin'],
+      command => "sudo -u postgres psql -c \"ALTER USER postgres WITH PASSWORD 
'admin';\"",
+      require => Service['postgresql'],
     }
 
     file { '/usr/lib/ranger-admin/install.properties':
       content => template('ranger/ranger-admin/install.properties'),
-      require => Package['ranger-admin'],
+      require => [Package['ranger-admin'], Exec['change_postgres_password']]
     }
 
-    exec { '/usr/lib/ranger-admin/setup.sh':
-      cwd         => '/usr/lib/ranger-admin',
-      environment => 'JAVA_HOME=/usr/lib/jvm/java-1.8.0',
-      require     => File['/usr/lib/ranger-admin/install.properties'],
+    exec { 'setup.sh':
+      command => '/bin/bash -c "source 
/usr/lib/bigtop-utils/bigtop-detect-javahome && 
/usr/lib/ranger-admin/setup.sh"',
+      cwd     => '/usr/lib/ranger-admin',
+      require => File['/usr/lib/ranger-admin/install.properties'],
     }
 
-    exec { '/usr/lib/ranger-admin/set_globals.sh':
-      cwd         => '/usr/lib/ranger-admin',
-      environment => 'JAVA_HOME=/usr/lib/jvm/java-1.8.0',
-      require     => Exec['/usr/lib/ranger-admin/setup.sh'],
+    exec { 'set_globals.sh':
+      command => '/bin/bash -c "source 
/usr/lib/bigtop-utils/bigtop-detect-javahome && 
/usr/lib/ranger-admin/set_globals.sh"',
+      cwd     => '/usr/lib/ranger-admin',
+      require => Exec['setup.sh'],
     }
 
     exec { 'systemctl daemon-reload':
       path    => ["/bin", "/usr/bin"],
-      require => Exec['/usr/lib/ranger-admin/set_globals.sh'],
+      command => "systemctl daemon-reload",
+      require => Exec['set_globals.sh'],
     }
     
     if ($operatingsystem == 'openEuler') {
@@ -88,4 +100,4 @@ class ranger {
       }
     }
   }
-}
+}
\ No newline at end of file
diff --git 
a/bigtop-deploy/puppet/modules/ranger/templates/ranger-admin/install.properties 
b/bigtop-deploy/puppet/modules/ranger/templates/ranger-admin/install.properties
index 3affac499..3b284c427 100644
--- 
a/bigtop-deploy/puppet/modules/ranger/templates/ranger-admin/install.properties
+++ 
b/bigtop-deploy/puppet/modules/ranger/templates/ranger-admin/install.properties
@@ -50,7 +50,7 @@ SQL_CONNECTOR_JAR=/usr/share/java/postgresql-jdbc.jar
 #db_host=host:port:SID          # for DB_FLAVOR=ORACLE                         
 #for SID example: db_host=localhost:1521:ORCL
 #db_host=host:port/ServiceName  # for DB_FLAVOR=ORACLE                         
 #for Service example: db_host=localhost:1521/XE
 db_root_user=postgres
-db_root_password=
+db_root_password=admin
 db_host=localhost
 #SSL config
 db_ssl_enabled=false
diff --git a/bigtop-packages/src/deb/ranger/control 
b/bigtop-packages/src/deb/ranger/control
index cb231198c..d3284795c 100644
--- a/bigtop-packages/src/deb/ranger/control
+++ b/bigtop-packages/src/deb/ranger/control
@@ -35,7 +35,7 @@ Description: Apache Ranger is a framework to enable,
 
 Package: ranger-admin
 Architecture: all
-Depends: adduser, postgresql (>= 8.1), bigtop-utils (>= 0.7), python | python2
+Depends: adduser, postgresql (>= 8.1), libpostgresql-jdbc-java, bigtop-utils 
(>= 0.7), python | python2
 Description: Ranger-admin is admin component associated with the Ranger 
framework
 
 Package: ranger-usersync
diff --git a/bigtop-packages/src/deb/ranger/ranger.postinst.tpl 
b/bigtop-packages/src/deb/ranger/ranger.postinst.tpl
index b518350ca..a0be1993d 100644
--- a/bigtop-packages/src/deb/ranger/ranger.postinst.tpl
+++ b/bigtop-packages/src/deb/ranger/ranger.postinst.tpl
@@ -21,7 +21,7 @@ set -e
 
 case "$1" in
        configure)
-                update-alternatives --install /etc/ranger/conf ranger-conf 
@etc_ranger@/conf.dist 30
+                update-alternatives --install 
/etc/ranger/@component_name@/conf ranger-@component_name@-conf 
@etc_ranger@/@component_name@/conf.dist 30
                chown ranger:ranger -R /var/run/ranger /var/log/ranger 
@var_lib_ranger@
        ;;
 
diff --git a/bigtop-packages/src/deb/ranger/ranger.prerm.tpl 
b/bigtop-packages/src/deb/ranger/ranger.prerm.tpl
index f5ad52e68..32199024c 100644
--- a/bigtop-packages/src/deb/ranger/ranger.prerm.tpl
+++ b/bigtop-packages/src/deb/ranger/ranger.prerm.tpl
@@ -35,7 +35,7 @@ set -e
 
 case "$1" in
     remove|upgrade|deconfigure)
-      update-alternatives --remove ranger-conf @etc_ranger@/conf.dist || :
+      update-alternatives --remove ranger-@component_name@-conf 
@etc_ranger@/@component_name@/conf.dist || :
     ;;
 
     failed-upgrade)
diff --git a/bigtop-packages/src/deb/ranger/rules 
b/bigtop-packages/src/deb/ranger/rules
index c9c50ddb5..94d53cd20 100755
--- a/bigtop-packages/src/deb/ranger/rules
+++ b/bigtop-packages/src/deb/ranger/rules
@@ -38,6 +38,7 @@ etc_default=/etc/default
 etc_ranger=/etc/${ranger_name}
 var_lib_ranger=/var/lib/${ranger_name}
 var_run_ranger=/var/run/${ranger_name}
+var_log_ranger=/var/log/${ranger_name}
 
 usr_lib_hadoop=/usr/lib/hadoop
 usr_lib_hive=/usr/lib/hive
@@ -56,28 +57,28 @@ usr_lib_presto=/usr/lib/presto
 define ranger_admin_install
 ${var_lib_ranger}
 ${var_run_ranger}
-${etc_ranger}/admin/conf.dist
 ${etc_ranger}/admin
 ${usr_lib_ranger}-admin
+${var_log_ranger}
 endef
 
 define ranger_usersync_install
 ${usr_lib_ranger}-usersync
 ${usr_lib_ranger}-usersync/native/credValidator.uexe
-${etc_ranger}/usersync/conf.dist
 ${etc_ranger}/usersync
+${var_log_ranger}
 endef
 
 define ranger_kms_install
 ${usr_lib_ranger}-kms
-${etc_ranger}/kms/conf.dist
 ${etc_ranger}/kms
+${var_log_ranger}
 endef
 
 define ranger_tagsync_install
 ${usr_lib_ranger}-tagsync
-${etc_ranger}/tagsync/conf.dist
 ${etc_ranger}/tagsync
+${var_log_ranger}
 endef
 
 define ranger_hdfs_plugin_install
@@ -155,8 +156,8 @@ endef
 
 define gen_rule
 $(foreach item, postinst preinst prerm,\
-       cp debian/ranger.$(item).tpl debian/range-$(1).$(item);\
-       sed -i -e 's:@var_lib_ranger@:${var_lib_ranger}:g' -e 
's:@etc_ranger@:${etc_ranger}:g' debian/range-$(1).$(item);\
+       cp debian/ranger.$(item).tpl debian/ranger-$(1).$(item);\
+       sed -i -e 's:@var_lib_ranger@:${var_lib_ranger}:g' -e 
's:@etc_ranger@:${etc_ranger}:g' -e 's:@component_name@:$(1):g' 
debian/ranger-$(1).$(item);\
 )
 endef
 
diff --git a/bigtop-packages/src/rpm/ranger/SPECS/ranger.spec 
b/bigtop-packages/src/rpm/ranger/SPECS/ranger.spec
index d09376acd..19bfa2344 100644
--- a/bigtop-packages/src/rpm/ranger/SPECS/ranger.spec
+++ b/bigtop-packages/src/rpm/ranger/SPECS/ranger.spec
@@ -138,7 +138,7 @@ Ranger is a framework to secure hadoop data
 %package admin
 Summary: Web Interface for Ranger
 Group: System/Daemons
-Requires: coreutils, /usr/sbin/useradd, /usr/sbin/usermod, /sbin/chkconfig, 
/sbin/service
+Requires: coreutils, postgresql-server >= 8.1, postgresql-jdbc, 
/usr/sbin/useradd, /usr/sbin/usermod, /sbin/chkconfig, /sbin/service
 Requires: psmisc
 # Sadly, Sun/Oracle JDK in RPM form doesn't provide libjvm.so, which means we 
have
 # to set AutoReq to no in order to minimize confusion. Not ideal, but seems to 
work.

Reply via email to