Initial commit

This commit is contained in:
Daniel Berteaud 2012-03-16 18:09:46 +01:00
commit b21a073034
10 changed files with 247 additions and 0 deletions

10
createlinks Normal file
View File

@ -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));

53
ipasserelle-gp.spec Normal file
View File

@ -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 <daniel@firewall-services.com> 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

View File

@ -0,0 +1 @@
enabled

View File

@ -0,0 +1 @@
service

View File

@ -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";
}
}

View File

@ -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/

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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