Compare commits

...

57 Commits

Author SHA1 Message Date
2b85700990 Update checks for latest versions of Ansible. 2019-11-18 23:19:31 +01:00
a2e013674b Fix for PulseAudio permissions, server side. 2018-11-10 21:04:56 +01:00
3f421afbbe Simplify changing name of VM. 2018-11-10 14:51:17 +01:00
ed018db4c2 Merge branch 'master' of syntaxerrormmm/server-config into master
Simplify deployment with automatic inventory from vagrant.
2018-11-10 12:34:26 +00:00
44a5ca6bae Using vagrant automatic inventory correctly. 2018-11-10 13:32:32 +01:00
e72883abb5 Revert "Rename README.md to README_old.md"
This reverts commit 8ec091bcbff1080fbb2c587610bf021f04f4033d.
2018-07-29 21:37:08 +02:00
bcb583cd84 Revert "Notify change of repository."
This reverts commit 14d50a0e0744b4acab148339a65d7c0fe0289fa2.
2018-07-29 21:37:05 +02:00
14d50a0e07
Notify change of repository. 2018-07-29 20:37:33 +02:00
8ec091bcbf
Rename README.md to README_old.md 2018-07-29 20:36:51 +02:00
81873ef6cb
Merge pull request #35 from syntaxerrormmm/issue-21
Fixing issue #21: no changes to the wan0 interface
2017-12-12 23:29:43 +01:00
604460a6bd Fixing issue #21: no changes to the wan0 interface has to be done within setup phase. 2017-12-12 23:14:32 +01:00
c769d5c4a4 Merge pull request #32 from bglug-it/revert-31-salerno3.ilariaalpi
Revert "Salerno3.ilariaalpi: Realigning repo and production code."
2017-10-25 00:03:21 +02:00
965f7c90c4 Revert "Salerno3.ilariaalpi: Realigning repo and production code." 2017-10-25 00:03:10 +02:00
65b2923b71 Merge pull request #31 from syntaxerrormmm/salerno3.ilariaalpi
Salerno3.ilariaalpi: Realigning repo and production code.
2017-10-24 23:58:16 +02:00
2881d042d9 Using ip from VPN instead of the LAN one. 2017-10-24 23:33:22 +02:00
0dbe53a796 Fixing latest differences with origin/master. 2017-10-24 23:31:57 +02:00
3a0035c61e Piccola modifica su hosts per gestione in remoto. 2017-10-24 23:31:57 +02:00
df1dcc532b Modifiche per Salerno 3. 2017-10-24 23:31:57 +02:00
baa5cd96c3 Merge pull request #28 from syntaxerrormmm/master
Fix issue #27: try to honor domain.yml mirror_host variable.
2017-10-24 23:29:04 +02:00
125c72e136 Fix issue #27: try to honor domain.yml mirror_host variable. 2017-10-24 23:24:43 +02:00
4fc6036eae Merge pull request #26 from syntaxerrormmm/master
Issue #23: downloading the client repository by init-ansible.sh. Closes #23.
2017-10-24 21:46:31 +02:00
02dd0eed95 Issue #23: downloading the client repository by init-ansible.sh. 2017-10-24 21:44:42 +02:00
782a0c4204 Merge pull request #24 from syntaxerrormmm/master
Disable validation for GPG signature download.
2017-10-16 18:24:08 +02:00
25695acc50 Fixing error with missing validity of SSL certificate for geogebra.net. 2017-10-07 12:21:49 +02:00
c32f5de1ea Merge pull request #22 from syntaxerrormmm/master
Fixing broken geogebra signing for packages.
2017-10-06 03:01:34 +02:00
cf477c4476 Fixing broken geogebra signing for packages. 2017-10-06 02:59:11 +02:00
Paolo Asperti
1f502ec7d0 new vagrant box url 2017-09-28 16:54:19 +02:00
f62afbe30c Merge pull request #20 from bglug-it/update69
Upgrading to 6.9 + other commands for reconfigure interfaces
2017-06-02 02:40:45 +02:00
9f144a497b Merge pull request #19 from syntaxerrormmm/master
Fix Regression: cannot write on subfolder just created in shared
2017-06-02 02:13:40 +02:00
dfadfe7ee7 Fixing a regression for the shared folder: error when trying to create a file in a subfolder created just before on the shared root. 2017-06-02 02:10:13 +02:00
638b753ee1 Changes to 6.9. 2017-06-01 21:38:55 +02:00
a18ce577f5 Merge pull request #16 from syntaxerrormmm/master
Realigning master branch to latest developments.
2017-02-21 23:04:03 +01:00
f2556c7fdf Adding aesthetic fixes. 2017-02-21 23:00:58 +01:00
925a8fd63b Removing unneeded dependency. 2017-02-21 22:51:23 +01:00
ddeeacdc61 Changes to integrate Epoptes stable PPA within clients. (#15) 2017-02-21 22:51:23 +01:00
ba9ebf6d29 Adding repository to apt-mirror.list. (#14) 2017-02-21 22:51:23 +01:00
86ba9cfc72 Adding an additional repository to the batch: geogebra, for geogebra 5. 2017-02-21 22:51:23 +01:00
f0f2413214 Fixing errors within preseed files. Partially fixing issue #2. 2017-02-21 22:51:23 +01:00
198c00dc54 Small fix in the control code for the templates-custom check. 2017-02-21 22:51:23 +01:00
5a6c50a870 Much more idempotenced fixes for issue 10. 2017-02-21 22:51:23 +01:00
df515691a3 Fix for issue #10. 2017-02-21 22:50:43 +01:00
49d16a83ee Adding files for a new role: PCs for the classrooms. 2017-02-21 22:50:43 +01:00
664c93e509 Cleaning up preseed files. 2017-02-21 22:50:43 +01:00
16804ba296 Forcing interfaces to be configured fixing issue #7. 2017-02-21 22:50:43 +01:00
034e483b96 Fixing issue #5 by re-ordering meta informations between tasks. Minor aesthetic fixes. 2017-02-21 22:50:43 +01:00
efa80ce5a9 Fixing #3 and #4 issues from Github. 2016-11-08 22:11:06 +01:00
a001256663 Moving LibreOffice PPA to ppa instead of libreoffice-5-0. 2016-09-22 03:05:52 +02:00
98e1f7fad8 Correcting errors on tasks. 2016-09-21 23:38:32 +02:00
c612859fdf Trying to deposit files on the server for the client configuration. 2016-09-21 22:35:53 +02:00
b998068d63 Delete add, commit and push commands for working copy. 2016-07-26 09:36:34 +02:00
55d222132b Adding instructions on how to change default passwords. 2016-07-25 22:26:15 +02:00
dc1b532c5b Changing amgmt user password. 2016-07-25 21:37:52 +02:00
1e7b5dcd47 Generalizing information on domain. Generalizing bglug password on preseed. 2016-07-25 21:29:26 +02:00
91946e3181 Creating doraemon_pkg extra variable to setup a different rpm. 2016-07-22 16:14:51 +02:00
5548a1ff5a Generalizing the edu package to be installed via preseed. 2016-07-12 22:00:25 +02:00
9ced7b7052 Added remote repository. 2016-07-12 21:12:57 +02:00
d5ab68fb01 Fixed all to be able to work with NS 6.8. 2016-07-12 21:08:11 +02:00
64 changed files with 824 additions and 306 deletions

19
Vagrantfile vendored
View File

@ -10,11 +10,16 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# please see the online documentation at vagrantup.com. # please see the online documentation at vagrantup.com.
# Every Vagrant virtual environment requires a box to build off of. # Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "syntaxerrormmm/nethserver"
config.vm.define "NethServer" do |nethserver| # Defining a base vm name:
myname = "NethServer"
config.vm.box = "syntaxerrormmm/nethserver-6.9"
config.vm.box_url = "https://vagrant.libreschool.org/nethserver-6.9"
config.vm.define myname do |nethserver|
end end
config.vm.provider :virtualbox do |vb| config.vm.provider :virtualbox do |vb|
vb.name = "NethServer" vb.name = myname
end end
# Disable automatic box update checking. If you disable this, then # Disable automatic box update checking. If you disable this, then
@ -126,7 +131,11 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# #
# chef.validation_client_name = "ORGNAME-validator" # chef.validation_client_name = "ORGNAME-validator"
config.vm.provision "ansible" do |ansible| config.vm.provision "ansible" do |ansible|
ansible.inventory_path = "vagrant/hosts" # Using default dynamic inventory
ansible.playbook = "vagrant/vagrant.yml" ansible.playbook = "provision.yml"
ansible.groups = {
"vagrant" => [ myname ]
}
ansible.compatibility_mode = "2.0"
end end
end end

View File

@ -1,25 +1,26 @@
--- ---
# Configurazione dominio # Configurazione dominio
ntpserver: pdc.mastri.edu ntpserver: pdc.topolin.ia
server: pdc server: pdc
serverip: 172.16.254.1 serverip: 172.16.254.1
servernetmask: 255.255.255.0 servernetmask: 255.255.255.0
servernet: 172.16.254.0 servernet: 172.16.254.0
servergw: 172.16.254.1 servergw: 172.16.254.1
serverfqdn: pdc.mastri.edu serverfqdn: pdc.topolin.ia
domainshort: MASTRI domainshort: TOPOLIN
domainfull: mastri.edu domainfull: topolin.ia
dhcprange_start: 172.16.254.10 dhcprange_start: 172.16.254.10
dhcprange_end: 172.16.254.50 dhcprange_end: 172.16.254.50
extdnsserver1: 208.67.222.222 extdnsserver1: 208.67.222.222
extdnsserver2: 208.67.220.220 extdnsserver2: 208.67.220.220
org_email: info@bglug.it org_email: info@bglug.it
org_company: Istituto Comprensivo 'Mastri Caravaggini' org_company: Accademia di SuperPippo
org_countrycode: IT org_countrycode: IA
org_department: "Laboratorio 1" org_department: "Laboratorio 1"
org_city: Caravaggio org_city: Topolinia
org_phone: "+39 0363 50598" org_phone: "313 113 176-167"
org_street: "Via Zenale e Butinone, 20" org_street: "Piazza la bomba e scappa"
edu_package: secondary
mirror_mode: remote mirror_mode: remote
#mirror_nfs_share: 192.168.255.1:/var/spool/apt-mirror/mirror #mirror_nfs_share: 192.168.255.1:/var/spool/apt-mirror/mirror
mirror_host: it.archive.ubuntu.com mirror_host: it.archive.ubuntu.com

View File

@ -0,0 +1,58 @@
# Default password for project #
* NS Box root user: `vagrant`
* NS Box vagrant user: `vagrant`
* Vault Password: `v4ul+Password!`
* amgmt user (server): `DoN0t4g3t!`
* bglug user (client): `s4lamanDr@`
* admin user (domain): `R0busTdom41nPa55wd!`
# How to change passwords for production deployments #
## *root* and *vagrant* users ##
These will not be required, since you will not have a virtual machine to
manage via *Vagrant*.
## Vault password ##
Clone [`client-pull-installation`][2] then, in the working copy, launch following commands:
$ ansible-vault rekey domainpwd.vault
`ansible-vault` will ask one time the old password and two times the new one.
## *amgmt* user (server-side) ##
Clone [`server-config`][1] then, in the working copy, generate a new password hash with the follwing command:
$ mkpasswd -m sha-512
The command would ask for the password to be hashed. Please copy the result string.
Open up the file `roles/init/tasks/mgmtuser.yml`, find out `password:` and then replace previous hash with the one you have just created.
## *bglug* user (client side but preseeded) ##
The definition of password for *bglug* is inside `*.seed` files, inside [`server-config`][1]. Create a new password hash with:
$ mkpasswd -m sha-512
Copy the hash in your clipboard; clone the repository, then in the working directory:
$ find . -iname \*.seed -exec $EDITOR {} \;
Within each `*.seed` file, search for the string `user-password-crypted` string and change following hash.
## *admin* user (domain valid) ##
Password must be specified within NethServer interface for the *admin* user and must be absolutely equal to the one contained inside vault file.
Clone [`client-pull-installation`][2], create new branch and modify the password inside `domainpwd.vault`:
$ ansible-vault edit domainpwd.vault
The system would ask for the vault password. Change the plain text password with your editor.
[1]: https://github.com/bglug-it/server-config
[2]: https://github.com/bglug-it/client-pull-installation

View File

@ -1,14 +1,26 @@
#!/bin/bash #!/bin/bash
# Fixing base variables.
basedir=/var/lib/{{ ansible_local.domain.domainfull }}
url=git://{{ ansible_local.domain.serverfqdn }}/client-pull-installation.git
branch={{ ansible_local.domain.client_gitbranch }}
# Creo directory dipendenti # Creo directory dipendenti
echo "$(date --rfc-3339=seconds) Installing bin directory." echo "$(date --rfc-3339=seconds) Installing bin directory."
/usr/bin/install -d -o root -g users /var/lib/{{ ansible_local.domain.domainfull }}/bin /usr/bin/install -d -o root -g users ${basedir}/bin
/bin/chown -R root:users /var/lib/{{ ansible_local.domain.domainfull }}
# Workaround issue #23 - ansible-pull won't pull out of remote the first time.
if [[ ! -f ${basedir}/config/local.yml ]]; then
/usr/bin/git clone -b ${branch} ${url} ${basedir}/config
fi
# Installo ansible-pull.sh # Installo ansible-pull.sh
echo "$(date --rfc-3339=seconds) Creating ansible-pull.sh." echo "$(date --rfc-3339=seconds) Creating ansible-pull.sh."
/usr/bin/wget -q http://{{ ansible_local.domain.serverfqdn }}/ks/ansible-pull/ansible-pull.sh -O /var/lib/{{ ansible_local.domain.domainfull }}/bin/ansible-pull.sh /usr/bin/wget -q http://{{ ansible_local.domain.serverfqdn }}/ks/ansible-pull/ansible-pull.sh -O ${basedir}/bin/ansible-pull.sh
chmod a+x /var/lib/{{ ansible_local.domain.domainfull }}/bin/ansible-pull.sh chmod a+x ${basedir}/bin/ansible-pull.sh
# Fixing permissions on the main directory
/bin/chown -R root:users ${basedir}
# Installo il cronjob per ansible-pull # Installo il cronjob per ansible-pull
echo "$(date --rfc-3339=seconds) Creating crontab" echo "$(date --rfc-3339=seconds) Creating crontab"

View File

@ -1,8 +1,8 @@
--- ---
dependencies: dependencies:
- { role: ubuntu-mirror, tags: [ 'client-install' ] }
- { role: preseed, tags: [ 'client-install' ] } - { role: preseed, tags: [ 'client-install' ] }
- { role: ansible-pull, tags: [ 'client-install' ] } - { role: ansible-pull, tags: [ 'client-install' ] }
- { role: ubuntu-mirror, tags: [ 'client-install' ] }
- { role: doraemon, tags: [ 'client-install' ] } - { role: doraemon, tags: [ 'client-install' ] }
- { role: npm, tags: [ 'client-install' ] } - { role: npm, tags: [ 'client-install' ] }
- { role: git-daemon, tags: [ 'client-install' ] } - { role: git-daemon, tags: [ 'client-install' ] }

View File

@ -1,2 +1,3 @@
--- ---
doraemon_pkg: doraemon
doraemon_version: 1.2.0-1 doraemon_version: 1.2.0-1

View File

@ -6,7 +6,7 @@
- name: Installazione doraemon - name: Installazione doraemon
yum: yum:
pkg: doraemon pkg: "{{ doraemon_pkg }}"
state: latest state: latest
become: yes become: yes

View File

@ -41,7 +41,7 @@
shell: pushd /var/lib/git-daemon/repositories/client-pull-installation.git; git fetch -p origin; popd shell: pushd /var/lib/git-daemon/repositories/client-pull-installation.git; git fetch -p origin; popd
become: yes become: yes
become_user: git-daemon become_user: git-daemon
when: chk_clientpullinstall_repo|success when: chk_clientpullinstall_repo is succeeded
tags: tags:
- git-daemon-update - git-daemon-update
@ -51,7 +51,7 @@
shell: git clone --mirror {{ client_gitrepo }} /var/lib/git-daemon/repositories/client-pull-installation.git shell: git clone --mirror {{ client_gitrepo }} /var/lib/git-daemon/repositories/client-pull-installation.git
become: yes become: yes
become_user: git-daemon become_user: git-daemon
when: chk_clientpullinstall_repo|changed when: chk_clientpullinstall_repo is changed
- name: Rendo il repository esportabile - name: Rendo il repository esportabile
file: file:
@ -94,7 +94,7 @@
- name: Aggiungo servizio a gestione NethServer - name: Aggiungo servizio a gestione NethServer
shell: /sbin/e-smith/db configuration set git-daemon service status enabled TCPPort 9418 access private shell: /sbin/e-smith/db configuration set git-daemon service status enabled TCPPort 9418 access private
become: yes become: yes
when: chk_gitdaemon_srv|changed when: chk_gitdaemon_srv is changed
- name: Creazione directory defaults per NethServer - name: Creazione directory defaults per NethServer
file: file:
@ -102,7 +102,7 @@
recurse: yes recurse: yes
state: directory state: directory
become: yes become: yes
when: chk_gitdaemon_srv|changed when: chk_gitdaemon_srv is changed
- name: Creazione tipo default per NethServer - name: Creazione tipo default per NethServer
lineinfile: lineinfile:
@ -112,7 +112,7 @@
create: yes create: yes
state: present state: present
become: yes become: yes
when: chk_gitdaemon_srv|changed when: chk_gitdaemon_srv is changed
- name: Creazione stato default per NethServer - name: Creazione stato default per NethServer
lineinfile: lineinfile:
@ -122,19 +122,19 @@
create: yes create: yes
state: present state: present
become: yes become: yes
when: chk_gitdaemon_srv|changed when: chk_gitdaemon_srv is changed
- name: Aggiunta servizio - name: Aggiunta servizio
shell: /sbin/e-smith/signal-event runlevel-adjust shell: /sbin/e-smith/signal-event runlevel-adjust
become: yes become: yes
when: chk_gitdaemon_srv|changed when: chk_gitdaemon_srv is changed
- name: Aggiunta servizio di rete e cambio firewall - name: Aggiunta servizio di rete e cambio firewall
shell: /sbin/e-smith/signal-event firewall-adjust shell: /sbin/e-smith/signal-event firewall-adjust
become: yes become: yes
when: chk_gitdaemon_srv|changed when: chk_gitdaemon_srv is changed
- name: Avvio servizio - name: Avvio servizio
shell: service git-daemon start shell: service git-daemon start
become: yes become: yes
when: chk_gitdaemon_srv|changed when: chk_gitdaemon_srv is changed

View File

@ -5,13 +5,15 @@
comment: "Ansible Management User" comment: "Ansible Management User"
group: wheel group: wheel
state: present state: present
password: $6$rounds=100000$XvHuMoXtpCksx379$nhlfUn38.oBB7JrDrtwfUisw8T0Bg5InzFq1fw31mcEmGZ2AYFkFK2zC2g04lSfw.kpdSgqH3Dl5q9r1fY6.k. password: $6$mVKMBMbAxeql$eqSe8tu2qKjtwmpiFy07b6nv2g4F80N.U9EzOmQTrNZwKZ61n6NLrSEQHQo1FOlQghOiB8as6Z35oTUUKN8y2.
- name: Concessione diritti all'utente di gestione Ansible - name: Concessione diritti all'utente di gestione Ansible
template: template:
src: sudoers.d src: sudoers.d
dest: /etc/sudoers.d/amgmt dest: /etc/sudoers.d/amgmt
mode: "u=r,g=r" owner: root
group: root
mode: 0440
validate: "/usr/sbin/visudo -cf %s" validate: "/usr/sbin/visudo -cf %s"
- name: Installazione chiave privata PC locale - name: Installazione chiave privata PC locale

View File

@ -1,5 +1,4 @@
--- ---
extnic: wan0
intnic: lan0 intnic: lan0
force_regen_ca: false force_regen_ca: false
force_ibay_shared: false force_ibay_shared: false

View File

@ -1,6 +1,14 @@
--- ---
# Base configurations to be implemented anyways. # Base configurations to be implemented anyways.
# installing italian interface translation
- name: Making available also Italian NethGUI
yum:
pkg: nethserver-lang-it
state: present
tags: nethgui
# Trusted networks: LAN # Trusted networks: LAN
- name: Check for LAN to be added as Trusted Network - name: Check for LAN to be added as Trusted Network
@ -12,12 +20,12 @@
- name: Configuring trusted networks - name: Configuring trusted networks
shell: /sbin/e-smith/db networks set {{ ansible_local.domain.servernet }} network Description "Local LAN" Mask {{ ansible_local.domain.servernetmask }} shell: /sbin/e-smith/db networks set {{ ansible_local.domain.servernet }} network Description "Local LAN" Mask {{ ansible_local.domain.servernetmask }}
when: check_trusted|changed when: check_trusted is changed
tags: trustednet tags: trustednet
- name: Activating trusted network - name: Activating trusted network
shell: /sbin/e-smith/signal-event trusted-networks-modify shell: /sbin/e-smith/signal-event trusted-networks-modify
when: check_trusted|changed when: check_trusted is changed
tags: trustednet tags: trustednet
# Preconfiguring DNS anyways # Preconfiguring DNS anyways
@ -30,12 +38,12 @@
- name: Configuring DNS resolution - name: Configuring DNS resolution
shell: /sbin/e-smith/db configuration setprop dns NameServers {{ ansible_local.domain.extdnsserver1 }},{{ ansible_local.domain.extdnsserver2 }} shell: /sbin/e-smith/db configuration setprop dns NameServers {{ ansible_local.domain.extdnsserver1 }},{{ ansible_local.domain.extdnsserver2 }}
when: chk_dns|changed when: chk_dns is changed
tags: dns-preset tags: dns-preset
- name: Activating correct DNS resolution - name: Activating correct DNS resolution
shell: "/sbin/e-smith/signal-event nethserver-base-update" shell: "/sbin/e-smith/signal-event nethserver-base-update"
when: chk_dns|changed when: chk_dns is changed
# Hostname and domainname # Hostname and domainname
@ -53,30 +61,11 @@
- name: Activating hostname/domainname changes - name: Activating hostname/domainname changes
shell: /sbin/e-smith/signal-event hostname-modify shell: /sbin/e-smith/signal-event hostname-modify
when: chg_hostname|changed or chg_domainname|changed when: chg_hostname is changed or chg_domainname is changed
tags: tags:
- hostname - hostname
- domainname - domainname
# Password policy
- name: Check for password policy
shell: /sbin/e-smith/db configuration printprop passwordstrength Users
register: chk_passstr
changed_when: "'Users=none' not in chk_passstr.stdout"
ignore_errors: true
tags: password-policy
- name: Configuring password policy
shell: /sbin/e-smith/db configuration setprop passwordstrength PassExpires no Users none Admin strong MaxPassAge 180 MinPassAge 0 PassExpires no PassWarning 7
when: chk_passstr|changed
tags: password-policy
- name: Activating password policy
shell: /sbin/e-smith/signal-event password-policy-update
when: chk_passstr|changed
tags: password-policy
# Base certificate # Base certificate
- name: Checking CA configuration - name: Checking CA configuration
@ -89,9 +78,9 @@
- name: Configuring CA - name: Configuring CA
shell: /sbin/e-smith/db configuration setprop pki CertificateDuration 3650 CommonName {{ ansible_local.domain.serverfqdn }} CountryCode {{ ansible_local.domain.org_countrycode }} EmailAddress {{ ansible_local.domain.org_email }} Locality "{{ ansible_local.domain.org_city }}" Organization "{{ ansible_local.domain.org_company }}" shell: /sbin/e-smith/db configuration setprop pki CertificateDuration 3650 CommonName {{ ansible_local.domain.serverfqdn }} CountryCode {{ ansible_local.domain.org_countrycode }} EmailAddress {{ ansible_local.domain.org_email }} Locality "{{ ansible_local.domain.org_city }}" Organization "{{ ansible_local.domain.org_company }}"
tags: regen-ca tags: regen-ca
when: chk_crt|changed or force_regen_ca|bool when: chk_crt is changed or force_regen_ca|bool
- name: Activating CA and regenerate - name: Activating CA and regenerate
shell: /sbin/e-smith/signal-event certificate-update shell: /sbin/e-smith/signal-event certificate-update
when: chk_crt|changed or force_regen_ca|bool when: chk_crt is changed or force_regen_ca|bool
tags: regen-ca tags: regen-ca

View File

@ -15,11 +15,11 @@
- name: Configuring DHCP - name: Configuring DHCP
shell: /sbin/e-smith/db dhcp set {{ intnic }} range DhcpRangeStart {{ ansible_local.domain.dhcprange_start }} DhcpRangeEnd {{ ansible_local.domain.dhcprange_end }} status enabled shell: /sbin/e-smith/db dhcp set {{ intnic }} range DhcpRangeStart {{ ansible_local.domain.dhcprange_start }} DhcpRangeEnd {{ ansible_local.domain.dhcprange_end }} status enabled
when: chk_dhcp|failed when: chk_dhcp is failed
- name: Activating DHCP - name: Activating DHCP
shell: /sbin/e-smith/signal-event nethserver-dnsmasq-save shell: /sbin/e-smith/signal-event nethserver-dnsmasq-save
when: chk_dhcp|failed when: chk_dhcp is failed
# DNS # DNS
# Already preconfigured before (roles/nethcfg/tasks/base.yml) # Already preconfigured before (roles/nethcfg/tasks/base.yml)
@ -33,7 +33,7 @@
- name: Configuring DNS resolution - name: Configuring DNS resolution
shell: /sbin/e-smith/db configuration setprop dns NameServers {{ ansible_local.domain.extdnsserver1 }},{{ ansible_local.domain.extdnsserver2 }} shell: /sbin/e-smith/db configuration setprop dns NameServers {{ ansible_local.domain.extdnsserver1 }},{{ ansible_local.domain.extdnsserver2 }}
when: chk_dns|changed when: chk_dns is changed
tags: force-resolvers tags: force-resolvers
- name: Activating correct DNS resolution - name: Activating correct DNS resolution
@ -41,7 +41,7 @@
with_items: with_items:
- base - base
- dnsmasq - dnsmasq
when: chk_dns|changed when: chk_dns is changed
tags: force-resolvers tags: force-resolvers
# Avahi # Avahi

View File

@ -1,5 +1,5 @@
--- ---
# Organization configuration # Organization
- name: Installing required packages - name: Installing required packages
yum: yum:
@ -12,10 +12,31 @@
changed_when: "'City={{ ansible_local.domain.org_city }}' not in check_org.stdout" changed_when: "'City={{ ansible_local.domain.org_city }}' not in check_org.stdout"
ignore_errors: yes ignore_errors: yes
# Password policy
- name: Check for password policy
shell: /sbin/e-smith/db configuration printprop passwordstrength Users
register: chk_passstr
changed_when: "'Users=none' not in chk_passstr.stdout"
ignore_errors: true
tags: password-policy
- name: Configuring password policy
shell: /sbin/e-smith/db configuration setprop passwordstrength PassExpires no Users none Admin strong MaxPassAge 180 MinPassAge 0 PassExpires no PassWarning 7
when: chk_passstr is changed
tags: password-policy
- name: Activating password policy
shell: /sbin/e-smith/signal-event password-policy-update
when: chk_passstr is changed
tags: password-policy
# Organization configuration
- name: Configuring organization - name: Configuring organization
shell: /sbin/e-smith/db configuration setprop OrganizationContact City "{{ ansible_local.domain.org_city }}" Company "{{ ansible_local.domain.org_company }}" CountryCode {{ ansible_local.domain.org_countrycode }} Department "{{ ansible_local.domain.org_department }}" PhoneNumber "{{ ansible_local.domain.org_phone }}" Street "{{ ansible_local.domain.org_street }}" shell: /sbin/e-smith/db configuration setprop OrganizationContact City "{{ ansible_local.domain.org_city }}" Company "{{ ansible_local.domain.org_company }}" CountryCode {{ ansible_local.domain.org_countrycode }} Department "{{ ansible_local.domain.org_department }}" PhoneNumber "{{ ansible_local.domain.org_phone }}" Street "{{ ansible_local.domain.org_street }}"
when: check_org|changed when: check_org is changed
- name: Activating organization configuration - name: Activating organization configuration
shell: /sbin/e-smith/signal-event organization-save shell: /sbin/e-smith/signal-event organization-save
when: check_org|changed when: check_org is changed

View File

@ -10,11 +10,11 @@
- name: domusers - Creating new group - name: domusers - Creating new group
shell: /sbin/e-smith/db accounts set domusers group Description "Domain Users" Members admin Removable no shell: /sbin/e-smith/db accounts set domusers group Description "Domain Users" Members admin Removable no
when: check_domusers|failed when: check_domusers is failed
- name: domusers - Activating group - name: domusers - Activating group
shell: /sbin/e-smith/signal-event group-create domusers shell: /sbin/e-smith/signal-event group-create domusers
when: check_domusers|failed when: check_domusers is failed
# Domain Operators # Domain Operators
@ -25,11 +25,11 @@
- name: domopers - Creating new group - name: domopers - Creating new group
shell: /sbin/e-smith/db accounts set domopers group Description "Domain Operators" Removable no shell: /sbin/e-smith/db accounts set domopers group Description "Domain Operators" Removable no
when: check_domopers|failed when: check_domopers is failed
- name: domopers - Activating group - name: domopers - Activating group
shell: /sbin/e-smith/signal-event group-create domopers shell: /sbin/e-smith/signal-event group-create domopers
when: check_domopers|failed when: check_domopers is failed
# Docenti # Docenti
@ -40,8 +40,8 @@
- name: docenti - Creating new group - name: docenti - Creating new group
shell: /sbin/e-smith/db accounts set docenti group Description "Docenti" Removable no shell: /sbin/e-smith/db accounts set docenti group Description "Docenti" Removable no
when: check_docenti|failed when: check_docenti is failed
- name: docenti - Activating group - name: docenti - Activating group
shell: /sbin/e-smith/signal-event group-create docenti shell: /sbin/e-smith/signal-event group-create docenti
when: check_docenti|failed when: check_docenti is failed

View File

@ -3,7 +3,6 @@
# Network interfaces # Network interfaces
- include: network.yml - include: network.yml
when: development|bool
become: yes become: yes
tags: tags:
- network - network

View File

@ -1,9 +1,6 @@
--- ---
# Reconfiguring network interfaces # Reconfiguring network interfaces
- name: Configuring external NIC
shell: /sbin/e-smith/db networks setprop {{ extnic }} role red bootproto dhcp
- name: Configuring internal NIC - name: Configuring internal NIC
shell: /sbin/e-smith/db networks setprop {{ intnic }} role green ipaddr {{ ansible_local.domain.serverip }} netmask {{ ansible_local.domain.servernetmask }} shell: /sbin/e-smith/db networks setprop {{ intnic }} role green ipaddr {{ ansible_local.domain.serverip }} netmask {{ ansible_local.domain.servernetmask }}

View File

@ -16,9 +16,9 @@
- name: Configuring NTP - name: Configuring NTP
shell: /sbin/e-smith/db configuration setprop ntpd NTPServer ntp1.inrim.it status enabled shell: /sbin/e-smith/db configuration setprop ntpd NTPServer ntp1.inrim.it status enabled
become: yes become: yes
when: chk_ntp|changed when: chk_ntp is changed
- name: Activating NTP - name: Activating NTP
shell: /sbin/e-smith/signal-event nethserver-ntp-update shell: /sbin/e-smith/signal-event nethserver-ntp-update
become: yes become: yes
when: chk_ntp|changed when: chk_ntp is changed

View File

@ -10,5 +10,6 @@
- nethserver-collectd - nethserver-collectd
- nethserver-collectd-web - nethserver-collectd-web
- nethserver-firewall-base - nethserver-firewall-base
- nethserver-firewall-base-ui
- nethserver-backup-config - nethserver-backup-config
- nethserver-backup-data - nethserver-backup-data

View File

@ -20,11 +20,11 @@
- name: Configuring Squid - name: Configuring Squid
shell: /sbin/e-smith/db configuration setprop squid BlueMode transparent GreenMode transparent PortBlock disabled status enabled DiskCache enabled DiskCacheSize 2000 shell: /sbin/e-smith/db configuration setprop squid BlueMode transparent GreenMode transparent PortBlock disabled status enabled DiskCache enabled DiskCacheSize 2000
when: chk_squid|changed when: chk_squid is changed
- name: Activating Squid configuration - name: Activating Squid configuration
shell: /sbin/e-smith/signal-event nethserver-squid-update shell: /sbin/e-smith/signal-event nethserver-squid-update
when: chk_squid|changed when: chk_squid is changed
# Squid-clamav # Squid-clamav
@ -36,11 +36,11 @@
- name: Configuring squidclamav - name: Configuring squidclamav
shell: /sbin/e-smith/db configuration setprop squidclamav status enabled shell: /sbin/e-smith/db configuration setprop squidclamav status enabled
when: chk_squidclamav|changed when: chk_squidclamav is changed
- name: Activating squidclamav - name: Activating squidclamav
shell: /sbin/e-smith/signal-event nethserver-squidclamav-update shell: /sbin/e-smith/signal-event nethserver-squidclamav-update
when: chk_squidclamav|changed when: chk_squidclamav is changed
# SquidGuard # SquidGuard
@ -52,7 +52,7 @@
- name: Configuring squidguard - name: Configuring squidguard
shell: /sbin/e-smith/db configuration setprop squidguard Expressions enabled Lists shalla status enabled shell: /sbin/e-smith/db configuration setprop squidguard Expressions enabled Lists shalla status enabled
when: check_squidguard|changed when: check_squidguard is changed
- name: Activating squidguard configuration - name: Activating squidguard configuration
shell: "/sbin/e-smith/signal-event nethserver-squidguard-{{ item }}" shell: "/sbin/e-smith/signal-event nethserver-squidguard-{{ item }}"
@ -60,7 +60,7 @@
- save - save
- update - update
- downloadlists - downloadlists
when: check_squidguard|changed when: check_squidguard is changed
# Content filtering settings # Content filtering settings
@ -72,8 +72,8 @@
- name: Configuring content filtering - name: Configuring content filtering
shell: /sbin/e-smith/db contentfilter setprop default Categories aggressive,alcohol,weapons,games-online,gamble,dating,webradio,webtv,sex,porn,spyware,violence,anonvpn,warez shell: /sbin/e-smith/db contentfilter setprop default Categories aggressive,alcohol,weapons,games-online,gamble,dating,webradio,webtv,sex,porn,spyware,violence,anonvpn,warez
register: cf_cat register: cf_cat
when: check_cf|changed when: check_cf is changed
- name: Activating content filtering as a whole - name: Activating content filtering as a whole
shell: /sbin/e-smith/signal-event nethserver-squidguard-update shell: /sbin/e-smith/signal-event nethserver-squidguard-update
when: check_cf|changed when: check_cf is changed

View File

@ -1,4 +1,5 @@
--- ---
# SAMBA and ibays # SAMBA and ibays
- name: Installing SAMBA and ibays packages - name: Installing SAMBA and ibays packages
@ -10,49 +11,61 @@
- nethserver-samba - nethserver-samba
- nethserver-samba-audit - nethserver-samba-audit
# Mitigating bug for upgrade on Badlocks SAMBA bug
- name: Mitigating bad upgrade for Badlocks
shell: yum -y downgrade samba* tdb-tools libtdb libtevent libtalloc pytalloc
tags:
- badlocks
- centos_bug
# Locking SAMBA version to be sure to fix badblocks update
- name: Installing versionlock yum-plugin
yum:
name: yum-plugin-versionlock
state: present
- name: Checking if already locked
shell: yum versionlock list | grep -q samba && echo 'Locked' || true
register: chk_locked_samba
changed_when: "'Locked' not in chk_locked_samba.stdout"
- name: Locking samba version
shell: yum versionlock add samba
when: chk_locked_samba|changed
# SAMBA # SAMBA
- name: "Verifying modifications on templates-custom."
shell: grep -q 'server signing = mandatory' /etc/e-smith/templates-custom/etc/samba/smb.conf/10global
register: check_tempcust
changed_when: check_tempcust.rc != 0
ignore_errors: true
- name: "Create directory structure for templates-custom"
file:
path: "/etc/e-smith/templates-custom/etc/samba/smb.conf"
owner: root
group: root
mode: 0755
state: directory
when: check_tempcust is changed
- name: "Copying settings from default."
copy:
src: /etc/e-smith/templates/etc/samba/smb.conf/10global
dest: /etc/e-smith/templates-custom/etc/samba/smb.conf/10global
remote_src: true
owner: root
group: root
mode: 0644
when: check_tempcust is changed
- name: "Enabling unix extensions on SAMBA"
replace:
dest: /etc/e-smith/templates-custom/etc/samba/smb.conf/10global
regexp: '^unix extensions = no$'
replace: 'unix extensions = yes'
when: check_tempcust is changed
- name: Adding server signing as mandatory
lineinfile:
dest: /etc/e-smith/templates-custom/etc/samba/smb.conf/10global
line: "server signing = mandatory"
insertafter: "^workgroup = "
state: present
when: check_tempcust is changed
- name: Checking SMB configuration - name: Checking SMB configuration
shell: /sbin/e-smith/db configuration printprop smb RoamingProfiles shell: /sbin/e-smith/db configuration printprop smb RoamingProfiles
register: chk_smb register: chk_smb
changed_when: "'RoamingProfiles=yes' not in chk_smb.stdout" changed_when: "'RoamingProfiles=yes' not in chk_smb.stdout"
ignore_errors: true ignore_errors: true
- name: "Enabling unix extensions on SAMBA"
replace:
dest: /etc/e-smith/templates/etc/samba/smb.conf/10global
regexp: '^unix extensions = no$'
replace: 'unix extensions = yes'
- name: Configuring SMB - name: Configuring SMB
shell: /sbin/e-smith/db configuration setprop smb RoamingProfiles yes ServerRole PDC Workgroup "{{ ansible_local.domain.domainshort }}" status enabled shell: /sbin/e-smith/db configuration setprop smb RoamingProfiles yes ServerRole PDC Workgroup "{{ ansible_local.domain.domainshort }}" status enabled
when: chk_smb|changed when: chk_smb is changed
- name: Activating SMB - name: Activating SMB
shell: /sbin/e-smith/signal-event nethserver-samba-save shell: /sbin/e-smith/signal-event nethserver-samba-save
when: chk_smb|changed when: chk_smb is changed
# ibays # ibays
@ -74,7 +87,7 @@
- name: Copying default templates for shared template type - name: Copying default templates for shared template type
shell: cp -r /etc/e-smith/templates/etc/samba/smb.conf/ibay-default /etc/e-smith/templates/etc/samba/smb.conf/ibay-shared shell: cp -r /etc/e-smith/templates/etc/samba/smb.conf/ibay-default /etc/e-smith/templates/etc/samba/smb.conf/ibay-shared
when: force_ibay_shared|bool or chk_shared|failed when: force_ibay_shared|bool or chk_shared is failed
- name: Configuring ibay-shared template structure (directory mask) - name: Configuring ibay-shared template structure (directory mask)
lineinfile: lineinfile:
@ -82,7 +95,7 @@
line: 'directory mask = 0775' line: 'directory mask = 0775'
insertafter: '^create mask' insertafter: '^create mask'
state: present state: present
when: force_ibay_shared|bool or chk_shared|failed when: force_ibay_shared|bool or chk_shared is failed
- name: Configuring force create mode - name: Configuring force create mode
lineinfile: lineinfile:
@ -90,7 +103,7 @@
line: 'force create mode = 0664' line: 'force create mode = 0664'
insertafter: '^directory mask' insertafter: '^directory mask'
state: present state: present
when: force_ibay_shared|bool or chk_shared|failed when: force_ibay_shared|bool or chk_shared is failed
- name: Configuring force directory mode - name: Configuring force directory mode
lineinfile: lineinfile:
@ -98,23 +111,41 @@
line: 'force directory mode = 0775' line: 'force directory mode = 0775'
insertafter: '^force create mode' insertafter: '^force create mode'
state: present state: present
when: force_ibay_shared|bool or chk_shared|failed when: force_ibay_shared|bool or chk_shared is failed
- name: Configuring shared ibay - name: Configuring shared ibay
shell: /sbin/e-smith/db accounts set shared ibay AclRead domusers,domadmins AclWrite domusers,domadmins Description "Cartella condivisa" GroupAccess rw HttpStatus disabled OtherAccess r OwningGroup locals SmbAuditStatus enabled SmbGuestAccessType none SmbRecycleBinStatus enabled SmbRecycleBinVersionsStatus enabled SmbStatus enabled shell: /sbin/e-smith/db accounts set shared ibay AclRead domusers,domadmins AclWrite domusers,domadmins Description "Cartella condivisa" GroupAccess rw HttpStatus disabled OtherAccess r OwningGroup locals SmbAuditStatus enabled SmbGuestAccessType none SmbRecycleBinStatus enabled SmbRecycleBinVersionsStatus enabled SmbStatus enabled
when: chk_shared|failed when: chk_shared is failed
- name: Activating shared ibay - name: Activating shared ibay
shell: /sbin/e-smith/signal-event ibay-create shared shell: /sbin/e-smith/signal-event ibay-create shared
become: yes become: yes
when: chk_shared|failed when: chk_shared is failed
- name: Changing ibay profile for shared - name: Changing ibay profile for shared
shell: /sbin/e-smith/db accounts setprop shared SmbProfileType shared shell: /sbin/e-smith/db accounts setprop shared SmbProfileType shared
become: yes become: yes
when: force_ibay_shared|bool or chk_shared|failed when: force_ibay_shared|bool or chk_shared is failed
- name: Saving new version of smb.conf
shell: /sbin/e-smith/signal-event nethserver-samba-save
become: yes
when: check_tempcust is changed
- name: Forcing regeneration of smb.conf - name: Forcing regeneration of smb.conf
shell: /sbin/e-smith/signal-event nethserver-samba-update shell: /sbin/e-smith/signal-event nethserver-samba-update
become: yes become: yes
when: force_ibay_shared|bool or chk_shared|failed when: force_ibay_shared|bool or chk_shared is failed or check_tempcust is changed
# Fixing issue #3 - Configure sudo access for admin on server for operator
# access
# https://github.com/bglug-it/server-config/issues/3
- name: Configuring sudo access for admin account
lineinfile:
dest: /etc/sudoers.d/admin
line: 'admin ALL=(ALL:ALL) NOPASSWD: ALL'
create: yes
owner: root
group: root
mode: 0440
validate: 'visudo -cf %s'

View File

@ -1,5 +1,6 @@
--- ---
# Defaults for installation # Defaults for installation
edu_package: secondary
mirror_mode: local mirror_mode: local
mirror_host: archive.ubuntu.com mirror_host: archive.ubuntu.com
mirror_path: /ubuntu mirror_path: /ubuntu
@ -7,5 +8,6 @@ mirror_security_host: security.ubuntu.com
mirror_security_path: /ubuntu mirror_security_path: /ubuntu
mirror_localpath: /ks/mirror mirror_localpath: /ks/mirror
execpath: "" execpath: ""
execsecurepath: ""
execmirrorpath: "" execmirrorpath: ""
development: false development: false

View File

@ -3,11 +3,22 @@
- include: mirror-cfg.yml - include: mirror-cfg.yml
tags: tags:
- preseed - preseed
- repoconfig
- include: preseed.yml - include: preseed.yml
tags: tags:
- preseed - preseed
- include: repoconfig.yml
tags:
- preseed
- repoconfig
- include: firefoxcert.yml - include: firefoxcert.yml
tags: tags:
- firefox - firefox
- include: paperms.yml
tags:
- preseed
- paperms

View File

@ -6,19 +6,27 @@
when: "ansible_local.domain.mirror_mode is defined" when: "ansible_local.domain.mirror_mode is defined"
- name: Determining mirror_host - name: Determining mirror_host
set_fact: mirror_host="{{ ansible_local.domain.mirror_host }}" set_fact:
mirror_host: "{{ ansible_local.domain.mirror_host }}"
orig_mirror_host: "{{ ansible_local.domain.mirror_host }}"
when: ansible_local.domain.mirror_host is defined when: ansible_local.domain.mirror_host is defined
- name: Determining mirror_path - name: Determining mirror_path
set_fact: mirror_path="{{ ansible_local.domain.mirror_path }}" set_fact:
mirror_path: "{{ ansible_local.domain.mirror_path }}"
orig_mirror_path: "{{ ansible_local.domain.mirror_path }}"
when: ansible_local.domain.mirror_path is defined when: ansible_local.domain.mirror_path is defined
- name: Determining mirror_security_host - name: Determining mirror_security_host
set_fact: mirror_security_host="{{ ansible_local.domain.mirror_security_host }}" set_fact:
mirror_security_host: "{{ ansible_local.domain.mirror_security_host }}"
orig_mirror_security_host: "{{ ansible_local.domain.mirror_security_host }}"
when: ansible_local.domain.mirror_security_host is defined when: ansible_local.domain.mirror_security_host is defined
- name: Determining mirror_security_path - name: Determining mirror_security_path
set_fact: mirror_security_path="{{ ansible_local.domain.mirror_security_path }}" set_fact:
mirror_security_path: "{{ ansible_local.domain.mirror_security_path }}"
orig_mirror_security_path: "{{ ansible_local.domain.mirror_security_path }}"
when: ansible_local.domain.mirror_security_path is defined when: ansible_local.domain.mirror_security_path is defined
- name: Determining mirror_localpath - name: Determining mirror_localpath
@ -28,16 +36,13 @@
# The remote option is already configured as it is. # The remote option is already configured as it is.
# Configuring correctly local mirror # Configuring correctly local mirror
- name: Determining variables for local and nfs mode - name: Altering paths
set_fact: set_fact:
orig_mirror_path: ”{{ mirror_path }}" execmirrorpath: "{{ mirror_host }}{{ mirror_path }}"
orig_mirror_host: "{{ mirror_host }}" execsecurepath: "{{ mirror_security_host }}{{ mirror_security_path }}"
orig_mirror_security_path: "{{ mirror_security_path }}"
orig_mirror_security_host: "{{ mirror_security_host }}"
execmirrorpath: ”{{ mirror_host }}{{ mirror_path }}"
execpath: "{{ ansible_local.domain.serverfqdn }}{{ mirror_localpath }}/" execpath: "{{ ansible_local.domain.serverfqdn }}{{ mirror_localpath }}/"
mirror_path: "{{ mirror_localpath }}/{{ mirror_host }}{{ mirror_path }}" mirror_path: "{{ mirror_localpath }}/{{ mirror_host }}{{ mirror_path }}"
mirror_host: "{{ ansible_local.domain.serverfqdn }}" mirror_host: "{{ ansible_local.domain.serverfqdn }}"
mirror_security_path: "{{ mirror_localpath }}/{{ mirror_security_host }}{{mirror_security_path }}" mirror_security_path: "{{ mirror_localpath }}/{{ mirror_security_host }}{{ mirror_security_path }}"
mirror_security_host: "{{ ansible_local.domain.serverfqdn }}" mirror_security_host: "{{ ansible_local.domain.serverfqdn }}"
when: mirror_mode != 'remote' when: mirror_mode != 'remote'

View File

@ -0,0 +1,25 @@
---
# Installing fixes final fixes for PulseAudio permissions.
- name: Creating paperms subdir inside ks/preseed share
file:
path: /var/lib/nethserver/ibay/ks/paperms
state: directory
owner: root
group: locals
mode: 0755
become: yes
- name: Deploy template files for paperms
template:
src: "paperms/{{ item }}"
dest: "/var/lib/nethserver/ibay/ks/paperms/{{ item }}"
owner: root
group: locals
mode: 0644
with_items:
- updategrp.py
- paperms.sh
- cronjob
- logrotate
become: yes

View File

@ -1,5 +1,10 @@
--- ---
- name: Configure the edu-package following settings in domain.yml
set_fact:
edu_package: "{{ ansible_local.domain.edu_package }}"
when: ansible_local.domain.edu_package is defined
- name: Verifica configurazione ibay preseed - name: Verifica configurazione ibay preseed
shell: /sbin/e-smith/db accounts show ks shell: /sbin/e-smith/db accounts show ks
register: chk_ks_created register: chk_ks_created
@ -9,12 +14,12 @@
- name: Configurazione web preseed - name: Configurazione web preseed
shell: /sbin/e-smith/db accounts set ks ibay Description "Preseed share" GroupAccess rw HttpAccess private HttpAliasType default HttpAllowOverrideStatus disabled HttpForceSslStatus disabled HttpPasswordStatus disabled HttpStatus enabled HttpVirtualHost __ANY__ OtherAccess r OwningGroup locals SmbAuditStatus disabled SmbStatus disabled shell: /sbin/e-smith/db accounts set ks ibay Description "Preseed share" GroupAccess rw HttpAccess private HttpAliasType default HttpAllowOverrideStatus disabled HttpForceSslStatus disabled HttpPasswordStatus disabled HttpStatus enabled HttpVirtualHost __ANY__ OtherAccess r OwningGroup locals SmbAuditStatus disabled SmbStatus disabled
when: chk_ks_created|failed when: chk_ks_created is failed
become: yes become: yes
- name: Attivazione web preseed - name: Attivazione web preseed
shell: /sbin/e-smith/signal-event ibay-create ks shell: /sbin/e-smith/signal-event ibay-create ks
when: chk_ks_created|failed when: chk_ks_created is failed
become: yes become: yes
- name: Verifica presenza directory mirror - name: Verifica presenza directory mirror
@ -26,7 +31,7 @@
- name: Collegamento directory mirror - name: Collegamento directory mirror
file: path=/var/lib/nethserver/ibay/ks/mirror src=/var/spool/apt-mirror/mirror state=link file: path=/var/lib/nethserver/ibay/ks/mirror src=/var/spool/apt-mirror/mirror state=link
become: yes become: yes
when: chk_mirror_dir|success when: chk_mirror_dir is succeeded
- name: Creazione directory preseed - name: Creazione directory preseed
file: file:
@ -42,6 +47,7 @@
- edubuntu.seed - edubuntu.seed
- client-trusty.seed - client-trusty.seed
- docenti-trusty.seed - docenti-trusty.seed
- aula-trusty.seed
become: yes become: yes
- block: - block:
@ -67,6 +73,6 @@
with_items: with_items:
- postseed-client.sh - postseed-client.sh
- postseed-docenti.sh - postseed-docenti.sh
- pulseaudio-perms.sh - postseed-aula.sh
- checksum.fact - checksum.fact
become: yes become: yes

View File

@ -0,0 +1,44 @@
---
# Configuring the base repositories files.
# Composing here files to be used by clients will reduce time to load/construct
# them within client-pull-installation playbook.
- name: Creating base directory for storing repositories files
file:
path: /var/lib/nethserver/ibay/ks/repoconfig
state: directory
owner: root
group: root
mode: 0755
become: yes
- name: Preconfiguring base repositories file for clients
template:
src: repoconfig/sources.list
dest: /var/lib/nethserver/ibay/ks/repoconfig/sources.list
owner: root
group: root
mode: 0644
become: yes
- name: Preconfiguring other repositories for clients
template:
src: "repoconfig/{{ item }}"
dest: "/var/lib/nethserver/ibay/ks/repoconfig/{{ item }}"
owner: root
group: root
mode: 0644
with_items:
- bglug-trusty.list
- ansible-ansible-trusty.list
- libreoffice-ppa-trusty.list
- epoptes-ppa-trusty.list
- geogebra-stable.list
become: yes
- name: Pre-downloading geogebra GPG signature because of HTTPS
get_url:
url: "https://www.geogebra.net/linux/office@geogebra.org.gpg.key"
dest: "/var/lib/nethserver/ibay/ks/repoconfig/office_geogebra.gpg.key"
validate_certs: no
become: yes

View File

@ -1,2 +0,0 @@
deb http://{{ execpath }}ppa.launchpad.net/libreoffice/libreoffice-5-0/ubuntu trusty main
deb-src http://{{ execpath }}ppa.launchpad.net/libreoffice/libreoffice-5-0/ubuntu trusty main

View File

@ -0,0 +1 @@
@reboot root /var/lib/{{ ansible_local.domain.domainfull }}/bin/paperms.sh >> /var/log/paperms.log 2>&1

View File

@ -0,0 +1,7 @@
/var/log/paperms.log {
rotate 7
daily
compress
missingok
notifempty
}

View File

@ -0,0 +1,34 @@
#!/bin/bash
# Fixing base variables
basedir=/var/lib/{{ ansible_local.domain.domainfull }}
# Making sure destination folder exists.
/usr/bin/install -d -o root -g users ${basedir}/bin
# Update this script itself
/usr/bin/wget -q http://{{ ansible_local.domain.serverfqdn }}/ks/paperms/paperms.sh -O ${basedir}/bin/paperms.sh
/bin/chown root:users ${basedir}/bin/paperms.sh
/bin/chmod a+x ${basedir}/bin/paperms.sh
# Updating cronjob
/usr/bin/wget -q http://{{ ansible_local.domain.serverfqdn }}/ks/paperms/cronjob -O /etc/cron.d/paperms
/bin/chown root:root /etc/cron.d/paperms
/bin/chmod 0644 /etc/cron.d/paperms
# Removing old versions of the cronjob
rm -f /etc/cron.d/pulseaudio-perms
# Updating logrotate
/usr/bin/wget -q http://{{ ansible_local.domain.serverfqdn }}/ks/paperms/logrotate -O /etc/logrotate.d/paperms
/bin/chown root:root /etc/logrotate.d/paperms
/bin/chmod 0644 /etc/logrotate.d/paperms
# Updating updategrp.py
/usr/bin/wget -q http://{{ ansible_local.domain.serverfqdn }}/ks/paperms/updategrp.py -O ${basedir}/bin/updategrp.py
/bin/chown root:users ${basedir}/bin/updategrp.py
/bin/chmod a+x ${basedir}/bin/updategrp.py
# Main part: run updategrp.py
/usr/bin/wbinfo -t && /usr/bin/python2 ${basedir}/bin/updategrp.py "domain users" "pulse" || echo "Not in domain."
/usr/bin/wbinfo -t && /usr/bin/python2 ${basedir}/bin/updategrp.py "domain users" "pulse-access" || echo "Not in domain."

View File

@ -0,0 +1,74 @@
#!/usr/bin/env python2
from __future__ import print_function
import grp
import re
from subprocess import check_output
from sys import argv
class UpdateGrp:
def __init__(self, leftname = "domain users", rightname = "pulse"):
"""Confronts members of the LHS group with the members of the RHS group. LHS group defaults to "domain users"."""
self.leftname = leftname
self.rightname = rightname
self.leftmembers = grp.getgrnam(self.leftname)[3]
self.rightmembers = grp.getgrnam(self.rightname)[3]
# Since there is also a local user already created on the machine but
# it is not a domain user, we will add it to leftmembers
self.leftmembers.append("bglug")
self.to_add = list(set(self.leftmembers) - set(self.rightmembers))
self.to_remove = list(set(self.rightmembers) - set(self.leftmembers))
def update_rhs(self):
"""Updates the RHS group members to be equal to the LHS group members."""
# If RHS is a local group
with open('/etc/group', 'r') as group:
for grp in group.readlines():
if re.match("%s:" % self.rightname, grp):
# If to_add is not empty, add each element to group
if len(self.to_add) > 0:
for user in self.to_add:
print(check_output(["gpasswd", "-a", user, self.rightname]), end='')
# If to_remove is not empty, remove each element to group
if len(self.to_remove) > 0:
for user in self.to_remove:
print(check_output(["gpasswd", "-d", user, self.rightname]), end='')
def update_lhs(self):
"""Updates the LHS group members to be equal to the RHS group members."""
# If LHS is a local group
with open('/etc/group', 'r') as group:
for grp in group.readline():
if re.match("%s:" % self.leftname, grp):
# If to_remove is not empty, add each element to group
if len(self.to_remove) > 0:
for user in self.to_remove:
print(check_output(["gpasswd", "-a", user, self.leftname]), end='')
# If to_add is not empty, remove each element to group
if len(self.to_add) > 0:
for user in self.to_add:
print(check_output(["gpasswd", "-d", user, self.leftname]), end='')
def modprint(self):
"""Debug function to print only modifications."""
print("To add: ", end='')
print(self.to_add)
print("To remove: ", end='')
print(self.to_remove)
# When run interactively
if __name__ == '__main__':
# If the first argument is '--help' or '-h', or number of arguments less than 1 and more than 2, print help.
if len(argv) < 2 or len(argv) > 3 or argv[1] == '--help' or argv[1] == '-h':
print("Usage: %s <LHSgroup> <RHSgroup>" % argv[0])
print("Aligns RHS group members as LHS.")
else:
updgrp = UpdateGrp(argv[1], argv[2])
updgrp.update_rhs()

View File

@ -0,0 +1,134 @@
# No questions if possible
debconf debconf/priority string critical
# Localization - Italiano
d-i debian-installer/locale string it_IT.UTF-8
d-i debian-installer/supported-locales multiselect it_IT it_IT@euro en_US en_US.UTF-8
# Keyboard settings
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/layoutcode string it
# Network
d-i netcfg/choose_interface select auto
# Adjust the default hostname.
d-i netcfg/hostname string kickseed
# Enabling non-free firmware
d-i hw-detect/load_firmware boolean true
# Setting up repositories from local mirror
d-i mirror/country string manual
d-i mirror/protocol string http
d-i mirror/http/hostname string {{ mirror_host }}
d-i mirror/http/directory string {{ mirror_path }}
d-i mirror/http/proxy string
d-i mirror/suite string trusty
# Apt-setup additional repos
d-i apt-setup/services-select multiselect security, updates
d-i apt-setup/security_host string {{ mirror_security_host }}
d-i apt-setup/security_path string {{ mirror_security_path }}
# Additional repos
d-i apt-setup/multiverse boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/restricted boolean true
d-i apt-setup/partner boolean true
# Setup and enable libreoffice PPA
d-i apt-setup/local0/repository string http://{{ execpath }}ppa.launchpad.net/libreoffice/ppa/ubuntu trusty main
d-i apt-setup/local0/comment string LibreOffice Official PPA
d-i apt-setup/local0/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x36E81C9267FD1383FCC4490983FBA1751378B444&op=get
# Setup and enable ansible PPA
d-i apt-setup/local1/repository string http://{{ execpath }}ppa.launchpad.net/ansible/ansible/ubuntu trusty main
d-i apt-setup/local1/comment string Ansible Official PPA
d-i apt-setup/local1/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367&op=get
# Setup and enable epoptes PPA
d-i apt-setup/local2/repository string http://{{ execpath }}ppa.launchpad.net/epoptes/ppa/ubuntu trusty main
d-i apt-setup/local2/comment string Epoptes stable repository
d-i apt-setup/local2/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x2D9B9274D3DF9D7CD7281A3E49F26CB30350B375&op=get
# Setup and enable geogebra repository
d-i apt-setup/local3/repository string http://{{ execpath }}/www.geogebra.net/linux stable main
d-i apt-setup/local3/comment string Geogebra Official repository
d-i apt-setup/local3/key string http://{{ ansible_local.domain.serverfqdn }}/ks/repoconfig/office_geogebra.gpg.key
# Time and date
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Rome
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string {{ ansible_local.domain.ntpserver }}
# User creation
d-i passwd/user-fullname string BgLUG User
d-i passwd/username string bglug
d-i passwd/user-password-crypted password $6$S8u22loyR$RJZUtmnqmadvas13BxjPkBjdcF1o6P0xGtweZ9MkUCKIbyzmzQFxvwPTwoX1AaPgRyNmvdevyUgs/AMRGH8O./
# Partitioning
d-i partman-auto/init_automatically_partition select biggest_free
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-auto/choose_recipe select atomic
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i partman/mount_style select uuid
d-i user-setup/encrypt-home boolean false
# Kernel installation
d-i base-installer/kernel/image string linux-generic
d-i base-installer/kernel/altmeta string lts-xenial
# Install the Edubuntu desktop.
tasksel tasksel/first multiselect edubuntu-desktop-gnome
# No asking for installation in language
d-i pkgsel/install-language-support boolean true
d-i pkgsel/ignore-incomplete-language-support boolean true
d-i localechooser/translation/warn-severe boolean true
d-i localechooser/translation/warn-light boolean true
# Policy to upgrade: none
d-i pkgsel/update-policy select none
# Upgrade after installation: no
d-i pkgsel/upgrade select none
# Language pack selection
d-i pkgsel/language-packs multiselect it, en
# Disable popularity contest
popularity-contest popularity-contest/participate boolean false
# Install both GNOME and KDE translation packages.
d-i pkgsel/language-pack-patterns string language-pack-gnome-$LL language-pack-kde-$LL kde-i18n-$LL libreoffice-help-$LL libreoffice-l10n-$LL firefox-locale-$LL gimp-help-$LL thunderbird-locale-$LL
# Adding libreoffice and ansible
{% if ansible_bios_version == 'VirtualBox' %}
d-i pkgsel/include string dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-{{ edu_package }} python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude geogebra geogebra-gnome gnome-search-tool ocrfeeder openshot freeplane gtk-recordmydesktop vokoscreen virtualbox-guest-dkms
{% else %}
d-i pkgsel/include string dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-{{ edu_package }} python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude geogebra geogebra-gnome gnome-search-tool ocrfeeder openshot freeplane gtk-recordmydesktop vokoscreen
{% endif %}
# Post installation tasks
# Update system
d-i preseed/late_command string in-target apt-get -y upgrade; \
in-target apt-get -y dist-upgrade; \
in-target apt-get -y purge unity-webapps-common zeitgeist-core zeitgeist-datahub webbrowser-app epoptes epoptes-client; \
in-target apt-get -y autoremove; \
sed -i'' -e 's/ubuntu/gnome-fallback/g' /target/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf; \
in-target bash -c "/usr/bin/curl -sSL4 http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/postseed-aula.sh | /bin/bash >/root/postseed.log 2>&1";
# Grub installation on MBR
d-i grub-installer/only_debian boolean true
d-i grub-installer/bootdev string /dev/sda
# No reboot message
d-i finish-install/reboot_in_progress note

View File

@ -27,18 +27,18 @@ d-i mirror/http/proxy string
d-i mirror/suite string trusty d-i mirror/suite string trusty
# Apt-setup additional repos # Apt-setup additional repos
d-i apt-setup/extras boolean false
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/backports boolean true
d-i apt-setup/non-free boolean true
d-i apt-setup/contrib boolean true
d-i apt-setup/services-select multiselect security, updates d-i apt-setup/services-select multiselect security, updates
d-i apt-setup/security_host string {{ mirror_security_host }} d-i apt-setup/security_host string {{ mirror_security_host }}
d-i apt-setup/security_path string {{ mirror_security_path }} d-i apt-setup/security_path string {{ mirror_security_path }}
# Additional repos
d-i apt-setup/multiverse boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/restricted boolean true
d-i apt-setup/partner boolean true
# Setup and enable libreoffice PPA # Setup and enable libreoffice PPA
d-i apt-setup/local0/repository string http://{{ execpath }}ppa.launchpad.net/libreoffice/libreoffice-5-0/ubuntu trusty main d-i apt-setup/local0/repository string http://{{ execpath }}ppa.launchpad.net/libreoffice/ppa/ubuntu trusty main
d-i apt-setup/local0/comment string LibreOffice Official PPA d-i apt-setup/local0/comment string LibreOffice Official PPA
d-i apt-setup/local0/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x36E81C9267FD1383FCC4490983FBA1751378B444&op=get d-i apt-setup/local0/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x36E81C9267FD1383FCC4490983FBA1751378B444&op=get
@ -47,6 +47,16 @@ d-i apt-setup/local1/repository string http://{{ execpath }}ppa.launchpad.net/a
d-i apt-setup/local1/comment string Ansible Official PPA d-i apt-setup/local1/comment string Ansible Official PPA
d-i apt-setup/local1/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367&op=get d-i apt-setup/local1/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367&op=get
# Setup and enable epoptes PPA
d-i apt-setup/local2/repository string http://{{ execpath }}ppa.launchpad.net/epoptes/ppa/ubuntu trusty main
d-i apt-setup/local2/comment string Epoptes stable repository
d-i apt-setup/local2/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x2D9B9274D3DF9D7CD7281A3E49F26CB30350B375&op=get
# Setup and enable geogebra repository
d-i apt-setup/local3/repository string http://{{ execpath }}/www.geogebra.net/linux stable main
d-i apt-setup/local3/comment string Geogebra Official repository
d-i apt-setup/local3/key string http://{{ ansible_local.domain.serverfqdn }}/ks/repoconfig/office_geogebra.gpg.key
# Time and date # Time and date
d-i clock-setup/utc boolean true d-i clock-setup/utc boolean true
d-i time/zone string Europe/Rome d-i time/zone string Europe/Rome
@ -56,7 +66,7 @@ d-i clock-setup/ntp-server string {{ ansible_local.domain.ntpserver }}
# User creation # User creation
d-i passwd/user-fullname string BgLUG User d-i passwd/user-fullname string BgLUG User
d-i passwd/username string bglug d-i passwd/username string bglug
d-i passwd/user-password-crypted string $1$33bB/LIt$MEHmvzVIgYRJs/5L4z34L/ d-i passwd/user-password-crypted password $6$S8u22loyR$RJZUtmnqmadvas13BxjPkBjdcF1o6P0xGtweZ9MkUCKIbyzmzQFxvwPTwoX1AaPgRyNmvdevyUgs/AMRGH8O./
# Partitioning # Partitioning
d-i partman-auto/init_automatically_partition select biggest_free d-i partman-auto/init_automatically_partition select biggest_free
@ -74,6 +84,7 @@ d-i user-setup/encrypt-home boolean false
# Kernel installation # Kernel installation
d-i base-installer/kernel/image string linux-generic d-i base-installer/kernel/image string linux-generic
d-i base-installer/kernel/altmeta string lts-xenial
# Install the Edubuntu desktop. # Install the Edubuntu desktop.
tasksel tasksel/first multiselect edubuntu-desktop-gnome tasksel tasksel/first multiselect edubuntu-desktop-gnome
@ -87,7 +98,7 @@ d-i localechooser/translation/warn-light boolean true
# Policy to upgrade: none # Policy to upgrade: none
d-i pkgsel/update-policy select none d-i pkgsel/update-policy select none
# UPgrade after installation: no # Upgrade after installation: no
d-i pkgsel/upgrade select none d-i pkgsel/upgrade select none
# Language pack selection # Language pack selection
@ -101,16 +112,16 @@ d-i pkgsel/language-pack-patterns string language-pack-gnome-$LL language-pack-
# Adding libreoffice and ansible # Adding libreoffice and ansible
{% if ansible_bios_version == 'VirtualBox' %} {% if ansible_bios_version == 'VirtualBox' %}
d-i pkgsel/include string epoptes-client dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-secondary python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude virtualbox-guest-dkms d-i pkgsel/include string epoptes-client dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-{{ edu_package }} python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude geogebra geogebra-gnome gnome-search-tool ocrfeeder openshot freeplane gtk-recordmydesktop vokoscreen virtualbox-guest-dkms
{% else %} {% else %}
d-i pkgsel/include string epoptes-client dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-secondary python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude d-i pkgsel/include string epoptes-client dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-{{ edu_package }} python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude geogebra geogebra-gnome gnome-search-tool ocrfeeder openshot freeplane gtk-recordmydesktop vokoscreen
{% endif %} {% endif %}
# Post installation tasks # Post installation tasks
# Update system # Update system
d-i preseed/late_command string in-target apt-get -y upgrade; \ d-i preseed/late_command string in-target apt-get -y upgrade; \
in-target apt-get -y dist-upgrade; \ in-target apt-get -y dist-upgrade; \
in-target apt-get -y purge unity-webapps-common zeitgeist-core zeitgeist-datahub epoptes; \ in-target apt-get -y purge unity-webapps-common zeitgeist-core zeitgeist-datahub webbrowser-app epoptes; \
in-target apt-get -y autoremove; \ in-target apt-get -y autoremove; \
sed -i'' -e 's/ubuntu/gnome-fallback/g' /target/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf; \ sed -i'' -e 's/ubuntu/gnome-fallback/g' /target/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf; \
in-target /bin/bash -c "/usr/bin/curl -sSL4 http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/postseed-client.sh | /bin/bash >/root/postseed.log 2>&1"; in-target /bin/bash -c "/usr/bin/curl -sSL4 http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/postseed-client.sh | /bin/bash >/root/postseed.log 2>&1";

View File

@ -25,20 +25,21 @@ d-i mirror/http/hostname string {{ mirror_host }}
d-i mirror/http/directory string {{ mirror_path }} d-i mirror/http/directory string {{ mirror_path }}
d-i mirror/http/proxy string d-i mirror/http/proxy string
d-i mirror/suite string trusty d-i mirror/suite string trusty
d-i mirror/udeb/components multiselect main, restricted, universe, multiverse
# Apt-setup additional repos # Apt-setup additional repos
d-i apt-setup/extras boolean false
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/backports boolean true
d-i apt-setup/non-free boolean true
d-i apt-setup/contrib boolean true
d-i apt-setup/services-select multiselect security, updates d-i apt-setup/services-select multiselect security, updates
d-i apt-setup/security_host string {{ mirror_security_host }} d-i apt-setup/security_host string {{ mirror_security_host }}
d-i apt-setup/security_path string {{ mirror_security_path }} d-i apt-setup/security_path string {{ mirror_security_path }}
# Additional repos
d-i apt-setup/multiverse boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/restricted boolean true
d-i apt-setup/partner boolean true
# Setup and enable libreoffice PPA # Setup and enable libreoffice PPA
d-i apt-setup/local0/repository string http://{{ execpath }}ppa.launchpad.net/libreoffice/libreoffice-5-0/ubuntu trusty main d-i apt-setup/local0/repository string http://{{ execpath }}ppa.launchpad.net/libreoffice/ppa/ubuntu trusty main
d-i apt-setup/local0/comment string LibreOffice Official PPA d-i apt-setup/local0/comment string LibreOffice Official PPA
d-i apt-setup/local0/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x36E81C9267FD1383FCC4490983FBA1751378B444&op=get d-i apt-setup/local0/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x36E81C9267FD1383FCC4490983FBA1751378B444&op=get
@ -47,6 +48,11 @@ d-i apt-setup/local1/repository string http://{{ execpath }}ppa.launchpad.net/a
d-i apt-setup/local1/comment string Ansible Official PPA d-i apt-setup/local1/comment string Ansible Official PPA
d-i apt-setup/local1/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367&op=get d-i apt-setup/local1/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367&op=get
# Setup and enable geogebra repository
d-i apt-setup/local2/repository string http://{{ execpath }}/www.geogebra.net/linux stable main
d-i apt-setup/local2/comment string Geogebra Official repository
d-i apt-setup/local2/key string http://www.geogebra.net/linux/office@geogebra.org.gpg.key.new
# Time and date # Time and date
d-i clock-setup/utc boolean true d-i clock-setup/utc boolean true
d-i time/zone string Europe/Rome d-i time/zone string Europe/Rome
@ -56,7 +62,7 @@ d-i clock-setup/ntp-server string {{ ansible_local.domain.ntpserver }}
# User creation # User creation
d-i passwd/user-fullname string BgLUG User d-i passwd/user-fullname string BgLUG User
d-i passwd/username string bglug d-i passwd/username string bglug
d-i passwd/user-password-crypted string $1$33bB/LIt$MEHmvzVIgYRJs/5L4z34L/ d-i passwd/user-password-crypted password $6$S8u22loyR$RJZUtmnqmadvas13BxjPkBjdcF1o6P0xGtweZ9MkUCKIbyzmzQFxvwPTwoX1AaPgRyNmvdevyUgs/AMRGH8O./
# Partitioning # Partitioning
d-i partman-auto/init_automatically_partition select biggest_free d-i partman-auto/init_automatically_partition select biggest_free
@ -74,6 +80,7 @@ d-i user-setup/encrypt-home boolean false
# Kernel installation # Kernel installation
d-i base-installer/kernel/image string linux-generic d-i base-installer/kernel/image string linux-generic
d-i base-installer/kernel/altmeta string lts-xenial
# Install the Edubuntu desktop. # Install the Edubuntu desktop.
tasksel tasksel/first multiselect edubuntu-desktop-gnome tasksel tasksel/first multiselect edubuntu-desktop-gnome
@ -87,7 +94,7 @@ d-i localechooser/translation/warn-light boolean true
# Policy to upgrade: none # Policy to upgrade: none
d-i pkgsel/update-policy select none d-i pkgsel/update-policy select none
# UPgrade after installation: no # Upgrade after installation: no
d-i pkgsel/upgrade select none d-i pkgsel/upgrade select none
# Language pack selection # Language pack selection
@ -101,9 +108,9 @@ d-i pkgsel/language-pack-patterns string language-pack-gnome-$LL language-pack-
# Adding libreoffice and ansible # Adding libreoffice and ansible
{% if ansible_bios_version == 'VirtualBox' %} {% if ansible_bios_version == 'VirtualBox' %}
d-i pkgsel/include string epoptes-client dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-secondary python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude virtualbox-guest-dkms d-i pkgsel/include string epoptes-client dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-{{ edu_package }} python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude virtualbox-guest-dkms
{% else %} {% else %}
d-i pkgsel/include string epoptes-client dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-secondary python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude d-i pkgsel/include string epoptes-client dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-{{ edu_package }} python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude
{% endif %} {% endif %}
# Post installation tasks # Post installation tasks

View File

@ -25,20 +25,21 @@ d-i mirror/http/hostname string {{ mirror_host }}
d-i mirror/http/directory string {{ mirror_path }} d-i mirror/http/directory string {{ mirror_path }}
d-i mirror/http/proxy string d-i mirror/http/proxy string
d-i mirror/suite string trusty d-i mirror/suite string trusty
d-i mirror/udeb/components multiselect main, restricted, universe, multiverse
# Apt-setup additional repos # Apt-setup additional repos
d-i apt-setup/extras boolean false
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/backports boolean true
d-i apt-setup/non-free boolean true
d-i apt-setup/contrib boolean true
d-i apt-setup/services-select multiselect security, updates d-i apt-setup/services-select multiselect security, updates
d-i apt-setup/security_host string {{ mirror_security_host }} d-i apt-setup/security_host string {{ mirror_security_host }}
d-i apt-setup/security_path string {{ mirror_security_path }} d-i apt-setup/security_path string {{ mirror_security_path }}
# Additional repos
d-i apt-setup/multiverse boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/restricted boolean true
d-i apt-setup/partner boolean true
# Setup and enable libreoffice PPA # Setup and enable libreoffice PPA
d-i apt-setup/local0/repository string http://{{ execpath }}ppa.launchpad.net/libreoffice/libreoffice-5-0/ubuntu trusty main d-i apt-setup/local0/repository string http://{{ execpath }}ppa.launchpad.net/libreoffice/ppa/ubuntu trusty main
d-i apt-setup/local0/comment string LibreOffice Official PPA d-i apt-setup/local0/comment string LibreOffice Official PPA
d-i apt-setup/local0/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x36E81C9267FD1383FCC4490983FBA1751378B444&op=get d-i apt-setup/local0/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x36E81C9267FD1383FCC4490983FBA1751378B444&op=get
@ -47,6 +48,11 @@ d-i apt-setup/local1/repository string http://{{ execpath }}ppa.launchpad.net/a
d-i apt-setup/local1/comment string Ansible Official PPA d-i apt-setup/local1/comment string Ansible Official PPA
d-i apt-setup/local1/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367&op=get d-i apt-setup/local1/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367&op=get
# Setup and enable geogebra repository
d-i apt-setup/local2/repository string http://{{ execpath }}/www.geogebra.net/linux stable main
d-i apt-setup/local2/comment string Geogebra Official repository
d-i apt-setup/local2/key string http://www.geogebra.net/linux/office@geogebra.org.gpg.key.new
# Time and date # Time and date
d-i clock-setup/utc boolean true d-i clock-setup/utc boolean true
d-i time/zone string Europe/Rome d-i time/zone string Europe/Rome
@ -56,7 +62,7 @@ d-i clock-setup/ntp-server string {{ ansible_local.domain.ntpserver }}
# User creation # User creation
d-i passwd/user-fullname string BgLUG User d-i passwd/user-fullname string BgLUG User
d-i passwd/username string bglug d-i passwd/username string bglug
d-i passwd/user-password-crypted string $1$33bB/LIt$MEHmvzVIgYRJs/5L4z34L/ d-i passwd/user-password-crypted password $6$S8u22loyR$RJZUtmnqmadvas13BxjPkBjdcF1o6P0xGtweZ9MkUCKIbyzmzQFxvwPTwoX1AaPgRyNmvdevyUgs/AMRGH8O./
# Partitioning # Partitioning
d-i partman-auto/init_automatically_partition select biggest_free d-i partman-auto/init_automatically_partition select biggest_free
@ -74,6 +80,7 @@ d-i user-setup/encrypt-home boolean false
# Kernel installation # Kernel installation
d-i base-installer/kernel/image string linux-generic d-i base-installer/kernel/image string linux-generic
d-i base-installer/kernel/altmeta lts-xenial
# Install the Edubuntu desktop. # Install the Edubuntu desktop.
tasksel tasksel/first multiselect edubuntu-desktop-gnome tasksel tasksel/first multiselect edubuntu-desktop-gnome
@ -87,7 +94,7 @@ d-i localechooser/translation/warn-light boolean true
# Policy to upgrade: none # Policy to upgrade: none
d-i pkgsel/update-policy select none d-i pkgsel/update-policy select none
# UPgrade after installation: no # Upgrade after installation: no
d-i pkgsel/upgrade select none d-i pkgsel/upgrade select none
# Language pack selection # Language pack selection
@ -101,9 +108,9 @@ d-i pkgsel/language-pack-patterns string language-pack-gnome-$LL language-pack-
# Adding libreoffice and ansible # Adding libreoffice and ansible
{% if ansible_bios_version == 'VirtualBox' %} {% if ansible_bios_version == 'VirtualBox' %}
d-i pkgsel/include string epoptes dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-secondary python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude virtualbox-guest-dkms d-i pkgsel/include string epoptes dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-{{ edu_package }} python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude virtualbox-guest-dkms
{% else %} {% else %}
d-i pkgsel/include string epoptes dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-secondary python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude d-i pkgsel/include string epoptes dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-{{ edu_package }} python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude
{% endif %} {% endif %}
# Post installation tasks # Post installation tasks

View File

@ -27,18 +27,18 @@ d-i mirror/http/proxy string
d-i mirror/suite string trusty d-i mirror/suite string trusty
# Apt-setup additional repos # Apt-setup additional repos
d-i apt-setup/extras boolean false
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/backports boolean true
d-i apt-setup/non-free boolean true
d-i apt-setup/contrib boolean true
d-i apt-setup/services-select multiselect security, updates d-i apt-setup/services-select multiselect security, updates
d-i apt-setup/security_host string {{ mirror_security_host }} d-i apt-setup/security_host string {{ mirror_security_host }}
d-i apt-setup/security_path string {{ mirror_security_path }} d-i apt-setup/security_path string {{ mirror_security_path }}
# Additional repos
d-i apt-setup/multiverse boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/restricted boolean true
d-i apt-setup/partner boolean true
# Setup and enable libreoffice PPA # Setup and enable libreoffice PPA
d-i apt-setup/local0/repository string http://{{ execpath }}ppa.launchpad.net/libreoffice/libreoffice-5-0/ubuntu trusty main d-i apt-setup/local0/repository string http://{{ execpath }}ppa.launchpad.net/libreoffice/ppa/ubuntu trusty main
d-i apt-setup/local0/comment string LibreOffice Official PPA d-i apt-setup/local0/comment string LibreOffice Official PPA
d-i apt-setup/local0/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x36E81C9267FD1383FCC4490983FBA1751378B444&op=get d-i apt-setup/local0/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x36E81C9267FD1383FCC4490983FBA1751378B444&op=get
@ -47,6 +47,16 @@ d-i apt-setup/local1/repository string http://{{ execpath }}ppa.launchpad.net/a
d-i apt-setup/local1/comment string Ansible Official PPA d-i apt-setup/local1/comment string Ansible Official PPA
d-i apt-setup/local1/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367&op=get d-i apt-setup/local1/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367&op=get
# Setup and enable epoptes PPA
d-i apt-setup/local2/repository string http://{{ execpath }}ppa.launchpad.net/epoptes/ppa/ubuntu trusty main
d-i apt-setup/local2/comment string Epoptes stable repository
d-i apt-setup/local2/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x2D9B9274D3DF9D7CD7281A3E49F26CB30350B375&op=get
# Setup and enable geogebra repository
d-i apt-setup/local3/repository string http://{{ execpath }}/www.geogebra.net/linux stable main
d-i apt-setup/local3/comment string Geogebra Official repository
d-i apt-setup/local3/key string http://{{ ansible_local.domain.serverfqdn }}/ks/repoconfig/office_geogebra.gpg.key
# Time and date # Time and date
d-i clock-setup/utc boolean true d-i clock-setup/utc boolean true
d-i time/zone string Europe/Rome d-i time/zone string Europe/Rome
@ -56,7 +66,7 @@ d-i clock-setup/ntp-server string {{ ansible_local.domain.ntpserver }}
# User creation # User creation
d-i passwd/user-fullname string BgLUG User d-i passwd/user-fullname string BgLUG User
d-i passwd/username string bglug d-i passwd/username string bglug
d-i passwd/user-password-crypted string $1$33bB/LIt$MEHmvzVIgYRJs/5L4z34L/ d-i passwd/user-password-crypted password $6$S8u22loyR$RJZUtmnqmadvas13BxjPkBjdcF1o6P0xGtweZ9MkUCKIbyzmzQFxvwPTwoX1AaPgRyNmvdevyUgs/AMRGH8O./
# Partitioning # Partitioning
d-i partman-auto/init_automatically_partition select biggest_free d-i partman-auto/init_automatically_partition select biggest_free
@ -74,6 +84,7 @@ d-i user-setup/encrypt-home boolean false
# Kernel installation # Kernel installation
d-i base-installer/kernel/image string linux-generic d-i base-installer/kernel/image string linux-generic
d-i base-installer/kernel/altmeta string lts-xenial
# Install the Edubuntu desktop. # Install the Edubuntu desktop.
tasksel tasksel/first multiselect edubuntu-desktop-gnome tasksel tasksel/first multiselect edubuntu-desktop-gnome
@ -87,7 +98,7 @@ d-i localechooser/translation/warn-light boolean true
# Policy to upgrade: none # Policy to upgrade: none
d-i pkgsel/update-policy select none d-i pkgsel/update-policy select none
# UPgrade after installation: no # Upgrade after installation: no
d-i pkgsel/upgrade select none d-i pkgsel/upgrade select none
# Language pack selection # Language pack selection
@ -101,16 +112,16 @@ d-i pkgsel/language-pack-patterns string language-pack-gnome-$LL language-pack-
# Adding libreoffice and ansible # Adding libreoffice and ansible
{% if ansible_bios_version == 'VirtualBox' %} {% if ansible_bios_version == 'VirtualBox' %}
d-i pkgsel/include string epoptes dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-secondary python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude virtualbox-guest-dkms d-i pkgsel/include string epoptes dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-{{ edu_package }} python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude geogebra geogebra-gnome gnome-search-tool ocrfeeder openshot freeplane gtk-recordmydesktop vokoscreen virtualbox-guest-dkms
{% else %} {% else %}
d-i pkgsel/include string epoptes dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-secondary python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude d-i pkgsel/include string epoptes dialog vim screen cifs-utils curl git openssh-server software-properties-common sshpass ubuntu-edu-{{ edu_package }} python3-uno libreoffice ansible libnss-myhostname sysv-rc-conf unattended-upgrades update-notifier-common aptitude geogebra geogebra-gnome gnome-search-tool ocrfeeder openshot freeplane gtk-recordmydesktop vokoscreen
{% endif %} {% endif %}
# Post installation tasks # Post installation tasks
# Update system # Update system
d-i preseed/late_command string in-target apt-get -y upgrade; \ d-i preseed/late_command string in-target apt-get -y upgrade; \
in-target apt-get -y dist-upgrade; \ in-target apt-get -y dist-upgrade; \
in-target apt-get -y purge unity-webapps-common zeitgeist-core zeitgeist-datahub epoptes-client; \ in-target apt-get -y purge unity-webapps-common zeitgeist-core zeitgeist-datahub webbrowser-app epoptes-client; \
in-target apt-get -y autoremove; \ in-target apt-get -y autoremove; \
sed -i'' -e 's/ubuntu/gnome-fallback/g' /target/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf; \ sed -i'' -e 's/ubuntu/gnome-fallback/g' /target/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf; \
in-target bash -c "/usr/bin/curl -sSL4 http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/postseed-docenti.sh | /bin/bash >/root/postseed.log 2>&1"; in-target bash -c "/usr/bin/curl -sSL4 http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/postseed-docenti.sh | /bin/bash >/root/postseed.log 2>&1";

View File

@ -28,18 +28,17 @@ d-i mirror/http/proxy string
d-i mirror/suite string trusty d-i mirror/suite string trusty
# Apt-setup additional repos # Apt-setup additional repos
d-i apt-setup/extras boolean true
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/backports boolean true
d-i apt-setup/non-free boolean true
d-i apt-setup/contrib boolean true
d-i apt-setup/services-select multiselect security, updates d-i apt-setup/services-select multiselect security, updates
d-i apt-setup/security_host string {{ mirror_security_host }} d-i apt-setup/security_host string {{ mirror_security_host }}
d-i apt-setup/security_path string {{ mirror_security_path }} d-i apt-setup/security_path string {{ mirror_security_path }}
# Additional repos
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/multiverse boolean true
# Setup and enable libreoffice PPA # Setup and enable libreoffice PPA
d-i apt-setup/local0/repository string http://{{ execpath }}ppa.launchpad.net/libreoffice/libreoffice-5-0/ubuntu trusty main d-i apt-setup/local0/repository string http://{{ execpath }}ppa.launchpad.net/libreoffice/ppa/ubuntu trusty main
d-i apt-setup/local0/comment string LibreOffice Official PPA d-i apt-setup/local0/comment string LibreOffice Official PPA
d-i apt-setup/local0/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x36E81C9267FD1383FCC4490983FBA1751378B444&op=get d-i apt-setup/local0/key string http://keyserver.ubuntu.com:11371/pks/lookup?search=0x36E81C9267FD1383FCC4490983FBA1751378B444&op=get
@ -70,6 +69,7 @@ d-i user-setup/encrypt-home boolean false
# Kernel installation # Kernel installation
d-i base-installer/kernel/image string linux-generic d-i base-installer/kernel/image string linux-generic
d-i base-installer/kernel/altmeta string lts-xenial
# Install the Edubuntu desktop. # Install the Edubuntu desktop.
tasksel tasksel/first multiselect edubuntu-desktop-gnome tasksel tasksel/first multiselect edubuntu-desktop-gnome
@ -83,7 +83,7 @@ d-i localechooser/translation/warn-light boolean true
# Policy to upgrade: none # Policy to upgrade: none
d-i pkgsel/update-policy select none d-i pkgsel/update-policy select none
# UPgrade after installation: no # Upgrade after installation: no
d-i pkgsel/upgrade select none d-i pkgsel/upgrade select none
# Language pack selection # Language pack selection
@ -97,9 +97,9 @@ d-i pkgsel/language-pack-patterns string language-pack-gnome-$LL language-pack-
# Adding libreoffice and ansible # Adding libreoffice and ansible
{% if ansible_bios_version == 'VirtualBox' %} {% if ansible_bios_version == 'VirtualBox' %}
d-i pkgsel/include string openssh-server libreoffice ansible vim screen git curl cifs-utils ubuntu-edu-secondary libnss-myhostname geogebra geogebra-gnome sysv-rc-conf virtualbox-guest-dkms d-i pkgsel/include string openssh-server libreoffice ansible vim screen git curl cifs-utils ubuntu-edu-{{ edu_package }} libnss-myhostname geogebra geogebra-gnome sysv-rc-conf virtualbox-guest-dkms
{% else %} {% else %}
d-i pkgsel/include string openssh-server libreoffice ansible vim screen git curl cifs-utils ubuntu-edu-secondary libnss-myhostname geogebra geogebra-gnome sysv-rc-conf d-i pkgsel/include string openssh-server libreoffice ansible vim screen git curl cifs-utils ubuntu-edu-{{ edu_package }} libnss-myhostname geogebra geogebra-gnome sysv-rc-conf
{% endif %} {% endif %}
# Post installation tasks # Post installation tasks

View File

@ -0,0 +1,9 @@
#!/bin/bash
# Cambio username con quello fornito da servizio
TARGETHOSTNAME=$(/usr/bin/wget -qO- http://{{ ansible_local.domain.serverfqdn }}:3000/whatsmyhostname?role=aula)
echo $TARGETHOSTNAME > /etc/hostname
/bin/sed -i'' -e "s/kickseed/$TARGETHOSTNAME/g" /etc/hosts
# Installo i file necessari per ansible.
/usr/bin/curl -sSL4 http://{{ ansible_local.domain.serverfqdn }}/ks/ansible-pull/init-ansible.sh | /bin/bash

View File

@ -1,27 +0,0 @@
#!/bin/bash
domaingroup="domain users"
localgroups="pulse pulse-access"
baseusers="bglug"
domainusers="$(getent group "${domaingroup}" | awk 'BEGIN { FS = ":" } ; { print $4 }' | sed -e 's/,/ /g')"
users="${baseusers} ${domainusers}"
for group in ${localgroups}; do
actualusers=$(getent group '${group}' | awk 'BEGIN { FS = ":" }; { print $4 }' | sed -e 's/,/ /g')
# Removing users not in the group
for user in ${actualusers}; do
whuser=${user//[[:space:]]/}
echo "removing ${user}"
[[ "${users}" =~ "${whuser}" ]] || gpasswd -d "${whuser}" "${group}"
unset whuser
done
# Adding users to group
for user in ${users}; do
whuser=${user//[[:space:]]/}
[[ "${actualusers}" =~ "${whuser}" ]] || gpasswd -a "${whuser}" "${group}"
done
done

View File

@ -0,0 +1,3 @@
# Repo BgLUG
deb http://{{ execpath }}repo.bglug.it/ubuntu trusty main
#deb-src http://{{ execpath }}repo.bglug.it/ubuntu trusty main

View File

@ -0,0 +1,2 @@
deb http://{{ execpath }}ppa.launchpad.net/epoptes/ppa/ubuntu trusty main
#deb-src http://{{ execpath }}ppa.launchpad.net/epoptes/ppa/ubuntu trusty main

View File

@ -0,0 +1 @@
deb http://{{ execpath }}www.geogebra.net/linux stable main

View File

@ -0,0 +1,2 @@
deb http://{{ execpath }}ppa.launchpad.net/libreoffice/ppa/ubuntu trusty main
#deb-src http://{{ execpath }}ppa.launchpad.net/libreoffice/ppa/ubuntu trusty main

View File

@ -0,0 +1,19 @@
# Base repositories for Ubuntu 14.04 - Trusty Tahr
deb http://{{ mirror_host }}{{ mirror_path }} trusty main restricted universe multiverse
deb http://{{ mirror_host }}{{ mirror_path }} trusty-security main restricted universe multiverse
deb http://{{ mirror_host }}{{ mirror_path }} trusty-updates main restricted universe multiverse
deb http://{{ mirror_host }}{{ mirror_path }} trusty-backports main restricted universe multiverse
# Sources
#deb-src http://{{ mirror_host }}{{ mirror_path }} trusty main restricted universe multiverse
#deb-src http://{{ mirror_host }}{{ mirror_path }} trusty-security main restricted universe multiverse
#deb-src http://{{ mirror_host }}{{ mirror_path }} trusty-updates main restricted universe multiverse
#deb-src http://{{ mirror_host }}{{ mirror_path }} trusty-backports main restricted universe multiverse
# Security
deb http://{{ mirror_security_host }}{{ mirror_security_path }} trusty-security main restricted universe multiverse
#deb-src http://{{ mirror_security_host }}{{ mirror_security_path }} trusty-security main restricted universe multiverse
# Extras
deb http://{{ execpath }}extras.ubuntu.com/ubuntu trusty main
deb http://{{ execpath }}archive.canonical.com/ trusty partner

View File

@ -13,7 +13,7 @@
- name: pxelinux.0 - name: pxelinux.0
get_url: get_url:
url: "http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-i386/current/images/netboot/pxelinux.0" url: "http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-amd64/current/images/utopic-netboot/pxelinux.0"
dest: /var/lib/tftpboot/pxelinux.0 dest: /var/lib/tftpboot/pxelinux.0
- name: pxelinux.cfg/default - name: pxelinux.cfg/default
@ -35,7 +35,7 @@
- name: vesamenu.c32 - name: vesamenu.c32
get_url: get_url:
url: "http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-i386/current/images/netboot/ubuntu-installer/i386/boot-screens/vesamenu.c32" url: "http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-i386/current/images/netboot/ubuntu-installer/i386/boot-screens/vesamenu.c32"
dest: /var/lib/tftpboot/utils/vesamenu.c32 dest: /var/lib/tftpboot/utils/vesamenu.c32
- name: chain.c32 - name: chain.c32
@ -45,22 +45,22 @@
- name: linux i386 - name: linux i386
get_url: get_url:
url: "http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-i386/current/images/netboot/ubuntu-installer/i386/linux" url: "http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-i386/current/images/netboot/ubuntu-installer/i386/linux"
dest: /var/lib/tftpboot/ubuntu/14.04/i386/linux dest: /var/lib/tftpboot/ubuntu/14.04/i386/linux
- name: initrd.gz i386 - name: initrd.gz i386
get_url: get_url:
url: "http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-i386/current/images/netboot/ubuntu-installer/i386/initrd.gz" url: "http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-i386/current/images/netboot/ubuntu-installer/i386/initrd.gz"
dest: /var/lib/tftpboot/ubuntu/14.04/i386/initrd.gz dest: /var/lib/tftpboot/ubuntu/14.04/i386/initrd.gz
- name: linux amd64 - name: linux amd64
get_url: get_url:
url: "http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux" url: "http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux"
dest: /var/lib/tftpboot/ubuntu/14.04/amd64/linux dest: /var/lib/tftpboot/ubuntu/14.04/amd64/linux
- name: initrd.gz amd64 - name: initrd.gz amd64
get_url: get_url:
url: "http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz" url: "http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz"
dest: /var/lib/tftpboot/ubuntu/14.04/amd64/initrd.gz dest: /var/lib/tftpboot/ubuntu/14.04/amd64/initrd.gz
- name: memdisk - name: memdisk

View File

@ -14,8 +14,8 @@
- name: Configuring TFTP - name: Configuring TFTP
shell: /sbin/e-smith/db configuration setprop dnsmasq tftp-status enabled dhcp-boot pxelinux.0 shell: /sbin/e-smith/db configuration setprop dnsmasq tftp-status enabled dhcp-boot pxelinux.0
when: chk_tftp_enabled|changed when: chk_tftp_enabled is changed
- name: Activating tftp - name: Activating tftp
shell: /sbin/e-smith/signal-event nethserver-dnsmasq-save shell: /sbin/e-smith/signal-event nethserver-dnsmasq-save
when: chk_tftp_enabled|changed when: chk_tftp_enabled is changed

View File

@ -56,6 +56,28 @@ LABEL return-docenti
MENU EXIT MENU EXIT
MENU END MENU END
MENU BEGIN
MENU TITLE Installa nuova macchina AULA
LABEL aula-32bit
MENU LABEL ^32 bit
LINUX /ubuntu/14.04/i386/linux
INITRD /ubuntu/14.04/i386/initrd.gz
APPEND vga=normal auto=true hostname=kickseed url=http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/aula-trusty.seed -- quiet
LABEL aula-64bit
MENU LABEL ^64 bit
LINUX /ubuntu/14.04/amd64/linux
INITRD /ubuntu/14.04/amd64/initrd.gz
APPEND vga=normal auto=true hostname=kickseed url=http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/aula-trusty.seed -- quiet
MENU SEPARATOR
LABEL return-aula
MENU LABEL ^Torna al menu principale
MENU EXIT
MENU END
MENU SEPARATOR MENU SEPARATOR
MENU BEGIN MENU BEGIN

View File

@ -0,0 +1,35 @@
---
# Cambio nome interfacce
- name: Removing old interface names
file:
path: /etc/udev/rules.d/70-persistent-net.rules
state: absent
become: yes
- name: Forcing recreation of {{ extnic }}
shell: "INTERFACE=eth0 MATCHADDR={{ ansible_eth0.macaddress }} INTERFACE_NAME={{ extnic }} /lib/udev/write_net_rules"
become: yes
- name: Forcing recreation of {{ intnic }}
shell: "INTERFACE=eth1 MATCHADDR={{ ansible_eth1.macaddress }} INTERFACE_NAME={{ intnic }} /lib/udev/write_net_rules"
become: yes
- name: Pulizia vecchie interfacce
shell: "/sbin/e-smith/db networks delete {{ item }}"
become: yes
with_items:
- eth0
- eth1
- name: Creo interfaccia esterna in NethServer
shell: /sbin/e-smith/db networks set {{ extnic }} ethernet bootproto dhcp device {{ extnic }} hwaddr {{ ansible_eth0.macaddress }} onboot yes peerdns yes role red
become: yes
- name: Creo interfaccia interna in NethServer
shell: /sbin/e-smith/db networks set {{ intnic }} ethernet bootproto none device {{ intnic }} hwaddr {{ ansible_eth1.macaddress }} ipaddr 172.16.254.1 netmask 255.255.255.0 onboot yes role green
become: yes
- name: Trigger interfaces configuration
shell: "ifdown eth0; ifdown eth1; udevadm control --reload-rules && udevadm trigger; /sbin/e-smith/signal-event interface-update"
become: yes

View File

@ -20,10 +20,10 @@
- name: Installazione python-argparse - name: Installazione python-argparse
yum: yum:
name: "http://mirror.centos.org/centos/6/extras/x86_64/Packages/python-argparse-1.2.1-2.el6.centos.noarch.rpm" name: python-argparse
state: present state: present
become: yes become: yes
when: check_argparse|changed when: check_argparse is changed
tags: ansible tags: ansible
#- name: Download della gestione client con ansible #- name: Download della gestione client con ansible

View File

@ -9,7 +9,7 @@
- name: Installo epel-release - name: Installo epel-release
yum: name=epel-release state=present yum: name=epel-release state=present
become: yes become: yes
when: check_epel|failed when: check_epel is failed
register: epel_installed register: epel_installed
ignore_errors: yes ignore_errors: yes
@ -18,20 +18,20 @@
name: "http://dl.fedoraproject.org/pub/epel/6/{{ ansible_architecture }}/epel-release-6-8.noarch.rpm" name: "http://dl.fedoraproject.org/pub/epel/6/{{ ansible_architecture }}/epel-release-6-8.noarch.rpm"
state: present state: present
become: yes become: yes
when: epel_installed|failed when: epel_installed is failed
register: rpm_epel_installed register: rpm_epel_installed
- name: Abilito il repo EPEL - name: Abilito il repo EPEL
shell: yum-config-manager --enable epel shell: yum-config-manager --enable epel
become: yes become: yes
when: epel_installed|changed or epel_installed|success or rpm_epel_installed|changed when: epel_installed is changed or epel_installed is succeeded or rpm_epel_installed is changed
changed_when: "'[epel]' in epel_enabled.stdout and epel_enabled.rc == 0" changed_when: "'[epel]' in epel_enabled.stdout and epel_enabled.rc == 0"
register: epel_enabled register: epel_enabled
- name: Pulizia e ricaricam. repo - name: Pulizia e ricaricam. repo
shell: yum clean all && yum repolist shell: yum clean all && yum repolist
become: yes become: yes
when: epel_enabled|changed when: epel_enabled is changed
tags: repo tags: repo
- name: Aggiorno il sistema - name: Aggiorno il sistema

View File

@ -8,16 +8,11 @@
name: yum-plugin-versionlock name: yum-plugin-versionlock
state: present state: present
- name: Updating nethserver-release to last known version for 6.6
yum:
name: nethserver-release-6.6
state: present
- name: Checking if already locked - name: Checking if already locked
shell: yum versionlock list | grep -q nethserver-release && echo 'Locked' || true shell: yum versionlock list | grep -q nethserver-release && echo 'Locked' || true
register: chk_locked_nethrelease register: chk_locked_nethrelease
changed_when: "'Locked' not in chk_locked_nethrelease.stdout" changed_when: "'Locked' not in chk_locked_nethrelease.stdout"
- name: Locking nethserver-release version to 6.6 - name: Locking nethserver-release version
shell: yum versionlock add nethserver-release shell: yum versionlock add nethserver-release
when: chk_locked_nethrelease|changed when: chk_locked_nethrelease is changed

View File

@ -7,7 +7,7 @@
- name: Creazione directory .ssh - name: Creazione directory .ssh
shell: mkdir -p $HOME/.ssh shell: mkdir -p $HOME/.ssh
when: check_sshdir|failed when: check_sshdir is failed
- name: Verifica chiave ssh - name: Verifica chiave ssh
shell: test -f $HOME/.ssh/id_rsa shell: test -f $HOME/.ssh/id_rsa
@ -17,4 +17,4 @@
- name: Gestione creazione chiave ssh - name: Gestione creazione chiave ssh
shell: ssh-keygen -t rsa -b 1024 -f $HOME/.ssh/id_rsa -N '' shell: ssh-keygen -t rsa -b 1024 -f $HOME/.ssh/id_rsa -N ''
when: check_key|failed when: check_key is failed

View File

@ -16,4 +16,3 @@
- name: Determining mirror_security_path - name: Determining mirror_security_path
set_fact: spath="{{ ansible_local.domain.mirror_security_path }}" set_fact: spath="{{ ansible_local.domain.mirror_security_path }}"
when: ansible_local.domain.mirror_security_path is defined when: ansible_local.domain.mirror_security_path is defined

View File

@ -23,14 +23,14 @@
owner: root owner: root
group: root group: root
mode: 0755 mode: 0755
when: chk_mount_nfs|changed when: chk_mount_nfs is changed
- name: Adding mountpoint to fstab - name: Adding mountpoint to fstab
lineinfile: lineinfile:
dest: /etc/fstab dest: /etc/fstab
line: "{{ ansible_local.domain.mirror_nfs_share }} /var/spool/apt-mirror/mirror nfs4 defaults 0 0" line: "{{ ansible_local.domain.mirror_nfs_share }} /var/spool/apt-mirror/mirror nfs4 defaults 0 0"
when: chk_mount_nfs|changed when: chk_mount_nfs is changed
- name: Mounting share - name: Mounting share
shell: mount /var/spool/apt-mirror/mirror shell: mount /var/spool/apt-mirror/mirror
when: chk_mount_nfs|changed when: chk_mount_nfs is changed

View File

@ -1,3 +1,2 @@
--- ---
# Managing a remote mirror - Doing nothing ;) # Managing a remote mirror - Doing nothing ;)

View File

@ -22,31 +22,26 @@ set _tilde 0
deb-i386 http://{{ host }}{{ path }} trusty main restricted universe multiverse deb-i386 http://{{ host }}{{ path }} trusty main restricted universe multiverse
deb-i386 http://{{ host }}{{ path }} trusty-security main restricted universe multiverse deb-i386 http://{{ host }}{{ path }} trusty-security main restricted universe multiverse
deb-i386 http://{{ host }}{{ path }} trusty-updates main restricted universe multiverse deb-i386 http://{{ host }}{{ path }} trusty-updates main restricted universe multiverse
deb-i386 http://{{ host }}{{ path }} trusty-proposed main restricted universe multiverse
deb-i386 http://{{ host }}{{ path }} trusty-backports main restricted universe multiverse deb-i386 http://{{ host }}{{ path }} trusty-backports main restricted universe multiverse
deb-amd64 http://{{ host }}{{ path }} trusty main restricted universe multiverse deb-amd64 http://{{ host }}{{ path }} trusty main restricted universe multiverse
deb-amd64 http://{{ host }}{{ path }} trusty-security main restricted universe multiverse deb-amd64 http://{{ host }}{{ path }} trusty-security main restricted universe multiverse
deb-amd64 http://{{ host }}{{ path }} trusty-updates main restricted universe multiverse deb-amd64 http://{{ host }}{{ path }} trusty-updates main restricted universe multiverse
deb-amd64 http://{{ host }}{{ path }} trusty-proposed main restricted universe multiverse
deb-amd64 http://{{ host }}{{ path }} trusty-backports main restricted universe multiverse deb-amd64 http://{{ host }}{{ path }} trusty-backports main restricted universe multiverse
deb-src http://{{ host }}{{ path }} trusty main restricted universe multiverse deb-src http://{{ host }}{{ path }} trusty main restricted universe multiverse
deb-src http://{{ host }}{{ path }} trusty-security main restricted universe multiverse deb-src http://{{ host }}{{ path }} trusty-security main restricted universe multiverse
deb-src http://{{ host }}{{ path }} trusty-updates main restricted universe multiverse deb-src http://{{ host }}{{ path }} trusty-updates main restricted universe multiverse
deb-src http://{{ host }}{{ path }} trusty-proposed main restricted universe multiverse
deb-src http://{{ host }}{{ path }} trusty-backports main restricted universe multiverse deb-src http://{{ host }}{{ path }} trusty-backports main restricted universe multiverse
deb-i386 http://{{ host }}{{ path }} trusty main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer deb-i386 http://{{ host }}{{ path }} trusty main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
deb-i386 http://{{ host }}{{ path }} trusty-security main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer deb-i386 http://{{ host }}{{ path }} trusty-security main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
deb-i386 http://{{ host }}{{ path }} trusty-updates main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer deb-i386 http://{{ host }}{{ path }} trusty-updates main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
deb-i386 http://{{ host }}{{ path }} trusty-proposed main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
deb-i386 http://{{ host }}{{ path }} trusty-backports main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer deb-i386 http://{{ host }}{{ path }} trusty-backports main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
deb-amd64 http://{{ host }}{{ path }} trusty main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer deb-amd64 http://{{ host }}{{ path }} trusty main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
deb-amd64 http://{{ host }}{{ path }} trusty-security main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer deb-amd64 http://{{ host }}{{ path }} trusty-security main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
deb-amd64 http://{{ host }}{{ path }} trusty-updates main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer deb-amd64 http://{{ host }}{{ path }} trusty-updates main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
deb-amd64 http://{{ host }}{{ path }} trusty-proposed main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
deb-amd64 http://{{ host }}{{ path }} trusty-backports main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer deb-amd64 http://{{ host }}{{ path }} trusty-backports main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
deb-i386 http://extras.ubuntu.com/ubuntu trusty main deb-i386 http://extras.ubuntu.com/ubuntu trusty main
@ -54,10 +49,8 @@ deb-amd64 http://extras.ubuntu.com/ubuntu trusty main
deb-src http://extras.ubuntu.com/ubuntu trusty main deb-src http://extras.ubuntu.com/ubuntu trusty main
deb-i386 http://archive.canonical.com/ trusty partner deb-i386 http://archive.canonical.com/ trusty partner
deb-i386 http://archive.canonical.com/ trusty-proposed partner
deb-amd64 http://archive.canonical.com/ trusty partner deb-amd64 http://archive.canonical.com/ trusty partner
deb-amd64 http://archive.canonical.com/ trusty-proposed partner
deb-i386 http://{{ shost }}{{ spath }} trusty-security main restricted universe multiverse deb-i386 http://{{ shost }}{{ spath }} trusty-security main restricted universe multiverse
deb-i386 http://{{ shost }}{{ spath }} trusty-security main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer deb-i386 http://{{ shost }}{{ spath }} trusty-security main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
@ -70,9 +63,19 @@ deb-i386 http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
deb-amd64 http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main deb-amd64 http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
# LibreOffice PPA # LibreOffice PPA
deb-i386 http://ppa.launchpad.net/libreoffice/libreoffice-5-0/ubuntu trusty main deb-i386 http://ppa.launchpad.net/libreoffice/ppa/ubuntu trusty main
deb-amd64 http://ppa.launchpad.net/libreoffice/libreoffice-5-0/ubuntu trusty main deb-amd64 http://ppa.launchpad.net/libreoffice/ppa/ubuntu trusty main
deb-src http://ppa.launchpad.net/libreoffice/libreoffice-5-0/ubuntu trusty main deb-src http://ppa.launchpad.net/libreoffice/ppa/ubuntu trusty main
# Epoptes stable
deb-i386 http://ppa.launchpad.net/epoptes/ppa/ubuntu trusty main
deb-amd64 http://ppa.launchpad.net/epoptes/ppa/ubuntu trusty main
deb-src http://ppa.launchpad.net/epoptes/ppa/ubuntu trusty main
# Geogebra Official repository
deb-i386 http://www.geogebra.net/linux stable main
deb-amd64 http://www.geogebra.net/linux stable main
deb-src http://www.geogebra.net/linux stable main
# BgLUG # BgLUG
deb-i386 http://repo.bglug.it/ubuntu trusty main deb-i386 http://repo.bglug.it/ubuntu trusty main
@ -84,5 +87,7 @@ clean http://extras.ubuntu.com/ubuntu
clean http://archive.canonical.com clean http://archive.canonical.com
clean http://{{ shost }}{{ spath }} clean http://{{ shost }}{{ spath }}
clean http://ppa.launchpad.net/ansible/ansible/ubuntu clean http://ppa.launchpad.net/ansible/ansible/ubuntu
clean http://ppa.launchpad.net/libreoffice/libreoffice-5-0/ubuntu clean http://ppa.launchpad.net/libreoffice/ppa/ubuntu
clean http://ppa.launchpad.net/epoptes/ppa/ubuntu
clean http://www.geogebra.net/linux
clean http://repo.bglug.it/ubuntu clean http://repo.bglug.it/ubuntu

View File

@ -1,3 +0,0 @@
# Generated by Vagrant
[vagrant]
NethServer ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user=vagrant

View File

@ -1,40 +0,0 @@
---
# Cambio nome interfacce
- name: Rinomino interfaccia esterna
replace:
dest: /etc/udev/rules.d/70-persistent-net.rules
regexp: 'eth0'
replace: '{{ extnic }}'
become: yes
- name: Creo interfaccia esterna in NethServer
shell: /sbin/e-smith/db networks set {{ extnic }} ethernet bootproto dhcp device {{ extnic }} hwaddr {{ ansible_eth0.macaddress }} onboot yes peerdns yes role red
become: yes
- name: Pulizia vecchia interfaccia esterna
shell: /sbin/e-smith/db networks delete eth0
become: yes
- name: Rinomino interfaccia interna
replace:
dest: /etc/udev/rules.d/70-persistent-net.rules
regexp: 'eth1'
replace: '{{ intnic }}'
become: yes
- name: Creo interfaccia interna in NethServer
shell: /sbin/e-smith/db networks set {{ intnic }} ethernet bootproto none device {{ intnic }} hwaddr {{ ansible_eth1.macaddress }} ipaddr 172.16.254.1 netmask 255.255.255.0 onboot yes role green
become: yes
- name: Pulizia vecchia interfaccia interna
shell: /sbin/e-smith/db networks delete eth1
become: yes
# Forzo il processo a tornare zero, altrimenti non va.
- name: Ricreo le interfacce
shell: udevadm control --reload-rules && udevadm trigger --attr-match=subsystem=net
become: yes
- name: Segnalo il cambiamento a livello di interfacce
shell: /sbin/e-smith/signal-event interface-update
become: yes