Projet

Général

Profil

veyon.sh

Gérald Schwartzmann, 05/07/2018 12:08

Télécharger (7,06 ko)

 
1
#!/bin/bash
2

    
3
# nom du poste
4
win_name="pcprof-01.etb1.lan"
5
salt_timeout="-t360"
6
veyon_version="4.0.91"
7

    
8
echo "###########################################"
9
echo "            Installation de veyon          "
10
echo "###########################################"
11
echo ""
12

    
13
echo "** Ouverture des ports **"
14
cat <<EOF > /usr/share/eole/creole/dicos/99_salt.xml
15
<?xml version="1.0" encoding="utf-8"?>
16
<creole>
17
	<!-- Fichiers et services gérés par Creole -->
18
    <files>
19
    </files>
20
	<!-- Conteneurs et configurations spécifiques liées aux conteneurs EOLE -->
21
    <containers>
22
        <container name='fichier'>
23
            <service>salt-master</service>
24
            <service_access service='salt-master'>
25
                <port>4505</port>
26
                <port>4506</port>
27
            </service_access>
28
        </container>
29
    </containers>
30

    
31
	<!-- Déclaration des variables de configurations -->
32
    <variables>
33
		<!-- Familles de variables, correspondent aux onglets dans GenConfig -->
34
    </variables>
35

    
36
	<!-- Déclaration des contraintes sur le traitement des fichiers -->
37
    <constraints>
38
    </constraints>
39
	<!-- Balise d'aide pour affichier des info-bulles dans GenConfig lorsqu'on survolle les variables -->
40
    <help>
41
    </help>
42
</creole>
43
EOF
44
echo ""
45

    
46
echo "** Exécution du reconfigure **"
47
#reconfigure > /dev/null
48
echo ""
49

    
50
#echo "** unmask sur le service salt-master **"
51
#systemctl unmask salt-master.service
52
#echo ""
53
#
54
#echo "** Redémarrage du service salt-master **"
55
#service salt-master start
56
#echo ""
57

    
58
echo "** Assurez-vous d'avoir installer salt-minion sur le client Windows **"
59
echo ""
60
read -p "Appuyer sur [Enter] pour continuer"
61
echo ""
62

    
63
echo "** Relancer le minion côté client pour forcer l'enregistrement à l'aide de la commande 'salt-minion restart' **"
64
echo ""
65
read -p "Appuyer sur [Enter] pour continuer"
66
echo ""
67

    
68
echo "** Liste des minions potentiels **"
69
salt-key -L
70
echo ""
71

    
72
echo "** Acceptation de la clé du minion **"
73
salt-key -a $win_name
74
sleep 5
75
echo ""
76

    
77
echo "** Liste des clés de minions **"
78
salt-key -L
79
echo ""
80

    
81
echo "** Test de ping **"
82
salt $salt_timeout $win_name test.ping
83
echo ""
84

    
85
echo "** Configuration du dépôt Git pour winrepo dans le fichier /etc/salt/master **"
86
cat <<EOF >> /etc/salt/master
87
winrepo_dir_ng: '/srv/salt/win/repo-ng'
88
winrepo_remotes_ng:
89
  - 'https://github.com/saltstack/salt-winrepo-ng.git'
