From 4a7d9ab86d9536dc9b1dc1cdef8c55ef85cc3734 Mon Sep 17 00:00:00 2001
From: Lars Beckers <lars.beckers@rwth-aachen.de>
Date: Tue, 26 Sep 2017 21:18:52 +0200
Subject: [PATCH] resort tasks into sensible groups, split off pyxtrlock

---
 client/files/logrotate/logrotate.conf         |  32 ------
 client/handlers/main.yml                      |   3 +
 client/tasks/configuration.yml                |  94 ++++++++++++++++
 client/tasks/hardware-tools.yml               |  12 --
 client/tasks/kde.yml                          |  10 +-
 client/tasks/locale.yml                       |  24 ----
 client/tasks/logging.yml                      |  14 ---
 client/tasks/main.yml                         |  16 +--
 client/tasks/mozilla.yml                      |  19 ++--
 client/tasks/repositories.yml                 |  16 ---
 client/tasks/{desktop.yml => software.yml}    | 105 +++---------------
 .../pyxtrlock.yml => pyxtrlock/tasks/main.yml |   0
 12 files changed, 135 insertions(+), 210 deletions(-)
 delete mode 100644 client/files/logrotate/logrotate.conf
 create mode 100644 client/tasks/configuration.yml
 delete mode 100644 client/tasks/hardware-tools.yml
 delete mode 100644 client/tasks/locale.yml
 delete mode 100644 client/tasks/logging.yml
 delete mode 100644 client/tasks/repositories.yml
 rename client/tasks/{desktop.yml => software.yml} (55%)
 rename client/tasks/pyxtrlock.yml => pyxtrlock/tasks/main.yml (100%)

diff --git a/client/files/logrotate/logrotate.conf b/client/files/logrotate/logrotate.conf
deleted file mode 100644
index 94e8f95..0000000
--- a/client/files/logrotate/logrotate.conf
+++ /dev/null
@@ -1,32 +0,0 @@
-# see "man logrotate" for details
-# rotate log files daily
-daily
-
-# keep 7 days worth of backlogs
-rotate 7
-
-# create new (empty) log files after rotating old ones
-create
-
-# uncomment this if you want your log files compressed
-compress
-
-# packages drop log rotation information into this directory
-include /etc/logrotate.d
-
-# no packages own wtmp, or btmp -- we'll rotate them here
-/var/log/wtmp {
-    missingok
-    monthly
-    create 0664 root utmp
-    rotate 1
-}
-
-/var/log/btmp {
-    missingok
-    monthly
-    create 0660 root utmp
-    rotate 1
-}
-
-# system-specific logs may be configured here
diff --git a/client/handlers/main.yml b/client/handlers/main.yml
index 780a50b..4d3dc40 100644
--- a/client/handlers/main.yml
+++ b/client/handlers/main.yml
@@ -1,5 +1,8 @@
 ---
 # file: roles/client/handlers/main.yml
 
+- name: update apt cache:
+  apt: update_cache=yes
+
 - name: restart kdm
   service: name=sddm state=restarted
