updated drone and ansible support
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details

This commit is contained in:
Paolo Asperti 2019-05-06 00:19:28 +02:00
parent 5170d9e628
commit f1cf36997e
Signed by: paspo
GPG Key ID: 06D46905D19D5182
8 changed files with 140 additions and 58 deletions

View File

@ -1,23 +1,21 @@
# this is needed by the RPM build plugin kind: pipeline
workspace: name: default
base: /build
path: /
pipeline: steps:
- name: create_targz
create_targz: image: registry.libreschool.org/libreschool-automation/rpm-pack:latest
image: libreschool-automation/rpm-pack:latest pull: always
dest: $$NAME-$$VERSION.tar.gz settings:
dir: $$NAME-$$VERSION files:
files: - root
- root - README.md
- README.md - COPYING
- COPYING
when: when:
event: [ push, tag ] event: [ push, tag ]
build: - name: build
image: libreschool-automation/rpm-build:latest image: registry.libreschool.org/libreschool-automation/rpm-build:7
pull: always
commands: commands:
- yum-builddep -y libreschool-nfs.spec - yum-builddep -y libreschool-nfs.spec
- rpmbuild -ba libreschool-nfs.spec - rpmbuild -ba libreschool-nfs.spec
@ -25,23 +23,60 @@ pipeline:
when: when:
event: [ push, tag ] event: [ push, tag ]
pkg_sign: - name: sign
image: libreschool-automation/rpm-sign image: registry.libreschool.org/libreschool-automation/rpm-sign:latest
files: out/*.rpm pull: always
secrets: [ gpg_key, passphrase ] settings:
when: files: out/*.rpm
event: [ tag, deployment ] gpg_key:
from_secret: gpg_key
gitea_release: passphrase:
group: deploy from_secret: passphrase
image: plugins/gitea-release
files: out/*.rpm
checksum:
- md5
- sha1
- sha256
- sha512
secrets: [ gitea_token ]
base_url: https://git.libreschool.org
when: when:
event: tag event: tag
- name: gitea_release
image: plugins/gitea-release
settings:
files: out/*.rpm
checksum:
- md5
- sha1
- sha256
- sha512
api_key:
from_secret: gitea_token
base_url: https://git.libreschool.org
file_exists: skip
when:
event: tag
- name: repo_upload
image: appleboy/drone-scp
settings:
source: out/*.noarch.rpm
target: /vhosts/repo.libreschool.org/https/nethserver/7/devel/x86_64/Packages/
host: repo.libreschool.org
strip_components: 1
username:
from_secret: ssh_username
key:
from_secret: ssh_key
when:
event: tag
repo: LibreSchool/libreschool-nfs
- name: repo_upload_srpms
image: appleboy/drone-scp
settings:
source: out/*.src.rpm
target: /vhosts/repo.libreschool.org/https/nethserver/7/devel/Source/SPackages/
host: repo.libreschool.org
strip_components: 1
username:
from_secret: ssh_username
key:
from_secret: ssh_key
when:
event: tag
repo: LibreSchool/libreschool-nfs

View File

@ -15,7 +15,6 @@ A working [LibreSchool][] installation is required.
At the moment, if you run ```showmount -e [server ip] ``` on the client, you end up with an error. That's because we're ditching NFSv2 and NFSv3 in favour of NFSv4 (this will give us Kerberos integration in future) and all unneeded ports are closed. At the moment, if you run ```showmount -e [server ip] ``` on the client, you end up with an error. That's because we're ditching NFSv2 and NFSv3 in favour of NFSv4 (this will give us Kerberos integration in future) and all unneeded ports are closed.
## TODO / ideas ## ## TODO / ideas ##
- add libreschool-ansible|doraemon dependancy when ready
- verify on a brand new install if after installation a new 'chkconfig {nfs,rpcbind} on' is needed - verify on a brand new install if after installation a new 'chkconfig {nfs,rpcbind} on' is needed
- force Domain Controller mode (db configuration getprop smb ServerRole == PDC) - force Domain Controller mode (db configuration getprop smb ServerRole == PDC)
- export shared folder also - export shared folder also
@ -23,6 +22,17 @@ At the moment, if you run ```showmount -e [server ip] ``` on the client, you end
- ACL on home directories - ACL on home directories
- multiple nfs-server support - multiple nfs-server support
## tested distos
- edubuntu 14.04: OK
- ubuntu 14:04: OK
- ubuntu 16:04: OK
- ubuntu 18:04: ldap can't connect... (remember to force python install on adoption)
- zorin 12: OK
- linuxmint: ldap can't connect...
## License ## ## License ##
As the rest of the LibreSchool project, libreschool-nfs is licensed under [GPLv3][] license. As the rest of the LibreSchool project, libreschool-nfs is licensed under [GPLv3][] license.

View File

@ -1,7 +1,7 @@
Summary: LibreSchool NFS home profiles configuration Summary: LibreSchool NFS home profiles configuration
Name: libreschool-nfs Name: libreschool-nfs
Version: 6.9 Version: 1.0
Release: 1 Release: 1.ns7
License: GPL License: GPL
BuildArch: noarch BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-root BuildRoot: %{_tmppath}/%{name}-root
@ -9,9 +9,14 @@ Source0: %{name}-%{version}.tar.gz
Source1: COPYING Source1: COPYING
URL: %{url_prefix}/%{name} URL: %{url_prefix}/%{name}
Requires: libreschool-release Requires: libreschool-release
Requires: libreschool-client-manager
Requires: nethserver-directory Requires: nethserver-directory
Requires: nfs-utils Requires: nfs-utils
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
BuildRequires: nethserver-devtools BuildRequires: nethserver-devtools
BuildRequires: systemd
%description %description
LibreSchool NFS home profiles configuration LibreSchool NFS home profiles configuration
@ -43,8 +48,9 @@ chkconfig rpcbind on
UDPPort 111 \ UDPPort 111 \
access private access private
/sbin/e-smith/expand-template /etc/exports /sbin/e-smith/expand-template /etc/exports
/sbin/service nfs start >/dev/null 2>&1 || : /sbin/e-smith/expand-template /etc/ansible/reconfigure_clients.yml
/sbin/service rpcbind start >/dev/null 2>&1 || : /usr/bin/systemctl --no-block start nfs >/dev/null 2>&1 || :
/usr/bin/systemctl --no-block start rpmbind >/dev/null 2>&1 || :
/usr/sbin/exportfs -r /usr/sbin/exportfs -r
/sbin/e-smith/signal-event firewall-adjust /sbin/e-smith/signal-event firewall-adjust
/usr/bin/ldapmodify -Y EXTERNAL -f /usr/share/libreschool-nfs/patch.ldif >/dev/null 2>&1 || : /usr/bin/ldapmodify -Y EXTERNAL -f /usr/share/libreschool-nfs/patch.ldif >/dev/null 2>&1 || :
@ -55,10 +61,11 @@ chkconfig rpcbind on
#fi #fi
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
#uninstallation #uninstallation
/sbin/e-smith/expand-template /etc/exports echo > /etc/exports
/sbin/e-smith/expand-template /etc/ansible/reconfigure_clients.yml
/usr/sbin/exportfs -r /usr/sbin/exportfs -r
fi fi
%changelog %changelog
* Sat Nov 4 2017 Paolo Asperti <paolo@asperti.com> - 6.9-1 * Sun Apr 28 2019 Paolo Asperti <paolo@asperti.com> - 1.0-1.ns7
- First release - First release for NethServer 7

View File

@ -2,11 +2,8 @@
- name: Installing client packages - name: Installing client packages
apt: apt:
name: '{{ item }}' name: [ 'nfs-common', 'libnss-ldap' ]
state: latest state: latest
with_items:
- nfs-common
- libnss-ldap
- name: Create directory for user homes - name: Create directory for user homes
file: path=/var/lib/nethserver/home state=directory owner=root group=root mode=0755 file: path=/var/lib/nethserver/home state=directory owner=root group=root mode=0755
@ -59,3 +56,33 @@
owner: 'root' owner: 'root'
group: 'root' group: 'root'
mode: 0644 mode: 0644
- name: Check if lightdm is installed
shell: dpkg-query -W -f='${Status}' lightdm | grep 'install ok installed'
register: lightdm_installed
failed_when: no
changed_when: no
- name: Check if gdm3 is installed
shell: dpkg-query -W -f='${Status}' gdm3 | grep 'install ok installed'
register: gdm3_installed
failed_when: no
changed_when: no
- name: Adjusting lightdm settings
template:
src: 'lightdm.conf'
dest: '/usr/share/lightdm/lightdm.conf.d/50-libreschool.conf'
owner: 'root'
group: 'root'
mode: 0644
when: lightdm_installed.rc == 0
- name: Adjust gdm3 settings
ini_file:
path: /etc/gdm3/greeter.dconf-defaults
section: org/gnome/login-screen
option: disable-user-list
value: "true"
no_extra_spaces: yes
when: gdm3_installed.rc == 0

View File

@ -0,0 +1,4 @@
[Seat:*]
allow-guest=false
greeter-hide-users=true
greeter-show-manual-login=true

View File

@ -0,0 +1 @@
- nfs-client

View File

@ -1,12 +1,10 @@
# #
# 50libreschool-nfs # 50libreschool-nfs
# #
{ {
use esmith::InterfacesDB; use esmith::NetworksDB;
my $ndb = esmith::InterfacesDB->open_ro() || return; my $ndb = esmith::NetworksDB->open_ro() || return;
my $LocalIP = $ndb->green()->prop('ipaddr') || return; my $LocalIP = $ndb->green()->prop('ipaddr') || return;
my $LocalNM = $ndb->green()->prop('netmask') || return; my $LocalNM = $ndb->green()->prop('netmask') || return;
sprintf "/var/lib/nethserver/home\t%s/%s(rw,no_root_squash,sync,no_subtree_check)\n", $LocalIP, $LocalNM; sprintf "/var/lib/nethserver/home\t%s/%s(rw,no_root_squash,sync,no_subtree_check)\n", $LocalIP, $LocalNM;
} }

View File

@ -1,7 +1,7 @@
dn: olcDatabase={2}bdb,cn=config dn: olcDatabase={2}hdb,cn=config
changetype: modify changetype: modify
replace: olcAccess replace: olcAccess
olcAccess: {0}to attrs=sambaNTPassword by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by dn.exact="cn=samba,dc=directory,dc=nh" peername.ip="127.0.0.1" write by self write by * none olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymous auth by * none
olcAccess:: ezF9dG8gYXR0cnM9dXNlclBhc3N3b3JkIA0KIGJ5IGRuLmV4YWN0PSJnaWROdW1iZXI9MCt1aWROdW1iZXI9MCxjbj1wZWVyY3JlZCxjbj1leHRlcm5hbCxjbj1hdXRoIiBtYW5hZ2UNCiBieSBkbi5leGFjdD0iY249cGFtLGRjPWRpcmVjdG9yeSxkYz1uaCIgcGVlcm5hbWUucGF0aD0iL3Zhci9ydW4vbGRhcGkiIHdyaXRlIA0KIGJ5IGRuLmV4YWN0PSJjbj1saWJ1c2VyLGRjPWRpcmVjdG9yeSxkYz1uaCIgcGVlcm5hbWUuaXA9IjEyNy4wLjAuMSIgd3JpdGUNCiBieSBhbm9ueW1vdXMgYXV0aCANCiBieSBzZWxmIHdyaXRlIA0KIGJ5ICogbm9uZQ== -
olcAccess:: ezJ9dG8gZG4uYmFzZT0iIg0KIGJ5ICogcmVhZA== add: olcAccess
olcAccess:: ezN9dG8gKg0KIGJ5IHNlbGYgd3JpdGUNCiBieSBkbi5leGFjdD0iZ2lkTnVtYmVyPTArdWlkTnVtYmVyPTAsY249cGVlcmNyZWQsY249ZXh0ZXJuYWwsY249YXV0aCIgbWFuYWdlDQogYnkgZG4uZXhhY3Q9ImNuPXNhbWJhLGRjPWRpcmVjdG9yeSxkYz1uaCIgcGVlcm5hbWUuaXA9IjEyNy4wLjAuMSIgd3JpdGUgDQogYnkgZG4uZXhhY3Q9ImNuPXBhbSxkYz1kaXJlY3RvcnksZGM9bmgiIHBlZXJuYW1lLnBhdGg9Ii92YXIvcnVuL2xkYXBpIiB3cml0ZSANCiBieSBkbi5leGFjdD0iY249bGlidXNlcixkYz1kaXJlY3RvcnksZGM9bmgiIHBlZXJuYW1lLmlwPSIxMjcuMC4wLjEiIHdyaXRlIA0KIGJ5IHVzZXJzIHNzZj03MSByZWFkIA0KIGJ5ICogcmVhZA== olcAccess: {1}to dn.subtree="ou=People,dc=directory,dc=nh" attrs=userPassword,shadowLastChange by self write by anonymous auth by * none