commit b21a07303456520b37b5e253bd583361522215b3 Author: Daniel Berteaud Date: Fri Mar 16 18:09:46 2012 +0100 Initial commit diff --git a/createlinks b/createlinks new file mode 100644 index 0000000..1241f20 --- /dev/null +++ b/createlinks @@ -0,0 +1,10 @@ +#!/usr/bin/perl -w + +use esmith::Build::CreateLinks qw(:all); + +event_link("wpkg-init", "wpkg-update", "20"); +event_link("wpkg-init", "ipasserelle-update", "20"); +event_link("initialize-default-databases", "wpkg-update", "02"); + +templates2events("/home/e-smith/files/shares/wpkg/files/settings/wpkg-gp/Wpkg-GP.ini", qw(wpkg-update bootstrap-console-save)); +templates2events("/home/e-smith/files/shares/tools/files/scripts/conf.bat", qw(wpkg-update bootstrap-console-save)); diff --git a/ipasserelle-gp.spec b/ipasserelle-gp.spec new file mode 100644 index 0000000..5bbeaeb --- /dev/null +++ b/ipasserelle-gp.spec @@ -0,0 +1,53 @@ +%define version 0.0.1 +%define release 1.beta3 +%define name ipasserelle-gp + + +Summary: Gestion de Parc iPasserelle +Name: %{name} +Version: %{version} +Release: %{release}%{?dist} +License: GPL +Group: Networking/Daemons +Source: %{name}-%{version}.tar.gz + +BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot +BuildArchitectures: noarch +BuildRequires: e-smith-devtools + +Requires: ipasserelle-base + +%description +This package helps you managing MS Windows workstations using WPKG +and some other tools + +%changelog +* Fri Mar 16 2012 Daniel Berteaud 0.0.1-1.sme +- initial release + + +%prep +%setup -q -n %{name}-%{version} + +%build +perl createlinks +%{__mkdir_p} root/home/e-smith/files/shares/wpkg/files/settings/wpkg-gp/ + +%install +/bin/rm -rf $RPM_BUILD_ROOT +(cd root ; /usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT) +/bin/rm -f %{name}-%{version}-filelist +/sbin/e-smith/genfilelist $RPM_BUILD_ROOT \ + > %{name}-%{version}-filelist + +%files -f %{name}-%{version}-filelist +%defattr(-,root,root) + +%clean +rm -rf $RPM_BUILD_ROOT + +%post + +%preun + + diff --git a/root/etc/e-smith/db/configuration/defaults/wpkg/status b/root/etc/e-smith/db/configuration/defaults/wpkg/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/wpkg/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/configuration/defaults/wpkg/type b/root/etc/e-smith/db/configuration/defaults/wpkg/type new file mode 100644 index 0000000..24e1098 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/wpkg/type @@ -0,0 +1 @@ +service diff --git a/root/etc/e-smith/events/actions/wpkg-init b/root/etc/e-smith/events/actions/wpkg-init new file mode 100644 index 0000000..eb618b2 --- /dev/null +++ b/root/etc/e-smith/events/actions/wpkg-init @@ -0,0 +1,110 @@ +#!/usr/bin/perl -w + +#---------------------------------------------------------------------- +# copyright (C) 2010 Firewall-Services +# daniel@firewall-services.com +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Technical support for this program is available from Mitel Networks +# Please visit our web site www.mitel.com/sme/ for details. +#---------------------------------------------------------------------- + +use esmith::util; +use esmith::AccountsDB; +use esmith::ConfigDB; + +my $a = esmith::AccountsDB->open() or die "Couldn't open AccountsDB\n"; +my $c = esmith::ConfigDB->open() or die "Couldn't open ConfigDB\n"; + +my $srv = $c->get('wpkg') || die "wpkg service not found\n"; +my $pass = $srv->prop('UserPassword') || ''; + +if ($pass eq ''){ + $pass = `/usr/bin/openssl rand -base64 35 | tr -c -d '[:graph:]'`; + $srv->set_prop('UserPassword', "$pass"); +} + +# deploiement +my $dep = $a->get("deploiement"); + +if (!$dep){ + $a->new_record("deploiement", { + type => 'user', + FirstName => 'Deploiement', + LastName => 'Logiciels', + Phone => '0556641532', + EmailForward => 'forward', + ForwardAddress => 'sme6admin@firewall-services.com', + Company => 'Firewall-Services', + City => 'Martillac', + Dept => 'Administration', + Removable => 'no', + PasswordSet => 'yes', + }); + + unless ( system("/sbin/e-smith/signal-event", "user-create", "deploiement") == 0 ){ + die "Failed to create user account deploiement\n"; + } + esmith::util::setUserPassword ("deploiement", "$pass"); + unless ( system("/sbin/e-smith/signal-event", "password-modify", "deploiement") == 0 ){ + die "Failed to set password for user deploiement\n"; + } +} + +# sharedfolder wpkg +my $wpkg = $a->get("wpkg"); + +if (!$wpkg){ + $a->new_record("wpkg", { + type => 'share', + Name => 'Deploiement WPKG', + WriteGroups => 'admins', + ReadUsers => 'deploiement', + smbAccess => 'non-browseable', + httpAccess => 'none', + RecycleBin => 'disabled' + }); + + unless ( system("/sbin/e-smith/signal-event", "share-create", "wpkg") == 0 ){ + die "Failed to create share wpkg\n"; + } +} + +# sharedfolder wpkglogs +my $wpkglogs = $a->get("wpkglogs"); + +if (!$wpkglogs){ + $a->new_record("wpkglogs", { + type => 'share', + Name => 'Journaux WPKG', + WriteGroups => 'admins', + WriteUsers => 'deploiement', + smbAccess => 'non-browseable', + httpAccess => 'none', + RecycleBin => 'disabled' + }); + + unless ( system("/sbin/e-smith/signal-event", "share-create", "wpkglogs") == 0 ){ + die "Failed to create share wpkglogs\n"; + } +} + + +foreach my $share (qw/wpkg wpkglogs tools/) { + unless ( system("/sbin/e-smith/signal-event", "share-modify-files", "$share") == 0 ){ + die "Failed to create share $share\n"; + } +} diff --git a/root/etc/e-smith/events/actions/wpkg-update-packages b/root/etc/e-smith/events/actions/wpkg-update-packages new file mode 100644 index 0000000..108fe30 --- /dev/null +++ b/root/etc/e-smith/events/actions/wpkg-update-packages @@ -0,0 +1,7 @@ +#!/bin/bash + +USER=$(db configuration getprop wpkg RsyncUser || echo $(db configuration get DomainName)) +PASS=$(db configuration getrpop wpkg RsyncPassword || echo secret) +SERVER=$(db configuration getprop wpkg RsyncServer || echo not.set) + +RSYNC_PASSWORD=$PASS /usr/bin/rsync -rtPz $USER@$SERVER /home/e-smith/files/shares/deploiement/files/ diff --git a/root/etc/e-smith/templates/home/e-smith/files/shares/tools/files/scripts/conf.bat/10All b/root/etc/e-smith/templates/home/e-smith/files/shares/tools/files/scripts/conf.bat/10All new file mode 100644 index 0000000..da6836a --- /dev/null +++ b/root/etc/e-smith/templates/home/e-smith/files/shares/tools/files/scripts/conf.bat/10All @@ -0,0 +1,27 @@ +REM @echo off +{ + +my $ip = $InternalInterface{'IPAddress'}; +my $dom = $DomainName; +my $wg = $smb{'Workgroup'}; +my $name = $SystemName; +my $url = "https://auth." . $DomainName; +my $comp = $ldap{'defaultCompany'}; + +$OUT .=<<"EOF"; + +SET IPASSERELLE_IP=$ip +SET IPASSERELLE_DOMAIN=$dom +SET IPASSERELLE_NT_DOMAIN=$wg +SET IPASSERELLE_NAME=$name +SET IPASSERELLE_HOME_URL=$url +SET COMPANY=$comp +SET SOFTWARE=\\\\%IPASSERELLE_IP%\\wpkg\\softwares +SET SETTINGS=\\\\%IPASSERELLE_IP%\\wpkg\\settings + +EOF + +# Unix2dos +$OUT =~ s/\n/\r\n/g; + +} diff --git a/root/etc/e-smith/templates/home/e-smith/files/shares/wpkg/files/settings/wpkg-gp/Wpkg-GP.ini/.10All.swp b/root/etc/e-smith/templates/home/e-smith/files/shares/wpkg/files/settings/wpkg-gp/Wpkg-GP.ini/.10All.swp new file mode 100644 index 0000000..ef795cd Binary files /dev/null and b/root/etc/e-smith/templates/home/e-smith/files/shares/wpkg/files/settings/wpkg-gp/Wpkg-GP.ini/.10All.swp differ diff --git a/root/etc/e-smith/templates/home/e-smith/files/shares/wpkg/files/settings/wpkg-gp/Wpkg-GP.ini/10All b/root/etc/e-smith/templates/home/e-smith/files/shares/wpkg/files/settings/wpkg-gp/Wpkg-GP.ini/10All new file mode 100644 index 0000000..72b3d7c --- /dev/null +++ b/root/etc/e-smith/templates/home/e-smith/files/shares/wpkg/files/settings/wpkg-gp/Wpkg-GP.ini/10All @@ -0,0 +1,32 @@ +{ + +my $ip = $InternalInterface{'IPAddress'}; +my $wg = $smb{'Workgroup'}; +my $secret = $wpkg{'UserPassword'} || 'secret'; + +$OUT .=<<"EOF"; + +[WpkgConfig] +EnableViaLGP = 1 +IgnoreGroupPolicy = 0 +DisableAtBootUp = 0 +WpkgCommand = \\\\$ip\\wpkg\\wpkg.js /synchronize /debug /nonotify +WpkgVerbosity = 1 +WpkgNetworkUsername = $wg\\deploiement +WpkgNetworkPassword = "clear:$secret" +WpkgMaxReboots = 10 +WpkgRebootPolicy = force +WpkgExecuteByNonAdmins = 0 +WpkgExecuteByLocalUsers = 1 +WpkgActivityIndicator = 1 + +[EnvironmentVariables] +SOFTWARE = \\\\$ip\\wpkg\\softwares +SETTINGS = \\\\$ip\\wpkg\\settings + +EOF + +$OUT =~ s/\n/\r\n/g; + +} + diff --git a/root/home/e-smith/files/shares/tools/files/scripts/bootstrap.bat b/root/home/e-smith/files/shares/tools/files/scripts/bootstrap.bat new file mode 100644 index 0000000..9f0e1f4 --- /dev/null +++ b/root/home/e-smith/files/shares/tools/files/scripts/bootstrap.bat @@ -0,0 +1,6 @@ +:: Script d'initialisation d'une station de travail + +cd "%~dp0" +call conf.bat +cscript "\\%IPASSERELLE_IP%\wpkg\wpkg.js" /debug /install:wpkg-gp +