90
EOF
91
echo ""
92

    
93
echo "** Installation des paquets debian manquants pour cloner winrepo **"
94
apt install python-pygit2 git
95
echo ""
96

    
97
echo "** Variable d'environnement pour le proxy **"
98
export http_proxy=http://10.1.3.1:3128/
99
export https_proxy=http://10.1.3.1:3128/
100
echo ""
101

    
102
echo "** Contournement du problème de proxy pour le clone git **"
103
# en remplacement de la commande salt -l debug -t120 -G 'os:windows' pkg.refresh_db
104
rm -rf /srv/salt/win/repo-ng/salt-winrepo-ng
105
#git clone https://github.com/saltstack/salt-winrepo-ng.git /srv/salt/win/repo-ng/salt-winrepo-ng
106
git clone http://dev-eole.ac-dijon.fr/git/salt-winrepo.git /srv/salt/win/repo-ng/salt-winrepo-ng
107
echo ""
108

    
109
echo "** Copie des différentes versions de Veyon dans /srv/salt/win/veyon/ **"
110
mkdir -p /srv/salt/win/veyon/
111
cp veyon-* /srv/salt/win/veyon/
112
echo ""
113

    
114
#echo "** Surcharge du fichier SLS fourni par winrepo **"
115
#cat <<EOF > /srv/salt/win/repo-ng/salt-winrepo-ng/veyon.sls
116
## both 32-bit (x86) AND a 64-bit (AMD64) installer available
117
#{% if grains['cpuarch'] == 'AMD64' %}
118
#{% set arch = 'win64' %}
119
#{% else %}
120
#{% set arch = 'win32' %}
121
#{% endif %}
122
#
123
#{% set versions = ['4.0.92', '4.0.91', '4.0.7', '4.0.6'] %}
124
#
125
#veyon:
126
#{% for version in versions %}
127
#  '{{ version }}':
128
#    full_name: 'Veyon {{ version }}'
129
#    source: 'https://github.com/veyon/veyon/releases/download/v{{ version }}/veyon-{{ version }}.0-{{ arch }}-setup.exe'
130
#    installer: salt://win/veyon/veyon-{{ version }}.0-{{ arch }}-setup.exe
131
#    install_flags: '/S /Master'
132
#    uninstaller: '%ProgramFiles%\Veyon\uninstall.exe'
133
#    uninstall_flags: '/S'
134
#    msiexec: False
135
#    locale: en_US
136
#    reboot: False
137
#{% endfor %}
138
#EOF
139
#echo ""
140

    
141
echo "** Versions supportées **"
142
salt $salt_timeout $win_name pkg.list_available veyon
143
echo ""
144

    
145
echo "** Installation de Veyon $veyon_version **"
146
salt -l debug $salt_timeout $win_name pkg.install 'veyon' version=$veyon_version
147
echo ""
148

    
149
# sur quel module sommes-nous ?
150
EOLERELEASE="/etc/eole/release"
151
. $EOLERELEASE
152

    
153
# scribe-ad
154
if [ $EOLE_MODULE == "scribe" ] ; then
155
	ldap_port=$(CreoleGet ldap_port)
156
	ldap_ip=$(CreoleGet ad_public_address)
157
	directory_admin=$(CreoleGet ad_user)
158
	ad_domain=$(CreoleGet ad_domain)
159
    ad_dc_0="$(echo $ad_domain | cut -d'.' -f2)"
160
    ad_dc_1="$(echo $ad_domain | cut -d'.' -f1)"
161
elif [ $EOLE_MODULE == "seth" ] ; then
162
	directory_admin="administrator"
163
	echo "Vous êtes sur un seth, configuration non implémentée"
164
	exit 0
165
fi
166

    
167
echo "** Construction du script de configuration de Veyon **"
168
cat <<EOF > config_veyon.bat
169
echo "Configuration de veyon"
170
pause
171
"C:\Program Files\Veyon\veyon-ctl" service stop
172
"C:\Program Files\Veyon\veyon-ctl" config clear
173
"C:\Program Files\Veyon\veyon-ctl" config set Authentication/Method 0
174
"C:\Program Files\Veyon\veyon-ctl" config set NetworkObjectDirectory/Plugin {6f0a491e-c1c6-4338-8244-f823b0bf8670}
175
"C:\Program Files\Veyon\veyon-ctl" config set AccessControl/UserGroupsBackend {6f0a491e-c1c6-4338-8244-f823b0bf8670}
176
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/BaseDN  DC=$ad_dc_1,DC=$ad_dc_0
177
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/BindDN CN=$directory_admin,CN=Users,DC=$ad_dc_1,DC=$ad_dc_0
178
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/BindPassword motdepassechiffre
179
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/ComputerHostNameAttribute cn
180
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/ComputerRoomAttribute Location
181
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/ComputerRoomMembersByAttribute true
182
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/ComputerTree CN=Computers
183
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/ComputersFilter (objectclass=computer)
184
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/ConnectionSecurity 1
185
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/GroupTree CN=Users
186
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/ServerHost $ldap_ip
187
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/ServerPort $ldap_port
188
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/TLSVerifyMode 1
189
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/UseBindCredentials true,
190
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/UserGroupsFilter (objectclass=group)
191
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/UserTree CN=Users
192
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/UsersFilter (objectclass=user)
193
"C:\Program Files\Veyon\veyon-ctl" config set AccessControl/AccessRestrictedToUserGroups true
194
"C:\Program Files\Veyon\veyon-ctl" config set AccessControl/AuthorizedUserGroups CN=professeurs,CN=Users
195
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/UserLoginAttribute cn
196
"C:\Program Files\Veyon\veyon-ctl" config set LDAP/GroupMemberAttribute member
197
"C:\Program Files\Veyon\veyon-ctl" service start
198
pause
199
EOF
200
echo ""
201

    
202
echo "** Exécuter config_veyon.bat sur le client Windows **"
203
#FIXME déposer le fichier sur le client et exécuter par salt
204
echo ""