home · contact · privacy
Add experimental new ansible config tree.
authorChristian Heller <c.heller@plomlompom.de>
Sun, 10 Sep 2017 09:26:45 +0000 (11:26 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Sun, 10 Sep 2017 09:26:45 +0000 (11:26 +0200)
35 files changed:
ansible/config.yml
ansible/config_new.yml [new file with mode: 0644]
ansible/files/apt-mark_new/W530/3d_acceleration [new file with mode: 0644]
ansible/files/apt-mark_new/W530/hotkeys [new file with mode: 0644]
ansible/files/apt-mark_new/W530/minimal_x [new file with mode: 0644]
ansible/files/apt-mark_new/W530/multimedia [new file with mode: 0644]
ansible/files/apt-mark_new/W530/wifi [new file with mode: 0644]
ansible/files/apt-mark_new/X200s/minimal_x [new file with mode: 0644]
ansible/files/apt-mark_new/X200s/multimedia [new file with mode: 0644]
ansible/files/apt-mark_new/X200s/wifi [new file with mode: 0644]
ansible/files/apt-mark_new/minimal/basic_x_tools [new file with mode: 0644]
ansible/files/apt-mark_new/minimal/browser_environment [new file with mode: 0644]
ansible/files/apt-mark_new/minimal/console [new file with mode: 0644]
ansible/files/apt-mark_new/minimal/core [new file with mode: 0644]
ansible/files/apt-mark_new/minimal/man [new file with mode: 0644]
ansible/files/apt-mark_new/minimal/minimal_ansible_environment [new file with mode: 0644]
ansible/files/apt-mark_new/minimal/power_management [new file with mode: 0644]
ansible/files/apt-mark_new/minimal/various_useful [new file with mode: 0644]
ansible/files/dirs_new [new file with mode: 0644]
ansible/files/system_new/W530/___etc___X11___xorg.conf.forced_nvidia [new file with mode: 0644]
ansible/files/system_new/W530/___etc___hostname [new file with mode: 0644]
ansible/files/system_new/W530/___etc___hosts [new file with mode: 0644]
ansible/files/system_new/W530/___etc___wicd___manager-settings.conf [new file with mode: 0644]
ansible/files/system_new/X200s/___etc___hostname [new file with mode: 0644]
ansible/files/system_new/X200s/___etc___hosts [new file with mode: 0644]
ansible/files/system_new/X200s/___etc___wicd___manager-settings.conf [new file with mode: 0644]
ansible/files/system_new/minimal/___etc___apt___apt.conf.d___99mindeps [new file with mode: 0644]
ansible/files/system_new/minimal/___etc___apt___sources.list [new file with mode: 0644]
ansible/files/system_new/minimal/___etc___default___tlp [new file with mode: 0644]
ansible/files/system_new/minimal/___etc___profile [new file with mode: 0644]
ansible/files/system_new/minimal/___etc___systemd___logind.conf [new file with mode: 0644]
ansible/files/system_new/minimal/___etc___timezone [new file with mode: 0644]
ansible/run_root_new.sh [new file with mode: 0755]
ansible/run_user_new.sh [new file with mode: 0755]
ansible/user_new.yml [new file with mode: 0644]

index 3386c91a46f6e3c25be3fc79d4e8c07c172d1c28..4b01cc77b45b28645ec3c23f6c1505a870d7358b 100644 (file)
@@ -6,7 +6,7 @@
 
   - name: ensure directories for symlinks exist
     file: state=directory dest={{item}}
-    with_lines: cat ~/config/ansible/files/dirs | sed -e 's/ *#.*$//'
+    with_lines: cat ~/config/ansible/files/dirs_new | sed -e 's/ *#.*$//'
   - name: symlink system files
     file: state=hard force=yes src={{item}} dest={{item|basename|regex_replace('___','/')}}
     with_fileglob: ~/config/ansible/files/system/*
diff --git a/ansible/config_new.yml b/ansible/config_new.yml
new file mode 100644 (file)
index 0000000..3d3a06d
--- /dev/null
@@ -0,0 +1,119 @@
+---
+- hosts: all
+  user: root
+  become: yes
+  tasks:
+
+  - name: ensure directories for symlinks exist
+    file: state=directory dest={{item}}
+    with_lines: cat ~/config/ansible/files/dirs | sed -e 's/ *#.*$//'
+  - name: symlink system files
+    file: state=hard force=yes src={{item}} dest={{item|basename|regex_replace('___','/')}}
+    with_fileglob: ~/config/ansible/files/system_new/minimal/*
+    with_fileglob: ~/config/ansible/files/system_new/{{ system_name }}/*
+  - name: set hostname for current session
+    shell: hostname {{ system_name }} 
+
+  # Init package management.
+  - name: update package lists
+    apt: update_cache=yes
+  - name: APT - dist-upgrade
+    apt: upgrade=dist
+
+  # Ensure power management.
+  - name: ensure power management tools are installed
+    apt: name={{item}} state=present
+    with_lines: cat ~/config/ansible/files/apt-mark_new/minimal/power_management | sed -e 's/ *#.*$//'
+  - name: start TLP
+    shell: tlp start
+
+  # Configure console.
+  #
+  # For some reason, some settings are only applied two reboots after this.
+  - name: symlink console config files
+    file: state=link force=yes src={{item}} dest={{item|basename|regex_replace('___','/')}}
+    with_fileglob: ~/config/ansible/files/console/*
+  - name: ensure locales and console-setup are installed
+    apt: name={{item}} state=present
+    with_lines: cat ~/config/ansible/files/apt-mark/minimal/console | sed -e 's/ *#.*$//'
+  - name: generate en_US.UTF-8 locale
+    locale_gen: name=en_US.UTF-8 state=present
+  - name: run setupcon to apply console settings from /etc/default/
+    command: setupcon
+
+  # Miscellaneous.
+  - name: Ensure dotfile symlinks
+    file: state=link force=yes src={{item}} dest=~/.{{item|basename}}
+    with_fileglob:
+    - ~/config/dotfiles/minimal/*
+    - ~/config/dotfiles/root/*
+  - name: ensure ~/.vimbackups directory
+    file: state=directory dest=~/.vimbackups
+  - name: ensure man-db, manpages are installed
+    apt: name={{item}} state=present
+    with_lines: cat ~/config/ansible/files/apt-mark/minimal/man | sed -e 's/ *#.*$//'
+  - name: set /etc/localtime
+    file: state=link force=yes src=/usr/share/zoneinfo/Europe/Berlin dest=/etc/localtime
+  - name: ensure various useful tools are installed – sudo, git, vim, less, openssh
+    apt: name={{item}} state=present
+    with_lines: cat ~/config/ansible/files/apt-mark/minimal/various_useful | sed -e 's/ *#.*$//'
+  - name: ensure boot messages are not cleared on start up
+    replace: dest=/etc/systemd/system/getty.target.wants/getty@tty1.service regexp='^TTYVTDisallocate=yes.*$' replace='TTYVTDisallocate=no'
+
+  # Config user.
+  - name: create user plom with sudo privileges and bash shell
+    user: name=plom groups=sudo shell=/bin/bash
+  - name: have config repo in user directory
+    git: repo=https://github.com/plomlompom/config dest=/home/plom/config
+    become_user: plom
+    become_method: su
+
+  # Ensure X window environment.
+  - name: ensure minimal X window environment
+    apt: name={{item}} state=present
+    with_lines: cat ~/config/ansible/files/apt-mark/{{ system_name }}/minimal_x | sed -e 's/ *#.*$//'
+  #- name: ensure 3d acceleration and optimus switch
+  #  apt: name={{item}} state=present
+  #  with_lines: cat ~/config/ansible/files/apt-mark/3d_acceleration | sed -e 's/ *#.*$//'
+  - name: ensure user plom is in bumblebee group
+    user: name=plom groups=bumblebee append=yes
+  - name: ensure basic X tools
+    apt: name={{item}} state=present
+    with_lines: cat ~/config/ansible/files/apt-mark/minimal/basic_x_tools | sed -e 's/ *#.*$//'
+
+  # Set up pentadactyl.
+  - name: ensure browser environment
+    apt: name={{item}} state=present
+    with_lines: cat ~/config/ansible/files/apt-mark/minimal/browser_environment | sed -e 's/ *#.*$//'
+
+  # Ensure wifi.
+  #- name: ensure wifi configuration
+  #  apt: name={{item}} state=present
+  #  with_lines: cat ~/config/ansible/files/apt-mark/wifi | sed -e 's/ *#.*$//'
+
+  # Ensure audio/video consumption necessities.
+  #- name: ensure multimedia tools
+  #  apt: name={{item}} state=present
+  #  with_lines: cat ~/config/ansible/files/apt-mark/multimedia | sed -e 's/ *#.*$//'
+
+  # Ensure hotkeys.
+  #
+  # For some reason, the brightness hotkeys still won't be available unless acpid is restarted (yes, after reboot).
+  #- name: ensure hotkeys 
+  #  apt: name={{item}} state=present
+  #  with_lines: cat ~/config/ansible/files/apt-mark/hotkeys | sed -e 's/ *#.*$//'
+
+  # Remove undesired packages
+  - name: collect desired packages
+    shell: cat files/apt-mark/minimal/* files/apt-mark/{{ system_name }}/*  | sed -e 's/ *#.*$//' > /tmp/white_list_unsorted && sort /tmp/white_list_unsorted > /tmp/white_list_sorted
+  - name: collect currently installed packages
+    shell: dpkg-query -Wf '${Package}\n' > /tmp/all_unsorted && sort /tmp/all_unsorted > /tmp/all_sorted
+  - name: create black list of packages to mark as automatically installed from the difference between the required packages and the packages currently installed
+    shell: comm -3 /tmp/all_sorted /tmp/white_list_sorted > /tmp/list_black
+  - name: mark all packages from black list as automatically installed
+    shell: apt-mark auto $(cat /tmp/list_black)
+  - name: mark all packages from white list as manually installed
+    shell: apt-mark manual $(cat /tmp/white_list_unsorted)
+  - name: purge all packages automatically installed that are not depended on
+    shell: DEBIAN_FRONTEND=noninteractive apt-get -y --purge autoremove
+
diff --git a/ansible/files/apt-mark_new/W530/3d_acceleration b/ansible/files/apt-mark_new/W530/3d_acceleration
new file mode 100644 (file)
index 0000000..7d0ba5b
--- /dev/null
@@ -0,0 +1,5 @@
+bumblebee-nvidia
+libgl1-mesa-dri  # tested as necessary for OpenGL 3D acceleration to work
+libglu1-mesa  # tested as necessary for OpenGL 3D acceleration to work
+linux-headers-amd64  # tested as necessary to build proper nvidia-driver module
+primus  # bridge by which bumblebee will deliver Nvidia-renderend content to Intel card
diff --git a/ansible/files/apt-mark_new/W530/hotkeys b/ansible/files/apt-mark_new/W530/hotkeys
new file mode 100644 (file)
index 0000000..f11bdfa
--- /dev/null
@@ -0,0 +1 @@
+acpid  # captures hotkey presses and triggers respective /etc/acpi/events/*
diff --git a/ansible/files/apt-mark_new/W530/minimal_x b/ansible/files/apt-mark_new/W530/minimal_x
new file mode 100644 (file)
index 0000000..f785794
--- /dev/null
@@ -0,0 +1,4 @@
+libpam-systemd  # needed to start X as non-root
+xinit  # contains startx
+xserver-xorg-core
+xserver-xorg-input-evdev  # supports all input devices the kernel knows about
diff --git a/ansible/files/apt-mark_new/W530/multimedia b/ansible/files/apt-mark_new/W530/multimedia
new file mode 100644 (file)
index 0000000..0b6d9ef
--- /dev/null
@@ -0,0 +1,6 @@
+alsa-utils
+eject
+ffmpeg  # somehow this is needed to make youtube-dl grab 1080p versions of videos
+libdvd-pkg  # decss stuff
+mpv
+youtube-dl  # needed by mpv to directly work YouTube URLs
diff --git a/ansible/files/apt-mark_new/W530/wifi b/ansible/files/apt-mark_new/W530/wifi
new file mode 100644 (file)
index 0000000..0d9d93c
--- /dev/null
@@ -0,0 +1,4 @@
+firmware-iwlwifi  # wifi driver
+wicd-cli  # thanks to my own wicd_wrapper.sh should be enough for most stuff
+wicd-curses  # although this currently is very buggy
+wicd-gtk  # workaround for when wicd-curses fails
diff --git a/ansible/files/apt-mark_new/X200s/minimal_x b/ansible/files/apt-mark_new/X200s/minimal_x
new file mode 100644 (file)
index 0000000..04cbc9c
--- /dev/null
@@ -0,0 +1,3 @@
+libpam-systemd  # needed to start X as non-root
+xinit  # contains startx
+xserver-xorg-core
diff --git a/ansible/files/apt-mark_new/X200s/multimedia b/ansible/files/apt-mark_new/X200s/multimedia
new file mode 100644 (file)
index 0000000..dbcf4ee
--- /dev/null
@@ -0,0 +1,4 @@
+alsa-utils
+ffmpeg  # somehow this is needed to make youtube-dl grab 1080p versions of videos
+mpv
+youtube-dl  # needed by mpv to directly work YouTube URLs
diff --git a/ansible/files/apt-mark_new/X200s/wifi b/ansible/files/apt-mark_new/X200s/wifi
new file mode 100644 (file)
index 0000000..55d86fe
--- /dev/null
@@ -0,0 +1,3 @@
+wicd-cli  # thanks to my own wicd_wrapper.sh should be enough for most stuff
+wicd-curses  # although this currently is very buggy
+wicd-gtk  # workaround for when wicd-curses fails
diff --git a/ansible/files/apt-mark_new/minimal/basic_x_tools b/ansible/files/apt-mark_new/minimal/basic_x_tools
new file mode 100644 (file)
index 0000000..9c68622
--- /dev/null
@@ -0,0 +1,7 @@
+i3
+i3status
+python3  # this is what the i3status wrapper is written in
+redshift
+suckless-tools  # contains dmenu; not using virtual packages as that won't be marked manually installed
+xterm
+x11-xserver-utils  # includes xrdb which applies .Xresources files
diff --git a/ansible/files/apt-mark_new/minimal/browser_environment b/ansible/files/apt-mark_new/minimal/browser_environment
new file mode 100644 (file)
index 0000000..cc9575c
--- /dev/null
@@ -0,0 +1,4 @@
+iceweasel
+vim-gtk  # used by pentadactyl for text editing
+xul-ext-noscript
+xul-ext-pentadactyl
diff --git a/ansible/files/apt-mark_new/minimal/console b/ansible/files/apt-mark_new/minimal/console
new file mode 100644 (file)
index 0000000..01bcbf8
--- /dev/null
@@ -0,0 +1,2 @@
+console-setup
+locales
diff --git a/ansible/files/apt-mark_new/minimal/core b/ansible/files/apt-mark_new/minimal/core
new file mode 100644 (file)
index 0000000..43afba8
--- /dev/null
@@ -0,0 +1,55 @@
+base-files
+base-passwd
+bash
+bsdutils
+coreutils
+dash
+debconf
+debianutils
+diffutils
+dpkg
+e2fslibs
+e2fsprogs
+findutils
+gcc-6-base
+grep
+gzip
+hostname
+init-system-helpers
+libacl1
+libattr1
+libblkid1
+libc6
+libc-bin
+libcomerr2
+libfdisk1
+libgcc1
+liblzma5
+libmount1
+libpam0g
+libpam-modules
+libpam-modules-bin
+libpam-runtime
+libpcre3
+libselinux1
+libsepol1
+libsmartcols1
+libss2
+libtinfo5
+libuuid1
+login
+lsb-base
+mawk
+mount
+multiarch-support
+ncurses-base
+ncurses-bin
+passwd
+perl-base
+sed
+sensible-utils
+sysvinit-utils
+tar
+tzdata
+util-linux
+zlib1g
diff --git a/ansible/files/apt-mark_new/minimal/man b/ansible/files/apt-mark_new/minimal/man
new file mode 100644 (file)
index 0000000..f688e67
--- /dev/null
@@ -0,0 +1,2 @@
+man-db
+manpages
diff --git a/ansible/files/apt-mark_new/minimal/minimal_ansible_environment b/ansible/files/apt-mark_new/minimal/minimal_ansible_environment
new file mode 100644 (file)
index 0000000..f9f4097
--- /dev/null
@@ -0,0 +1,3 @@
+ansible
+ifupdown  # needed for internet connectivity
+isc-dhcp-client  # needed for internet connectivity
diff --git a/ansible/files/apt-mark_new/minimal/power_management b/ansible/files/apt-mark_new/minimal/power_management
new file mode 100644 (file)
index 0000000..3dba602
--- /dev/null
@@ -0,0 +1,2 @@
+acpi-call-dkms  # needed for tlp to access Thinkpad-specific features
+tlp
diff --git a/ansible/files/apt-mark_new/minimal/various_useful b/ansible/files/apt-mark_new/minimal/various_useful
new file mode 100644 (file)
index 0000000..e37a898
--- /dev/null
@@ -0,0 +1,5 @@
+git
+less
+openssh-client
+sudo
+vim
diff --git a/ansible/files/dirs_new b/ansible/files/dirs_new
new file mode 100644 (file)
index 0000000..0739bb8
--- /dev/null
@@ -0,0 +1 @@
+/etc/wicd
diff --git a/ansible/files/system_new/W530/___etc___X11___xorg.conf.forced_nvidia b/ansible/files/system_new/W530/___etc___X11___xorg.conf.forced_nvidia
new file mode 100644 (file)
index 0000000..e651031
--- /dev/null
@@ -0,0 +1,34 @@
+# This is the Optimus-specific configuration recommended by the "NVIDIA
+# Accelerated Linux Graphics Driver README and Installation Guide", Chapter 32
+# "Offloading Graphics Display with RandR 1.4" 
+# (<http://us.download.nvidia.com/XFree86/Linux-x86/346.35/README/randr14.html>)
+# with the "AllowEmptyInitialConfigratuion" added as described by
+# <http://us.download.nvidia.com/XFree86/Linux-x86/346.35/README/randr14.html>.
+
+Section "ServerLayout"
+    Identifier "layout"
+    Screen 0 "nvidia"
+    Inactive "intel"
+EndSection
+
+Section "Device"
+    Identifier "nvidia"
+    Driver "nvidia"
+    BusID "PCI:01:00:0"
+    Option "AllowEmptyInitialConfiguration"
+EndSection
+
+Section "Screen"
+    Identifier "nvidia"
+    Device "nvidia"
+EndSection
+
+Section "Device"
+    Identifier "intel"
+    Driver "modesetting"
+EndSection
+
+Section "Screen"
+    Identifier "intel"
+    Device "intel"
+EndSection
diff --git a/ansible/files/system_new/W530/___etc___hostname b/ansible/files/system_new/W530/___etc___hostname
new file mode 100644 (file)
index 0000000..4d385ae
--- /dev/null
@@ -0,0 +1 @@
+W530
diff --git a/ansible/files/system_new/W530/___etc___hosts b/ansible/files/system_new/W530/___etc___hosts
new file mode 100644 (file)
index 0000000..c6f72a5
--- /dev/null
@@ -0,0 +1,7 @@
+127.0.0.1      localhost
+127.0.1.1      W530
+
+# The following lines are desirable for IPv6 capable hosts
+::1     localhost ip6-localhost ip6-loopback
+ff02::1 ip6-allnodes
+ff02::2 ip6-allrouters
diff --git a/ansible/files/system_new/W530/___etc___wicd___manager-settings.conf b/ansible/files/system_new/W530/___etc___wicd___manager-settings.conf
new file mode 100644 (file)
index 0000000..d2ef3ee
--- /dev/null
@@ -0,0 +1,24 @@
+[Settings]
+backend = external
+wireless_interface = wlp3s0
+wired_interface = enp0s25
+wpa_driver = wext
+always_show_wired_interface = False
+use_global_dns = False
+global_dns_1 = None
+global_dns_2 = None
+global_dns_3 = None
+global_dns_dom = None
+global_search_dom = None
+auto_reconnect = True
+debug_mode = False
+wired_connect_mode = 1
+signal_display_type = 0
+should_verify_ap = 1
+dhcp_client = 0
+link_detect_tool = 0
+flush_tool = 0
+sudo_app = 0
+prefer_wired = False
+show_never_connect = True
+
diff --git a/ansible/files/system_new/X200s/___etc___hostname b/ansible/files/system_new/X200s/___etc___hostname
new file mode 100644 (file)
index 0000000..d241415
--- /dev/null
@@ -0,0 +1 @@
+X200s
diff --git a/ansible/files/system_new/X200s/___etc___hosts b/ansible/files/system_new/X200s/___etc___hosts
new file mode 100644 (file)
index 0000000..b275ecb
--- /dev/null
@@ -0,0 +1,7 @@
+127.0.0.1      localhost
+127.0.1.1      X200s
+
+# The following lines are desirable for IPv6 capable hosts
+::1     localhost ip6-localhost ip6-loopback
+ff02::1 ip6-allnodes
+ff02::2 ip6-allrouters
diff --git a/ansible/files/system_new/X200s/___etc___wicd___manager-settings.conf b/ansible/files/system_new/X200s/___etc___wicd___manager-settings.conf
new file mode 100644 (file)
index 0000000..6d7bb2b
--- /dev/null
@@ -0,0 +1,24 @@
+[Settings]
+backend = external
+wireless_interface = wlan0 
+wired_interface = eth0 
+wpa_driver = wext
+always_show_wired_interface = False
+use_global_dns = False
+global_dns_1 = None
+global_dns_2 = None
+global_dns_3 = None
+global_dns_dom = None
+global_search_dom = None
+auto_reconnect = True
+debug_mode = False
+wired_connect_mode = 1
+signal_display_type = 0
+should_verify_ap = 1
+dhcp_client = 0
+link_detect_tool = 0
+flush_tool = 0
+sudo_app = 0
+prefer_wired = False
+show_never_connect = True
+
diff --git a/ansible/files/system_new/minimal/___etc___apt___apt.conf.d___99mindeps b/ansible/files/system_new/minimal/___etc___apt___apt.conf.d___99mindeps
new file mode 100644 (file)
index 0000000..4aaef79
--- /dev/null
@@ -0,0 +1,4 @@
+APT::AutoRemove::RecommendsImportant "false";
+APT::AutoRemove::SuggestsImportant "false";
+APT::Install-Recommends "false";
+APT::Install-Suggests "false";
diff --git a/ansible/files/system_new/minimal/___etc___apt___sources.list b/ansible/files/system_new/minimal/___etc___apt___sources.list
new file mode 100644 (file)
index 0000000..e64d6ee
--- /dev/null
@@ -0,0 +1,4 @@
+deb http://ftp.debian.org/debian/ stretch main contrib non-free
+deb http://ftp.debian.org/debian/ stretch-updates main contrib non-free
+deb http://ftp.debian.org/debian stretch-backports main contrib non-free
+deb http://security.debian.org/ stretch/updates main contrib non-free
diff --git a/ansible/files/system_new/minimal/___etc___default___tlp b/ansible/files/system_new/minimal/___etc___default___tlp
new file mode 100644 (file)
index 0000000..6db0f60
--- /dev/null
@@ -0,0 +1,278 @@
+# ------------------------------------------------------------------------------
+# tlp - Parameters for power save
+# See full explanation: http://linrunner.de/en/tlp/docs/tlp-configuration.html
+
+# Hint: some features are disabled by default, remove the leading # to enable
+# them.
+
+# Set to 0 to disable, 1 to enable TLP.
+TLP_ENABLE=1
+
+# Operation mode when no power supply can be detected: AC, BAT
+# Concerns some desktop and embedded hardware only.
+TLP_DEFAULT_MODE=AC
+
+# Seconds laptop mode has to wait after the disk goes idle before doing a sync.
+# Non-zero value enables, zero disables laptop mode.
+DISK_IDLE_SECS_ON_AC=0
+DISK_IDLE_SECS_ON_BAT=2
+
+# Dirty page values (timeouts in secs).
+MAX_LOST_WORK_SECS_ON_AC=15
+MAX_LOST_WORK_SECS_ON_BAT=60
+
+# Hint: CPU parameters below are disabled by default, remove the leading #
+# to enable them, otherwise kernel default values are used.
+
+# Select a CPU frequency scaling governor.
+# Intel Core i processor with intel_pstate driver:
+#   powersave(*), performance
+# Older hardware with acpi-cpufreq driver:
+#   ondemand(*), powersave, performance, conservative
+# (*) is recommended.
+# Hint: use tlp-stat -p to show the active driver and available governors.
+# Important:
+#   You *must* disable your distribution's governor settings or conflicts will
+#   occur. ondemand is sufficient for *almost all* workloads, you should know
+#   what you're doing!
+#CPU_SCALING_GOVERNOR_ON_AC=powersave
+#CPU_SCALING_GOVERNOR_ON_BAT=powersave
+
+# Set the min/max frequency available for the scaling governor.
+# Possible values strongly depend on your CPU. For available frequencies see
+# the output of tlp-stat -p.
+#CPU_SCALING_MIN_FREQ_ON_AC=0
+#CPU_SCALING_MAX_FREQ_ON_AC=0
+#CPU_SCALING_MIN_FREQ_ON_BAT=0
+#CPU_SCALING_MAX_FREQ_ON_BAT=0
+
+# Set Intel P-state performance: 0..100 (%)
+# Limit the max/min P-state to control the power dissipation of the CPU.
+# Values are stated as a percentage of the available performance.
+# Requires an Intel Core i processor with intel_pstate driver.
+#CPU_MIN_PERF_ON_AC=0
+#CPU_MAX_PERF_ON_AC=100
+#CPU_MIN_PERF_ON_BAT=0
+#CPU_MAX_PERF_ON_BAT=30
+
+# Set the CPU "turbo boost" feature: 0=disable, 1=allow
+# Requires an Intel Core i processor.
+# Important:
+# - This may conflict with your distribution's governor settings
+# - A value of 1 does *not* activate boosting, it just allows it
+#CPU_BOOST_ON_AC=1
+#CPU_BOOST_ON_BAT=0
+
+# Minimize number of used CPU cores/hyper-threads under light load conditions
+SCHED_POWERSAVE_ON_AC=0
+SCHED_POWERSAVE_ON_BAT=1
+
+# Kernel NMI Watchdog:
+#   0=disable (default, saves power), 1=enable (for kernel debugging only)
+NMI_WATCHDOG=0
+
+# Change CPU voltages aka "undervolting" - Kernel with PHC patch required
+# Frequency voltage pairs are written to:
+#   /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
+# CAUTION: only use this, if you thoroughly understand what you are doing!
+#PHC_CONTROLS="F:V F:V F:V F:V"
+
+# Set CPU performance versus energy savings policy:
+#   performance, normal, powersave
+# Requires kernel module msr and x86_energy_perf_policy from linux-tools
+ENERGY_PERF_POLICY_ON_AC=performance
+ENERGY_PERF_POLICY_ON_BAT=powersave
+
+# Hard disk devices; separate multiple devices with spaces (default: sda).
+# Devices can be specified by disk ID also (lookup with: tlp diskid).
+DISK_DEVICES="sda sdb"
+
+# Hard disk advanced power management level: 1..254, 255 (max saving, min, off)
+# Levels 1..127 may spin down the disk; 255 allowable on most drives.
+# Separate values for multiple disks with spaces. Use the special value 'keep'
+# to keep the hardware default for the particular disk.
+DISK_APM_LEVEL_ON_AC="254 254"
+DISK_APM_LEVEL_ON_BAT="128 128"
+
+# Hard disk spin down timeout:
+#   0:        spin down disabled
+#   1..240:   timeouts from 5s to 20min (in units of 5s)
+#   241..251: timeouts from 30min to 5.5 hours (in units of 30min)
+# See 'man hdparm' for details.
+# Separate values for multiple disks with spaces. Use the special value 'keep'
+# to keep the hardware default for the particular disk.
+#DISK_SPINDOWN_TIMEOUT_ON_AC="0 0"
+#DISK_SPINDOWN_TIMEOUT_ON_BAT="0 0"
+
+# Select IO scheduler for the disk devices: cfq, deadline, noop (Default: cfq);
+# Separate values for multiple disks with spaces. Use the special value 'keep'
+# to keep the kernel default scheduler for the particular disk.
+#DISK_IOSCHED="cfq cfq"
+
+# SATA aggressive link power management (ALPM):
+#   min_power, medium_power, max_performance
+SATA_LINKPWR_ON_AC=max_performance
+SATA_LINKPWR_ON_BAT=min_power
+
+# Exclude SATA host devices from link power management.
+# Separate multiple hosts with spaces.
+#SATA_LINKPWR_BLACKLIST="host1"
+
+# Runtime Power Management for AHCI controllers and disks:
+#   on=disable, auto=enable
+# EXPERIMENTAL ** WARNING: auto will most likely cause system lockups/data loss
+#AHCI_RUNTIME_PM_ON_AC=on
+#AHCI_RUNTIME_PM_ON_BAT=on
+
+# Seconds of inactivity before disk is suspended
+AHCI_RUNTIME_PM_TIMEOUT=15
+
+# PCI Express Active State Power Management (PCIe ASPM):
+#   default, performance, powersave
+PCIE_ASPM_ON_AC=performance
+PCIE_ASPM_ON_BAT=powersave
+
+# Radeon graphics clock speed (profile method): low, mid, high, auto, default;
+# auto = mid on BAT, high on AC; default = use hardware defaults.
+# (Kernel >= 2.6.35 only, open-source radeon driver explicitly)
+RADEON_POWER_PROFILE_ON_AC=high
+RADEON_POWER_PROFILE_ON_BAT=low
+
+# Radeon dynamic power management method (DPM): battery, performance
+# (Kernel >= 3.11 only, requires boot option radeon.dpm=1)
+RADEON_DPM_STATE_ON_AC=performance
+RADEON_DPM_STATE_ON_BAT=battery
+
+# Radeon DPM performance level: auto, low, high; auto is recommended.
+RADEON_DPM_PERF_LEVEL_ON_AC=auto
+RADEON_DPM_PERF_LEVEL_ON_BAT=auto
+
+# WiFi power saving mode: on=enable, off=disable; not supported by all adapters.
+WIFI_PWR_ON_AC=off
+WIFI_PWR_ON_BAT=on
+
+# Disable wake on LAN: Y/N
+WOL_DISABLE=Y
+
+# Enable audio power saving for Intel HDA, AC97 devices (timeout in secs).
+# A value of 0 disables, >=1 enables power save.
+SOUND_POWER_SAVE_ON_AC=0
+SOUND_POWER_SAVE_ON_BAT=1
+
+# Disable controller too (HDA only): Y/N
+SOUND_POWER_SAVE_CONTROLLER=Y
+
+# Set to 1 to power off optical drive in UltraBay/MediaBay when running on
+# battery. A value of 0 disables this feature (Default).
+# Drive can be powered on again by releasing (and reinserting) the eject lever
+# or by pressing the disc eject button on newer models.
+# Note: an UltraBay/MediaBay hard disk is never powered off.
+BAY_POWEROFF_ON_BAT=0
+# Optical drive device to power off (default sr0).
+BAY_DEVICE="sr0"
+
+# Runtime Power Management for PCI(e) bus devices: on=disable, auto=enable
+RUNTIME_PM_ON_AC=on
+RUNTIME_PM_ON_BAT=auto
+
+# Runtime PM for *all* PCI(e) bus devices, except blacklisted ones:
+#   0=disable, 1=enable
+RUNTIME_PM_ALL=1
+
+# Exclude PCI(e) device adresses the following list from Runtime PM
+# (separate with spaces). Use lspci to get the adresses (1st column).
+#RUNTIME_PM_BLACKLIST="bb:dd.f 11:22.3 44:55.6"
+
+# Exclude PCI(e) devices assigned to the listed drivers from Runtime PM
+# (should prevent accidential power on of hybrid graphics' discrete part).
+# Default is "radeon nouveau"; use "" to disable the feature completely.
+# Separate multiple drivers with spaces.
+RUNTIME_PM_DRIVER_BLACKLIST="radeon nouveau"
+
+# Set to 0 to disable, 1 to enable USB autosuspend feature.
+USB_AUTOSUSPEND=1
+
+# Exclude listed devices from USB autosuspend (separate with spaces).
+# Use lsusb to get the ids.
+# Note: input devices (usbhid) are excluded automatically (see below)
+#USB_BLACKLIST="1111:2222 3333:4444"
+
+# WWAN devices are excluded from USB autosuspend: 0=do not exclude / 1=exclude
+USB_BLACKLIST_WWAN=1
+
+# Include listed devices into USB autosuspend even if already excluded
+# by the driver or WWAN blacklists above (separate with spaces).
+# Use lsusb to get the ids.
+#USB_WHITELIST="1111:2222 3333:4444"
+
+# Set to 1 to disable autosuspend before shutdown, 0 to do nothing
+# (workaround for USB devices that cause shutdown problems).
+#USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN=1
+
+# Restore radio device state (Bluetooth, WiFi, WWAN) from previous shutdown
+# on system startup: 0=disable, 1=enable.
+# Hint: the parameters DEVICES_TO_DISABLE/ENABLE_ON_STARTUP/SHUTDOWN below
+#   are ignored when this is enabled!
+RESTORE_DEVICE_STATE_ON_STARTUP=0
+
+# Radio devices to disable on startup: bluetooth, wifi, wwan.
+# Separate multiple devices with spaces.
+DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wifi wwan"
+
+# Radio devices to enable on startup: bluetooth, wifi, wwan.
+# Separate multiple devices with spaces.
+#DEVICES_TO_ENABLE_ON_STARTUP="wifi"
+
+# Radio devices to disable on shutdown: bluetooth, wifi, wwan
+# (workaround for devices that are blocking shutdown).
+#DEVICES_TO_DISABLE_ON_SHUTDOWN="bluetooth wifi wwan"
+
+# Radio devices to enable on shutdown: bluetooth, wifi, wwan
+# (to prevent other operating systems from missing radios).
+#DEVICES_TO_ENABLE_ON_SHUTDOWN="wwan"
+
+# Radio devices to enable on AC: bluetooth, wifi, wwan
+#DEVICES_TO_ENABLE_ON_AC="bluetooth wifi wwan"
+
+# Radio devices to disable on battery: bluetooth, wifi, wwan
+#DEVICES_TO_DISABLE_ON_BAT="bluetooth wifi wwan"
+
+# Radio devices to disable on battery when not in use (not connected):
+# bluetooth, wifi, wwan
+DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE="bluetooth wifi wwan"
+
+# Battery charge thresholds (ThinkPad only, tp-smapi or acpi-call kernel module
+# required). Charging starts when the remaining capacity falls below the
+# START_CHARGE_THRESH value and stops when exceeding the STOP_CHARGE_THRESH value.
+# Main / Internal battery (values in %)
+START_CHARGE_THRESH_BAT0=10
+STOP_CHARGE_THRESH_BAT0=95
+# Ultrabay / Slice / Replaceable battery (values in %)
+START_CHARGE_THRESH_BAT1=10
+STOP_CHARGE_THRESH_BAT1=95
+
+# ------------------------------------------------------------------------------
+# tlp-rdw - Parameters for the radio device wizard
+# Possible devices: bluetooth, wifi, wwan
+
+# Hints:
+# - Parameters are disabled by default, remove the leading # to enable them.
+# - Separate multiple radio devices with spaces.
+
+# Radio devices to disable on connect.
+#DEVICES_TO_DISABLE_ON_LAN_CONNECT="wifi wwan"
+#DEVICES_TO_DISABLE_ON_WIFI_CONNECT="wwan"
+#DEVICES_TO_DISABLE_ON_WWAN_CONNECT="wifi"
+
+# Radio devices to enable on disconnect.
+#DEVICES_TO_ENABLE_ON_LAN_DISCONNECT="wifi wwan"
+#DEVICES_TO_ENABLE_ON_WIFI_DISCONNECT=""
+#DEVICES_TO_ENABLE_ON_WWAN_DISCONNECT=""
+
+# Radio devices to enable/disable when docked.
+#DEVICES_TO_ENABLE_ON_DOCK=""
+#DEVICES_TO_DISABLE_ON_DOCK=""
+
+# Radio devices to enable/disable when undocked.
+#DEVICES_TO_ENABLE_ON_UNDOCK="wifi"
+#DEVICES_TO_DISABLE_ON_UNDOCK=""
diff --git a/ansible/files/system_new/minimal/___etc___profile b/ansible/files/system_new/minimal/___etc___profile
new file mode 100644 (file)
index 0000000..5884d7b
--- /dev/null
@@ -0,0 +1,35 @@
+# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
+# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
+
+if [ "`id -u`" -eq 0 ]; then
+  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+else
+  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
+fi
+export PATH
+
+if [ "${PS1-}" ]; then
+  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
+    # The file bash.bashrc already sets the default PS1.
+    # PS1='\h:\w\$ '
+    if [ -f /etc/bash.bashrc ]; then
+      . /etc/bash.bashrc
+    fi
+  else
+    if [ "`id -u`" -eq 0 ]; then
+      PS1='# '
+    else
+      PS1='$ '
+    fi
+  fi
+fi
+
+if [ -d /etc/profile.d ]; then
+  for i in /etc/profile.d/*.sh; do
+    if [ -r $i ]; then
+      . $i
+    fi
+  done
+  unset i
+fi
+export LC_ALL="en_US.UTF-8"
diff --git a/ansible/files/system_new/minimal/___etc___systemd___logind.conf b/ansible/files/system_new/minimal/___etc___systemd___logind.conf
new file mode 100644 (file)
index 0000000..7a9004a
--- /dev/null
@@ -0,0 +1,38 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as published by
+#  the Free Software Foundation; either version 2.1 of the License, or
+#  (at your option) any later version.
+#
+# Entries in this file show the compile time defaults.
+# You can change settings by editing this file.
+# Defaults can be restored by simply deleting this file.
+#
+# See logind.conf(5) for details.
+
+[Login]
+#NAutoVTs=6
+#ReserveVT=6
+#KillUserProcesses=no
+#KillOnlyUsers=
+#KillExcludeUsers=root
+#InhibitDelayMaxSec=5
+#HandlePowerKey=poweroff
+#HandleSuspendKey=suspend
+#HandleHibernateKey=hibernate
+#HandleLidSwitch=suspend
+#HandleLidSwitchDocked=ignore
+#PowerKeyIgnoreInhibited=no
+#SuspendKeyIgnoreInhibited=no
+#HibernateKeyIgnoreInhibited=no
+#LidSwitchIgnoreInhibited=yes
+#HoldoffTimeoutSec=30s
+#IdleAction=ignore
+#IdleActionSec=30min
+#RuntimeDirectorySize=10%
+#RemoveIPC=yes
+#InhibitorsMax=8192
+#SessionsMax=8192
+#UserTasksMax=33%
+HandleLidSwitch=hibernate
diff --git a/ansible/files/system_new/minimal/___etc___timezone b/ansible/files/system_new/minimal/___etc___timezone
new file mode 100644 (file)
index 0000000..94d5acc
--- /dev/null
@@ -0,0 +1 @@
+Europe/Berlin
diff --git a/ansible/run_root_new.sh b/ansible/run_root_new.sh
new file mode 100755 (executable)
index 0000000..46c370e
--- /dev/null
@@ -0,0 +1 @@
+ansible-playbook -i 'localhost,'  -e system_name=X200s -c local config.yml
diff --git a/ansible/run_user_new.sh b/ansible/run_user_new.sh
new file mode 100755 (executable)
index 0000000..abffede
--- /dev/null
@@ -0,0 +1 @@
+ansible-playbook -i 'localhost,'  -e system_name=X200s -c local user.yml
diff --git a/ansible/user_new.yml b/ansible/user_new.yml
new file mode 100644 (file)
index 0000000..d6f46af
--- /dev/null
@@ -0,0 +1,13 @@
+- hosts: all
+  tasks:
+
+  - name: ensure ~/.vimbackups directory
+    file: state=directory dest=~/.vimbackups
+  - name: Ensure dotfile symlinks
+    file: state=link force=yes src={{item}} dest=~/.{{item|basename}}
+    with_fileglob:
+    - ~/config/dotfiles/minimal/*
+    - ~/config/dotfiles/user/thinkpad/minimal/*
+    - ~/config/dotfiles/user/thinkpad/{{ system_name }}/*
+  - name: ensure ~/downloads directory
+    file: state=directory dest=~/downloads