diff --git a/client/tasks/configuration.yml b/client/tasks/configuration.yml
new file mode 100644
index 0000000..25cd16d
--- /dev/null
+++ b/client/tasks/configuration.yml
@@ -0,0 +1,94 @@
+---
+# file: roles/client/tasks/desktop.yml
+
+- name: ensure correct hosts file
+  template: src=hosts.j2 dest=/etc/hosts
+  tags:
+    - client
+    - config
+
+- name: ensure i3 is able to lock the screen
+  copy: src=i3lock dest=/usr/local/bin/i3lock owner=root group=root mode=0755
+  tags:
+    - desktop
+    - config
+
+- name: ensure kde nepomuk is disabled
+  file: path=/usr/share/autostart/nepomukserver.desktop state=absent
+  tags:
+    - config
+    - desktop
+    - clean
+
+- name: ensure a sane default web browser
+  alternatives: name=x-www-browser path=/usr/bin/firefox
+  tags:
+    - config
+    - desktop
+
+- name: ensure a rotten default session manager
+  alternatives: name=x-session-manager path=/usr/bin/startkde
+  tags:
+    - config
+    - desktop
+
+- name: ensure a rotten default display manager
+  copy: src=displayManager dest=/etc/X11/default-display-manager owner=root group=root mode=0644
+  tags:
+    - config
+    - desktop
+
+#- name: ensure we got a properly configured kdm
+#  copy: src=kdm/kdmrc dest=/etc/kde4/kdm/kdmrc owner=root group=root mode=0644
+#  tags:
+#    - config
+#    - desktop
+#    - fsmpi
+#
+#- name: ensure deployment of a nice kdm theme
+#  copy: src=kdm/fsmpi_theme/ dest=/usr/share/kde4/apps/kdm/themes/fsmpi owner=root group=root mode=0644
+#  tags:
+#    - config
+#    - desktop
+#    - fsmpi
+#
+#- name: ensure kdm is enabled
+#  service: name=kdm state=running
+#  tags:
+#    - service
+#    - desktop
+#
+#- name: ensure deployment of kde provisioning
+#  copy: src=kde/ dest=/etc/kde4 owner=root group=root mode=0644
+#  tags:
+#    - config
+#    - desktop
+#    - fsmpi
+
+- name: ensure we have the correct printer
+  template: src=lpoptions.j2 dest=/etc/cups/lpoptions owner=root group=root mode=0644
+  tags:
+    - desktop
+    - fsmpi
+    - config
+
+# granting all users access to sound card
+- name: grant user access to soundcard
+  copy: src=udev_audio-perm.rules dest=/etc/udev/rules.d/50-audio-perm.rules owner=root group=root mode=0644
+  tags:
+    - config
+    - desktop
+
+- name: "copy fonts"
+  copy: src={{ item }} dest=/usr/local/share/fonts/ owner=root group=root mode=0644
+  with_fileglob:
+    - fonts/*
+  tags:
+    - fonts
+    - desktop
+
+- name: configure logrotate for rsyslog files to fit the client needs
+  copy: src=logrotate/rsyslog dest=/etc/logrotate.d/rsyslog owner=root group=root mode=0644
+  tags:
+    - client
+    - logrotate
diff --git a/client/tasks/hardware-tools.yml b/client/tasks/hardware-tools.yml
deleted file mode 100644
index 3f607de..0000000
--- a/client/tasks/hardware-tools.yml
+++ /dev/null
@@ -1,12 +0,0 @@
----
-# file: roles/client/tasks/hardware-tools.yml
-
-- name: ensure hardware-tools are installed
-  apt: name={{ item }} state=latest
-  with_items:
-    - smartmontools
-    - hdparm
-    - lm-sensors
-  tags:
-    - packages
-    - hardware-tools
diff --git a/client/tasks/kde.yml b/client/tasks/kde.yml
index 15b6e3d..c37d76b 100644
--- a/client/tasks/kde.yml
+++ b/client/tasks/kde.yml
@@ -3,7 +3,7 @@
 
 
 - name: ensure reasonable subset of kde-baseapps is installed 
-  apt: name={{ item }} state=latest
+  apt: name={{ item }} state=installed
   with_items:
     - dolphin
     - kde-baseapps-bin
@@ -16,7 +16,7 @@
     - kde-baseapps
 
 - name: ensure reasonable subset of kde-plasma-desktop is installed
-  apt: name={{ item }} state=latest
+  apt: name={{ item }} state=installed
   with_items:
     - plasma-desktop
     - plasma-workspace
@@ -32,7 +32,7 @@
     - kde-plasma-desktop
 
 - name: ensure reasonable subset of kde-standard is installed
-  apt: name={{ item }} state=latest
+  apt: name={{ item }} state=installed
   with_items:
     - ark
     - gwenview
@@ -51,7 +51,7 @@
     - sweeper
 
 - name: ensure reasonable subset of kde-full is installed
-  apt: name={{ item }} state=latest
+  apt: name={{ item }} state=installed
   with_items:
     - kdeartwork
     - kdeadmin
@@ -65,7 +65,7 @@
     - kde-full
 
 - name: ensure some further kde packages are installed
-  apt: name={{ item }} state=latest
+  apt: name={{ item }} state=installed
   with_items:
     - gtk2-engines-oxygen
     - gtk3-engines-breeze
diff --git a/client/tasks/locale.yml b/client/tasks/locale.yml
deleted file mode 100644
index 3dc6120..0000000
--- a/client/tasks/locale.yml
+++ /dev/null
@@ -1,24 +0,0 @@
----
-#file: roles/client/tasks/locale.yml
-
-- name: ensure sensible locales are installed on clients
-  locale_gen: name={{ item }} state=present
-  with_items:
-    - en_US.UTF-8
-    - de_DE.UTF-8
-    - en_DK.UTF-8
-  tags: 
-    - locale
-
-- name: ensure korean letters are more than squares
-  apt: name="{{item}}" state=present
-  with_items:
-    - fonts-unfonts-core
-    - fonts-ipafont-gothic
-    - fonts-ipafont-mincho
-    - fonts-arphic-ukai
-    - fonts-arphic-uming
-  tags:
-    - locale
-    - font
-    - packages
diff --git a/client/tasks/logging.yml b/client/tasks/logging.yml
deleted file mode 100644
index d3e1d5e..0000000
--- a/client/tasks/logging.yml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-# file: roles/client/tasks/logging.yml
-
-- name: configure logrotate default to fit the client needs
-  copy: src=logrotate/logrotate.conf dest=/etc/logrotate.conf owner=root group=root mode=0644
-  tags:
-    - client
-    - logrotate
-
-- name: configure logrotate for rsyslog files to fit the client needs
-  copy: src=logrotate/rsyslog dest=/etc/logrotate.d/rsyslog owner=root group=root mode=0644
-  tags:
-    - client
-    - logrotate
diff --git a/client/tasks/main.yml b/client/tasks/main.yml
index 0b8c5f5..f77c217 100644
--- a/client/tasks/main.yml
+++ b/client/tasks/main.yml
@@ -2,18 +2,10 @@
 # file: roles/client/tasks/main.yml
 
 - include: mozilla.yml
-- include: repositories.yml
-- name: ensure correct hosts file
-  template: src=hosts.j2 dest=/etc/hosts
-  tags:
-    - client
-    - config
 - meta: flush_handlers
-- include: desktop.yml
+- include: kde.yml
 - meta: flush_handlers
-- include: logging.yml
+- include: software.yml
+- meta: flush_handlers
+- include: configuration.yml
 - meta: flush_handlers
-#- include: pyxtrlock.yml
-#- meta: flush_handlers
-- include: locale.yml
-- include: hardware-tools.yml
diff --git a/client/tasks/mozilla.yml b/client/tasks/mozilla.yml
index 0867fbd..b646963 100644
--- a/client/tasks/mozilla.yml
+++ b/client/tasks/mozilla.yml
@@ -1,24 +1,27 @@
 ---
 # file: roles/client/tasks/mozilla.yml
 
-- name: ensure the mozilla apt key is in the keyring
-  apt: name=pkg-mozilla-archive-keyring state=present
+- name: ensure the mozilla apt key is not in the keyring
+  apt: name=pkg-mozilla-archive-keyring state=absent
+  notify:
+    - update apt cache
   tags:
-    - packages
+    - client
     - repo
-    - clean
 
 - name: ensure iceweasel-release repository is not used anymore
   apt_repository: repo='deb http://mozilla.debian.net/ jessie-backports iceweasel-release' state=absent
+  notify:
+    - update apt cache
   tags:
-    - packages
+    - client
     - repo
-    - clean
 
 - name: ensure firefox-release repository is not used anymore
   apt_repository: repo='deb http://mozilla.debian.net/ jessie-backports firefox-release' state=absent
+  notify:
+    - update apt cache
   tags:
-    - packages
+    - client
     - repo
-    - clean
 
diff --git a/client/tasks/repositories.yml b/client/tasks/repositories.yml
deleted file mode 100644
index f9e5fe2..0000000
--- a/client/tasks/repositories.yml
+++ /dev/null
@@ -1,16 +0,0 @@
----
-# file: roles/client/tasks/repositories.yml
-
-- name: remove unused packages
-  command: apt-get autoremove -y
-  tags:
-    - packages
-    - repo
-    - clean
-
-- name: update apt cache and upgrade existing packages
-  apt: update_cache=yes upgrade=dist
-  tags:
-    - packages
-    - repo
-    - clean
diff --git a/client/tasks/desktop.yml b/client/tasks/software.yml
similarity index 55%
rename from client/tasks/desktop.yml
rename to client/tasks/software.yml
index 1fd01f9..d7b7cf5 100644
--- a/client/tasks/desktop.yml
+++ b/client/tasks/software.yml
@@ -1,10 +1,8 @@
 ---
 # file: roles/client/tasks/desktop.yml
 
-- include: kde.yml
-
 - name: ensure office applications are installed
-  apt: name={{ item }} state=latest
+  apt: name={{ item }} state=installed
   with_items:
     - libreoffice # this is a meta-package
     - gimp
@@ -33,7 +31,7 @@
     - office
 
 - name: ensure development applications are installed
-  apt: name={{ item }} state=latest
+  apt: name={{ item }} state=installed
   with_items:
     - dia
     - subversion
@@ -77,7 +75,7 @@
     - development
 
 - name: ensure internet applications are installed
-  apt: name={{ item }} state=latest
+  apt: name={{ item }} state=installed
   with_items:
     - thunderbird
     - firefox-esr
@@ -104,7 +102,7 @@
     - internet
 
 - name: ensure multimedia applications are installed
-  apt: name={{ item }} state=latest
+  apt: name={{ item }} state=installed
   with_items:
     - vlc
     - smplayer
@@ -119,7 +117,7 @@
     - multimedia
 
 - name: ensure desktop environments are installed
-  apt: name={{ item }} state=latest
+  apt: name={{ item }} state=installed
   with_items:
     - inkscape
     - i3
@@ -132,7 +130,7 @@
     - desktop
 
 - name: ensure console applications are installed
-  apt: name={{ item }} state=latest
+  apt: name={{ item }} state=installed
   with_items:
     - konsole
     - rxvt-unicode
@@ -141,7 +139,7 @@
     - console
 
 - name: ensure localisation is installed
-  apt: name={{ item }} state=latest
+  apt: name={{ item }} state=installed
   with_items:
     - aspell-de
     - aspell-de-alt
@@ -171,82 +169,15 @@
     - packages
     - clean
 
-- name: ensure i3 is able to lock the screen
-  copy: src=i3lock dest=/usr/local/bin/i3lock owner=root group=root mode=0755
-  tags:
-    - desktop
-    - config
-
-- name: ensure kde nepomuk is disabled
-  file: path=/usr/share/autostart/nepomukserver.desktop state=absent
-  tags:
-    - config
-    - desktop
-    - clean
-
-- name: ensure a sane default web browser
-  alternatives: name=x-www-browser path=/usr/bin/firefox
-  tags:
-    - config
-    - desktop
-
-- name: ensure a rotten default session manager
-  alternatives: name=x-session-manager path=/usr/bin/startkde
-  tags:
-    - config
-    - desktop
-
-- name: ensure a rotten default display manager
-  copy: src=displayManager dest=/etc/X11/default-display-manager owner=root group=root mode=0644
-  tags:
-    - config
-    - desktop
-
-#- name: ensure we got a properly configured kdm
-#  copy: src=kdm/kdmrc dest=/etc/kde4/kdm/kdmrc owner=root group=root mode=0644
-#  tags:
-#    - config
-#    - desktop
-#    - fsmpi
-#
-#- name: ensure deployment of a nice kdm theme
-#  copy: src=kdm/fsmpi_theme/ dest=/usr/share/kde4/apps/kdm/themes/fsmpi owner=root group=root mode=0644
-#  tags:
-#    - config
-#    - desktop
-#    - fsmpi
-#
-#- name: ensure kdm is enabled
-#  service: name=kdm state=running
-#  tags:
-#    - service
-#    - desktop
-#
-#- name: ensure deployment of kde provisioning
-#  copy: src=kde/ dest=/etc/kde4 owner=root group=root mode=0644
-#  tags:
-#    - config
-#    - desktop
-#    - fsmpi
-
-- name: ensure we have the correct printer
-  template: src=lpoptions.j2 dest=/etc/cups/lpoptions owner=root group=root mode=0644
-  tags:
-    - desktop
-    - fsmpi
-    - config
-
-# granting all users access to sound card
-- name: grant user access to soundcard
-  copy: src=udev_audio-perm.rules dest=/etc/udev/rules.d/50-audio-perm.rules owner=root group=root mode=0644
-  tags:
-    - config
-    - desktop
-
-- name: "copy fonts"
-  copy: src={{ item }} dest=/usr/local/share/fonts/ owner=root group=root mode=0644
-  with_fileglob:
-    - fonts/*
+- name: ensure korean letters are more than squares
+  apt: name="{{item}}" state=installed
+  with_items:
+    - fonts-unfonts-core
+    - fonts-ipafont-gothic
+    - fonts-ipafont-mincho
+    - fonts-arphic-ukai
+    - fonts-arphic-uming
   tags:
-    - fonts
-    - desktop
+    - locale
+    - font
+    - packages
diff --git a/client/tasks/pyxtrlock.yml b/pyxtrlock/tasks/main.yml
similarity index 100%
rename from client/tasks/pyxtrlock.yml
rename to pyxtrlock/tasks/main.yml
-- 
GitLab