Compare commits

...

31 Commits

Author SHA1 Message Date
Emiliano Vavassori 2b85700990 Update checks for latest versions of Ansible. 2019-11-18 23:19:31 +01:00
Emiliano Vavassori a2e013674b Fix for PulseAudio permissions, server side. 2018-11-10 21:04:56 +01:00
Emiliano Vavassori 3f421afbbe Simplify changing name of VM. 2018-11-10 14:51:17 +01:00
Emiliano Vavassori 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
Emiliano Vavassori 44a5ca6bae Using vagrant automatic inventory correctly. 2018-11-10 13:32:32 +01:00
Emiliano Vavassori e72883abb5 Revert "Rename README.md to README_old.md"
This reverts commit 8ec091bcbf.
2018-07-29 21:37:08 +02:00
Emiliano Vavassori bcb583cd84 Revert "Notify change of repository."
This reverts commit 14d50a0e07.
2018-07-29 21:37:05 +02:00
Emiliano Vavassori 14d50a0e07
Notify change of repository. 2018-07-29 20:37:33 +02:00
Emiliano Vavassori 8ec091bcbf
Rename README.md to README_old.md 2018-07-29 20:36:51 +02:00
Emiliano Vavassori 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
Emiliano Vavassori 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
Emiliano Vavassori 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
Emiliano Vavassori 965f7c90c4 Revert "Salerno3.ilariaalpi: Realigning repo and production code." 2017-10-25 00:03:10 +02:00
Emiliano Vavassori 65b2923b71 Merge pull request #31 from syntaxerrormmm/salerno3.ilariaalpi
Salerno3.ilariaalpi: Realigning repo and production code.
2017-10-24 23:58:16 +02:00
Emiliano Vavassori 2881d042d9 Using ip from VPN instead of the LAN one. 2017-10-24 23:33:22 +02:00
Emiliano Vavassori 0dbe53a796 Fixing latest differences with origin/master. 2017-10-24 23:31:57 +02:00
Emiliano Vavassori 3a0035c61e Piccola modifica su hosts per gestione in remoto. 2017-10-24 23:31:57 +02:00
Emiliano Vavassori df1dcc532b Modifiche per Salerno 3. 2017-10-24 23:31:57 +02:00
Emiliano Vavassori 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
Emiliano Vavassori 125c72e136 Fix issue #27: try to honor domain.yml mirror_host variable. 2017-10-24 23:24:43 +02:00
Emiliano Vavassori 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
Emiliano Vavassori 02dd0eed95 Issue #23: downloading the client repository by init-ansible.sh. 2017-10-24 21:44:42 +02:00
Emiliano Vavassori 782a0c4204 Merge pull request #24 from syntaxerrormmm/master
Disable validation for GPG signature download.
2017-10-16 18:24:08 +02:00
Emiliano Vavassori 25695acc50 Fixing error with missing validity of SSL certificate for geogebra.net. 2017-10-07 12:21:49 +02:00
Emiliano Vavassori c32f5de1ea Merge pull request #22 from syntaxerrormmm/master
Fixing broken geogebra signing for packages.
2017-10-06 03:01:34 +02:00
Emiliano Vavassori 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
Emiliano Vavassori 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
Emiliano Vavassori 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
Emiliano Vavassori 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
Emiliano Vavassori 638b753ee1 Changes to 6.9. 2017-06-01 21:38:55 +02:00
41 changed files with 325 additions and 185 deletions

20
Vagrantfile vendored
View File

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

View File

@ -2,4 +2,4 @@
# Vagrant provisioning playbook
- hosts: vagrant
roles:
- rename-nic
- rename-nic

View File

@ -1,14 +1,26 @@
#!/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
echo "$(date --rfc-3339=seconds) Installing bin directory."
/usr/bin/install -d -o root -g users /var/lib/{{ ansible_local.domain.domainfull }}/bin
/bin/chown -R root:users /var/lib/{{ ansible_local.domain.domainfull }}
/usr/bin/install -d -o root -g users ${basedir}/bin
# 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
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
chmod a+x /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 ${basedir}/bin/ansible-pull.sh
# Fixing permissions on the main directory
/bin/chown -R root:users ${basedir}
# Installo il cronjob per ansible-pull
echo "$(date --rfc-3339=seconds) Creating crontab"

