From 8b5cf3f3a0d58227c220d93a588359fa8ff2b7d1 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Sun, 10 Sep 2017 11:26:45 +0200 Subject: [PATCH 1/1] Add experimental new ansible config tree. --- ansible/config.yml | 2 +- ansible/config_new.yml | 119 ++++++++ .../files/apt-mark_new/W530/3d_acceleration | 5 + ansible/files/apt-mark_new/W530/hotkeys | 1 + ansible/files/apt-mark_new/W530/minimal_x | 4 + ansible/files/apt-mark_new/W530/multimedia | 6 + ansible/files/apt-mark_new/W530/wifi | 4 + ansible/files/apt-mark_new/X200s/minimal_x | 3 + ansible/files/apt-mark_new/X200s/multimedia | 4 + ansible/files/apt-mark_new/X200s/wifi | 3 + .../files/apt-mark_new/minimal/basic_x_tools | 7 + .../apt-mark_new/minimal/browser_environment | 4 + ansible/files/apt-mark_new/minimal/console | 2 + ansible/files/apt-mark_new/minimal/core | 55 ++++ ansible/files/apt-mark_new/minimal/man | 2 + .../minimal/minimal_ansible_environment | 3 + .../apt-mark_new/minimal/power_management | 2 + .../files/apt-mark_new/minimal/various_useful | 5 + ansible/files/dirs_new | 1 + .../___etc___X11___xorg.conf.forced_nvidia | 34 +++ .../files/system_new/W530/___etc___hostname | 1 + ansible/files/system_new/W530/___etc___hosts | 7 + .../___etc___wicd___manager-settings.conf | 24 ++ .../files/system_new/X200s/___etc___hostname | 1 + ansible/files/system_new/X200s/___etc___hosts | 7 + .../___etc___wicd___manager-settings.conf | 24 ++ .../___etc___apt___apt.conf.d___99mindeps | 4 + .../minimal/___etc___apt___sources.list | 4 + .../system_new/minimal/___etc___default___tlp | 278 ++++++++++++++++++ .../files/system_new/minimal/___etc___profile | 35 +++ .../minimal/___etc___systemd___logind.conf | 38 +++ .../system_new/minimal/___etc___timezone | 1 + ansible/run_root_new.sh | 1 + ansible/run_user_new.sh | 1 + ansible/user_new.yml | 13 + 35 files changed, 704 insertions(+), 1 deletion(-) create mode 100644 ansible/config_new.yml create mode 100644 ansible/files/apt-mark_new/W530/3d_acceleration create mode 100644 ansible/files/apt-mark_new/W530/hotkeys create mode 100644 ansible/files/apt-mark_new/W530/minimal_x create mode 100644 ansible/files/apt-mark_new/W530/multimedia create mode 100644 ansible/files/apt-mark_new/W530/wifi create mode 100644 ansible/files/apt-mark_new/X200s/minimal_x create mode 100644 ansible/files/apt-mark_new/X200s/multimedia create mode 100644 ansible/files/apt-mark_new/X200s/wifi create mode 100644 ansible/files/apt-mark_new/minimal/basic_x_tools create mode 100644 ansible/files/apt-mark_new/minimal/browser_environment create mode 100644 ansible/files/apt-mark_new/minimal/console create mode 100644 ansible/files/apt-mark_new/minimal/core create mode 100644 ansible/files/apt-mark_new/minimal/man create mode 100644 ansible/files/apt-mark_new/minimal/minimal_ansible_environment create mode 100644 ansible/files/apt-mark_new/minimal/power_management create mode 100644 ansible/files/apt-mark_new/minimal/various_useful create mode 100644 ansible/files/dirs_new create mode 100644 ansible/files/system_new/W530/___etc___X11___xorg.conf.forced_nvidia create mode 100644 ansible/files/system_new/W530/___etc___hostname create mode 100644 ansible/files/system_new/W530/___etc___hosts create mode 100644 ansible/files/system_new/W530/___etc___wicd___manager-settings.conf create mode 100644 ansible/files/system_new/X200s/___etc___hostname create mode 100644 ansible/files/system_new/X200s/___etc___hosts create mode 100644 ansible/files/system_new/X200s/___etc___wicd___manager-settings.conf create mode 100644 ansible/files/system_new/minimal/___etc___apt___apt.conf.d___99mindeps create mode 100644 ansible/files/system_new/minimal/___etc___apt___sources.list create mode 100644 ansible/files/system_new/minimal/___etc___default___tlp create mode 100644 ansible/files/system_new/minimal/___etc___profile create mode 100644 ansible/files/system_new/minimal/___etc___systemd___logind.conf create mode 100644 ansible/files/system_new/minimal/___etc___timezone create mode 100755 ansible/run_root_new.sh create mode 100755 ansible/run_user_new.sh create mode 100644 ansible/user_new.yml diff --git a/ansible/config.yml b/ansible/config.yml index 3386c91..4b01cc7 100644 --- a/ansible/config.yml +++ b/ansible/config.yml @@ -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 index 0000000..3d3a06d --- /dev/null +++ b/ansible/config_new.yml @@ -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 index 0000000..7d0ba5b --- /dev/null +++ b/ansible/files/apt-mark_new/W530/3d_acceleration @@ -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 index 0000000..f11bdfa --- /dev/null +++ b/ansible/files/apt-mark_new/W530/hotkeys @@ -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 index 0000000..f785794 --- /dev/null +++ b/ansible/files/apt-mark_new/W530/minimal_x @@ -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 index 0000000..0b6d9ef --- /dev/null +++ b/ansible/files/apt-mark_new/W530/multimedia @@ -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 index 0000000..0d9d93c --- /dev/null +++ b/ansible/files/apt-mark_new/W530/wifi @@ -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 index 0000000..04cbc9c --- /dev/null +++ b/ansible/files/apt-mark_new/X200s/minimal_x @@ -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 index 0000000..dbcf4ee --- /dev/null +++ b/ansible/files/apt-mark_new/X200s/multimedia @@ -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 index 0000000..55d86fe --- /dev/null +++ b/ansible/files/apt-mark_new/X200s/wifi @@ -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 index 0000000..9c68622 --- /dev/null +++ b/ansible/files/apt-mark_new/minimal/basic_x_tools @@ -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 index 0000000..cc9575c --- /dev/null +++ b/ansible/files/apt-mark_new/minimal/browser_environment @@ -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 index 0000000..01bcbf8 --- /dev/null +++ b/ansible/files/apt-mark_new/minimal/console @@ -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 index 0000000..43afba8 --- /dev/null +++ b/ansible/files/apt-mark_new/minimal/core @@ -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 index 0000000..f688e67 --- /dev/null +++ b/ansible/files/apt-mark_new/minimal/man @@ -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 index 0000000..f9f4097 --- /dev/null +++ b/ansible/files/apt-mark_new/minimal/minimal_ansible_environment @@ -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 index 0000000..3dba602 --- /dev/null +++ b/ansible/files/apt-mark_new/minimal/power_management @@ -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 index 0000000..e37a898 --- /dev/null +++ b/ansible/files/apt-mark_new/minimal/various_useful @@ -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 index 0000000..0739bb8 --- /dev/null +++ b/ansible/files/dirs_new @@ -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 index 0000000..e651031 --- /dev/null +++ b/ansible/files/system_new/W530/___etc___X11___xorg.conf.forced_nvidia @@ -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" +# () +# with the "AllowEmptyInitialConfigratuion" added as described by +# . + +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 index 0000000..4d385ae --- /dev/null +++ b/ansible/files/system_new/W530/___etc___hostname @@ -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 index 0000000..c6f72a5 --- /dev/null +++ b/ansible/files/system_new/W530/___etc___hosts @@ -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 index 0000000..d2ef3ee --- /dev/null +++ b/ansible/files/system_new/W530/___etc___wicd___manager-settings.conf @@ -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 index 0000000..d241415 --- /dev/null +++ b/ansible/files/system_new/X200s/___etc___hostname @@ -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 index 0000000..b275ecb --- /dev/null +++ b/ansible/files/system_new/X200s/___etc___hosts @@ -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 index 0000000..6d7bb2b --- /dev/null +++ b/ansible/files/system_new/X200s/___etc___wicd___manager-settings.conf @@ -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 index 0000000..4aaef79 --- /dev/null +++ b/ansible/files/system_new/minimal/___etc___apt___apt.conf.d___99mindeps @@ -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 index 0000000..e64d6ee --- /dev/null +++ b/ansible/files/system_new/minimal/___etc___apt___sources.list @@ -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 index 0000000..6db0f60 --- /dev/null +++ b/ansible/files/system_new/minimal/___etc___default___tlp @@ -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 index 0000000..5884d7b --- /dev/null +++ b/ansible/files/system_new/minimal/___etc___profile @@ -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 index 0000000..7a9004a --- /dev/null +++ b/ansible/files/system_new/minimal/___etc___systemd___logind.conf @@ -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 index 0000000..94d5acc --- /dev/null +++ b/ansible/files/system_new/minimal/___etc___timezone @@ -0,0 +1 @@ +Europe/Berlin diff --git a/ansible/run_root_new.sh b/ansible/run_root_new.sh new file mode 100755 index 0000000..46c370e --- /dev/null +++ b/ansible/run_root_new.sh @@ -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 index 0000000..abffede --- /dev/null +++ b/ansible/run_user_new.sh @@ -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 index 0000000..d6f46af --- /dev/null +++ b/ansible/user_new.yml @@ -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 -- 2.30.2