View File

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

View File

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

View File

@ -20,12 +20,12 @@
- name: Configuring trusted networks
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
- name: Activating trusted network
shell: /sbin/e-smith/signal-event trusted-networks-modify
when: check_trusted|changed
when: check_trusted is changed
tags: trustednet
# Preconfiguring DNS anyways
@ -38,12 +38,12 @@
- name: Configuring DNS resolution
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
- name: Activating correct DNS resolution
shell: "/sbin/e-smith/signal-event nethserver-base-update"
when: chk_dns|changed
when: chk_dns is changed
# Hostname and domainname
@ -61,7 +61,7 @@
- name: Activating hostname/domainname changes
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:
- hostname
- domainname
@ -78,9 +78,9 @@
- 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 }}"
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
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

View File

@ -15,11 +15,11 @@
- 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
when: chk_dhcp|failed
when: chk_dhcp is failed
- name: Activating DHCP
shell: /sbin/e-smith/signal-event nethserver-dnsmasq-save
when: chk_dhcp|failed
when: chk_dhcp is failed
# DNS
# Already preconfigured before (roles/nethcfg/tasks/base.yml)
@ -33,7 +33,7 @@
- name: Configuring DNS resolution
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
- name: Activating correct DNS resolution
@ -41,7 +41,7 @@
with_items:
- base
- dnsmasq
when: chk_dns|changed
when: chk_dns is changed
tags: force-resolvers
# Avahi

View File

@ -23,20 +23,20 @@
- 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
when: chk_passstr is changed
tags: password-policy
- name: Activating password policy
shell: /sbin/e-smith/signal-event password-policy-update
when: chk_passstr|changed
when: chk_passstr is changed
tags: password-policy
# Organization configuration
- 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 }}"
when: check_org|changed
when: check_org is changed
- name: Activating organization configuration
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
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
shell: /sbin/e-smith/signal-event group-create domusers
when: check_domusers|failed
when: check_domusers is failed
# Domain Operators
@ -25,11 +25,11 @@
- name: domopers - Creating new group
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
shell: /sbin/e-smith/signal-event group-create domopers
when: check_domopers|failed
when: check_domopers is failed
# Docenti
@ -40,8 +40,8 @@
- name: docenti - Creating new group
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
shell: /sbin/e-smith/signal-event group-create docenti
when: check_docenti|failed
when: check_docenti is failed

View File

@ -1,9 +1,6 @@
---
# Reconfiguring network interfaces
- name: Configuring external NIC
shell: /sbin/e-smith/db networks setprop {{ extnic }} role red bootproto dhcp
- name: Configuring internal NIC
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
shell: /sbin/e-smith/db configuration setprop ntpd NTPServer ntp1.inrim.it status enabled
become: yes
when: chk_ntp|changed
when: chk_ntp is changed
- name: Activating NTP
shell: /sbin/e-smith/signal-event nethserver-ntp-update
become: yes
when: chk_ntp|changed
when: chk_ntp is changed

View File

@ -20,11 +20,11 @@
- name: Configuring Squid
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
shell: /sbin/e-smith/signal-event nethserver-squid-update
when: chk_squid|changed
when: chk_squid is changed
# Squid-clamav
@ -36,11 +36,11 @@
- name: Configuring squidclamav
shell: /sbin/e-smith/db configuration setprop squidclamav status enabled
when: chk_squidclamav|changed
when: chk_squidclamav is changed
- name: Activating squidclamav
shell: /sbin/e-smith/signal-event nethserver-squidclamav-update
when: chk_squidclamav|changed
when: chk_squidclamav is changed
# SquidGuard
@ -52,7 +52,7 @@
- name: Configuring squidguard
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
shell: "/sbin/e-smith/signal-event nethserver-squidguard-{{ item }}"
@ -60,7 +60,7 @@
- save
- update
- downloadlists
when: check_squidguard|changed
when: check_squidguard is changed
# Content filtering settings
@ -72,8 +72,8 @@
- 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
register: cf_cat
when: check_cf|changed
when: check_cf is changed
- name: Activating content filtering as a whole
shell: /sbin/e-smith/signal-event nethserver-squidguard-update
when: check_cf|changed
when: check_cf is changed

View File

@ -26,7 +26,7 @@
group: root
mode: 0755
state: directory
when: check_tempcust|changed
when: check_tempcust is changed
- name: "Copying settings from default."
copy:
@ -36,14 +36,14 @@
owner: root
group: root
mode: 0644
when: check_tempcust|changed
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|changed
when: check_tempcust is changed
- name: Adding server signing as mandatory
lineinfile:
@ -51,7 +51,7 @@
line: "server signing = mandatory"
insertafter: "^workgroup = "
state: present
when: check_tempcust|changed
when: check_tempcust is changed
- name: Checking SMB configuration
shell: /sbin/e-smith/db configuration printprop smb RoamingProfiles
@ -61,11 +61,11 @@
- name: Configuring SMB
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
shell: /sbin/e-smith/signal-event nethserver-samba-save
when: chk_smb|changed
when: chk_smb is changed
# ibays
@ -86,56 +86,56 @@
register: chk_shared
- 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-custom/etc/samba/smb.conf/ibay-shared
when: force_ibay_shared|bool or chk_shared|failed
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 is failed
- name: Configuring ibay-shared template structure (directory mask)
lineinfile:
dest: /etc/e-smith/templates-custom/etc/samba/smb.conf/ibay-shared/20profile_default
dest: /etc/e-smith/templates/etc/samba/smb.conf/ibay-shared/20profile_default
line: 'directory mask = 0775'
insertafter: '^create mask'
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
lineinfile:
dest: /etc/e-smith/templates-custom/etc/samba/smb.conf/ibay-shared/20profile_default
dest: /etc/e-smith/templates/etc/samba/smb.conf/ibay-shared/20profile_default
line: 'force create mode = 0664'
insertafter: '^directory mask'
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
lineinfile:
dest: /etc/e-smith/templates-custom/etc/samba/smb.conf/ibay-shared/20profile_default
dest: /etc/e-smith/templates/etc/samba/smb.conf/ibay-shared/20profile_default
line: 'force directory mode = 0775'
insertafter: '^force create mode'
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
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
shell: /sbin/e-smith/signal-event ibay-create shared
become: yes
when: chk_shared|failed
when: chk_shared is failed
- name: Changing ibay profile for shared
shell: /sbin/e-smith/db accounts setprop shared SmbProfileType shared
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|changed
when: check_tempcust is changed
- name: Forcing regeneration of smb.conf
shell: /sbin/e-smith/signal-event nethserver-samba-update
become: yes
when: force_ibay_shared|bool or chk_shared|failed or check_tempcust|changed
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

View File

@ -8,5 +8,6 @@ mirror_security_host: security.ubuntu.com
mirror_security_path: /ubuntu
mirror_localpath: /ks/mirror
execpath: ""
execsecurepath: ""
execmirrorpath: ""
development: false

View File

@ -3,6 +3,7 @@
- include: mirror-cfg.yml
tags:
- preseed
- repoconfig
- include: preseed.yml
tags:
@ -16,3 +17,8 @@
- include: firefoxcert.yml
tags:
- firefox
- include: paperms.yml
tags:
- preseed
- paperms

View File

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

@ -14,12 +14,12 @@
- 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
when: chk_ks_created|failed
when: chk_ks_created is failed
become: yes
- name: Attivazione web preseed
shell: /sbin/e-smith/signal-event ibay-create ks
when: chk_ks_created|failed
when: chk_ks_created is failed
become: yes
- name: Verifica presenza directory mirror
@ -31,7 +31,7 @@
- name: Collegamento directory mirror
file: path=/var/lib/nethserver/ibay/ks/mirror src=/var/spool/apt-mirror/mirror state=link
become: yes
when: chk_mirror_dir|success
when: chk_mirror_dir is succeeded
- name: Creazione directory preseed
file:
@ -74,6 +74,5 @@
- postseed-client.sh
- postseed-docenti.sh
- postseed-aula.sh
- pulseaudio-perms.sh
- checksum.fact
become: yes

View File

@ -35,3 +35,10 @@
- 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

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

@ -55,7 +55,7 @@ d-i apt-setup/local2/key string http://keyserver.ubuntu.com:11371/pks/lookup
# 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://www.geogebra.net/linux/office@geogebra.org.gpg.key.new
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

View File

@ -55,7 +55,7 @@ d-i apt-setup/local2/key string http://keyserver.ubuntu.com:11371/pks/lookup
# 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://www.geogebra.net/linux/office@geogebra.org.gpg.key.new
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

View File

@ -55,7 +55,7 @@ d-i apt-setup/local2/key string http://keyserver.ubuntu.com:11371/pks/lookup
# 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://www.geogebra.net/linux/office@geogebra.org.gpg.key.new
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

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

@ -1,18 +1,18 @@
# Base repositories for Ubuntu 14.04 - Trusty Tahr
deb http://{{ execpath }}{{ host }}{{ path }} trusty main restricted universe multiverse
deb http://{{ execpath }}{{ host }}{{ path }} trusty-security main restricted universe multiverse
deb http://{{ execpath }}{{ host }}{{ path }} trusty-updates main restricted universe multiverse
deb http://{{ execpath }}{{ host }}{{ path }} trusty-backports main restricted universe multiverse
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://{{ execpath }}{{ host }}{{ path }} trusty main restricted universe multiverse
#deb-src http://{{ execpath }}{{ host }}{{ path }} trusty-security main restricted universe multiverse
#deb-src http://{{ execpath }}{{ host }}{{ path }} trusty-updates main restricted universe multiverse
#deb-src http://{{ execpath }}{{ host }}{{ path }} trusty-backports main restricted universe multiverse
#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://{{ execpath }}{{ shost }}{{ spath }} trusty-security main restricted universe multiverse
#deb-src http://{{ execpath }}{{ shost }}{{ spath }} trusty-security main restricted universe multiverse
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

View File

@ -14,8 +14,8 @@
- name: Configuring TFTP
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
shell: /sbin/e-smith/signal-event nethserver-dnsmasq-save
when: chk_tftp_enabled|changed
when: chk_tftp_enabled is changed

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

@ -23,7 +23,7 @@
name: python-argparse
state: present
become: yes
when: check_argparse|changed
when: check_argparse is changed
tags: ansible
#- name: Download della gestione client con ansible

View File

@ -9,7 +9,7 @@
- name: Installo epel-release
yum: name=epel-release state=present
become: yes
when: check_epel|failed
when: check_epel is failed
register: epel_installed
ignore_errors: yes
@ -18,20 +18,20 @@
name: "http://dl.fedoraproject.org/pub/epel/6/{{ ansible_architecture }}/epel-release-6-8.noarch.rpm"
state: present
become: yes
when: epel_installed|failed
when: epel_installed is failed
register: rpm_epel_installed
- name: Abilito il repo EPEL
shell: yum-config-manager --enable epel
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"
register: epel_enabled
- name: Pulizia e ricaricam. repo
shell: yum clean all && yum repolist
become: yes
when: epel_enabled|changed
when: epel_enabled is changed
tags: repo
- name: Aggiorno il sistema

View File

@ -15,4 +15,4 @@
- name: Locking nethserver-release version
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
shell: mkdir -p $HOME/.ssh
when: check_sshdir|failed
when: check_sshdir is failed
- name: Verifica chiave ssh
shell: test -f $HOME/.ssh/id_rsa
@ -17,4 +17,4 @@
- name: Gestione creazione chiave ssh
shell: ssh-keygen -t rsa -b 1024 -f $HOME/.ssh/id_rsa -N ''
when: check_key|failed
when: check_key is failed

View File

@ -23,14 +23,14 @@
owner: root
group: root
mode: 0755
when: chk_mount_nfs|changed
when: chk_mount_nfs is changed
- name: Adding mountpoint to fstab
lineinfile:
dest: /etc/fstab
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
shell: mount /var/spool/apt-mirror/mirror
when: chk_mount_nfs|changed
when: chk_mount_nfs is changed

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