Archived
1
0
Fork 0

Switchung from puppet to ansible

This commit is contained in:
J. Elfring (x) 2020-12-24 01:52:20 +01:00
parent bdf372d2cc
commit 2bc8b3c3b3
31 changed files with 533 additions and 606 deletions

View file

@ -70,7 +70,7 @@ The diskdevice is /dev/sda.
- Install the base-system
#+BEGIN_SRC
$ pacstrap /mnt base base-devel dialog openssl-1.0 git intel-ucode \
wpa_supplicant puppet linux linux-firmware vi netctl
wpa_supplicant ansible linux linux-firmware vi netctl
#+END_SRC
- Generate fstab for the new system
#+BEGIN_SRC
@ -136,7 +136,7 @@ fbcon=rotate:1 rotates the display. This is ONLY NEEDED on device like GPD Pocke
$ cd dotfiles
$ ./Setup.sh
$ cd sysconfig_arch
$ puppet apply --modulepath ./modules cfg_base.pp
$ sudo ansible-playbook baseconfig.yaml
#+END_SRC
- Setup.sh can take options to replace some configfiles. Options are:
| Option | Description |
@ -174,10 +174,9 @@ fbcon=rotate:1 rotates the display. This is ONLY NEEDED on device like GPD Pocke
$ cd dotfiles
$ ./Setup.sh
$ cd sysconfig_arch
$ sudo puppet apply --modulepath ./modules cfg_[WANTED-CONFIGS].pp
$ sudo ansible-playbook workstation.yaml
#+END_SRC
- If there are special configfiles for Setup.sh, repeat with appropriate options. (See above)
- configs with cfg_zz need to be applied last as they overwrite previous settings
- At some point the Desktop will start. When this happens, just log on and continue inside a terminal
- Update the system
#+BEGIN_SRC

View file

@ -2,16 +2,15 @@
alwaysshowpkgorigin = no
develpkgsexpiration = 301
upgradesorting = versiondiff
showdownloadsize = no
ignoreoutofdateaurupgrades = no
[build]
keepbuilddir = no
keepdevbuilddir = yes
skipfailedbuild = no
alwaysusedynamicusers = no
noedit = no
donteditbydefault = yes
nodiff = yes
gitdiffargs = --ignore-space-change,--ignore-all-space
keepbuilddeps = no
[colors]
version = 10
@ -20,11 +19,30 @@ versiondiffnew = 9
[ui]
requireenterconfirm = no
diffpager = auto
printcommands = no
aursearchsorting = hottest
displaylastupdated = no
groupbyrepository = yes
reversesearchsorting = no
[misc]
sudoloopinterval = 1
pacmanpath = pacman
debug = no
privilegeescalationtool = sudo
[review]
noedit = no
donteditbydefault = yes
nodiff = yes
gitdiffargs = --ignore-space-change,--ignore-all-space
diffpager = auto
hidedifffiles = .SRCINFO
[network]
aururl = https://aur.archlinux.org
newsurl = https://www.archlinux.org/feeds/news/
socks5proxy =
aurhttpproxy =
aurhttpsproxy =

View file

@ -121,10 +121,10 @@ alias l1vim='vim -c "e ++enc=latin1"'
alias get_systemp="paste <(cat /sys/class/thermal/thermal_zone*/type) <(cat /sys/class/thermal/thermal_zone*/temp) <(ls -1 /sys/class/thermal/thermal_zone*/temp) | column -s $'\t' -t"
# Spezialitäten für Arch Linux
alias y_clean='yaourt -Rsn $(yaourt -Qqdt)'
alias y_update='yaourt -Syu --aur'
alias y_inst='yaourt -Sy'
alias y_rem='yaourt -Rsn'
alias y_clean='pikaur -Rsn $(yaourt -Qqdt)'
alias y_update='pikaur -Syu --aur'
alias y_inst='pikaur -Sy'
alias y_rem='pikaur -Rsn'
# Passwort erstellen
alias mkpasswd='openssl rand -base64 40 | cut -c1-40'

View file

@ -0,0 +1,125 @@
- name: "Base config for all arch hosts"
hosts: localhost
connection: local
tasks:
- name: "Install base packages"
package:
name: '{{ item }}'
state: present
update_cache: True
with_items:
- fortune-mod
- git
- intel-ucode
- make
- openssh
- rsync
- sudo
- vim
- name: "Console settings"
when: "'gpd' not in inventory_hostname"
copy:
dest: /etc/vconsole.conf
owner: root
group: root
mode: 0644
content: |
KEYMAP=de-latin1-nodeadkeys
- name: "Console settings (GPD Pocket 2)"
when: "'gpd' in inventory_hostname"
copy:
dest: /etc/vconsole.conf
owner: root
group: root
mode: 0644
content: |
KEYMAP=de-latin1-nodeadkeys
FONT=latarcyrheb-sun32
- name: "Localization: Set papersize"
copy:
dest: /etc/papersize
owner: root
group: root
mode: 0644
content: |
a4
- name: "Localization: Set timezone"
file:
dest: /etc/localtime
src: /usr/share/zoneinfo/Europe/Berlin
state: link
- name: "Localization: locale.conf"
copy:
dest: /etc/locale.conf"
owner: root
group: root
mode: 0644
content: |
##### THIS IS MANAGED BY ANSIBLE #####
LANG=de_DE.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_COLLATE=C
LC_CTYPE=de_DE.UTF-8
LC_NUMERIC=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
LC_MONETARY=de_DE.UTF-8
LC_PAPER=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_ADDRESS=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
- name: "Localization: locale.gen"
register: locale_gen
copy:
dest: /etc/locale.gen
owner: root
group: root
mode: 0644
content: |
##### THIS IS MANAGED BY ANSIBLE #####
de_DE.UTF-8 UTF-8
en_US.UTF-8 UTF-8
- name: "Localization: Regenerate locale"
command: "/usr/bin/locale-gen"
when: locale_gen.changed
- name: "Use systemd-timesyncd"
service:
name: systemd-timesyncd
state: started
enabled: yes
- name: "Sudo: config file"
copy:
dest: /etc/sudoers
src: ./lib/etc/sudoers
owner: root
group: root
mode: 0440
- name: "Sudo: Create groups"
group:
name: '{{ item }}'
state: present
system: true
with_items:
- wheel
- sudo
- name: "Pacman configuration"
copy:
dest: /etc/pacman.conf
src: ./lib/etc/pacman.conf
owner: root
group: root
mode: 0644

View file

@ -1,108 +0,0 @@
############################################################################
###
## Base Config for all systems
#
#
## Some Packages...
package {'fortune-mod': ensure => installed}
package {'git': ensure => installed}
package {'intel-ucode': ensure => installed}
package {'make': ensure => installed}
package {'openssh': ensure => installed}
package {'rsync': ensure => installed}
package {'sudo': ensure => installed}
package {'vim': ensure => installed}
## Some localization
file {'/etc/vconsole.conf':
ensure => file,
backup => false,
content => "KEYMAP=de-latin1-nodeadkeys\n",
owner => 'root',
group => 'root',
mode => '0644',
}
file {'/etc/papersize':
ensure => file,
backup => false,
content => "a4\n",
owner => 'root',
group => 'root',
mode => '0644',
}
file {'/etc/localtime':
ensure => link,
backup => false,
target => '/usr/share/zoneinfo/Europe/Berlin',
}
file {'/etc/locale.conf':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/base/etc/locale.conf",
}
file {'/etc/locale.gen':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/base/etc/locale.gen",
}
exec { '/usr/bin/locale-gen':
subscribe => [
File['/etc/locale.gen'],
],
refreshonly => true,
}
## We'll use Network time
service {'systemd-timesyncd':
ensure => 'running',
enable => true,
}
## Sudo...
file {'/etc/sudoers':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0440',
source => "puppet:///modules/base/etc/sudoers",
}
group { 'sudo':
ensure => present,
system => true,
}
group { 'autologin':
ensure => present,
system => true,
}
## Config for the packagemanagers
file {'/etc/pacman.conf':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/base/etc/pacman.conf",
}
file {'/etc/yaourtrc':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/base/etc/yaourtrc",
}

View file

@ -1,13 +0,0 @@
############################################################################
###
## Additional packages from AUR, this time puppet needs to be run
# as user with sudo privileges
#
#
package {'free42': ensure => installed}
package {'insync': ensure => installed}
package {'c-lolcat': ensure => installed}
package {'python-i3-py': ensure => installed}
package {'ttf-unifont': ensure => installed}
package {'ttf-symbola': ensure => installed}

View file

@ -1,21 +0,0 @@
############################################################################
###
## Additional config for Laptops
#
#
package {'tlp': ensure => installed}
service {'tlp':
ensure => 'running',
enable => true,
}
file {'/etc/default/tlp':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/desktop/etc/default/tlp",
}

View file

@ -1,245 +0,0 @@
############################################################################
###
## Additional config for Workstations
#
#
## Disable ctrl-alt-del
service {'ctrl-alt-del.target':
enable => 'mask',
}
## Lots of Packages...
package {'acpi': ensure => installed}
package {'alsa-utils': ensure => installed}
package {'alacritty': ensure => installed}
package {'arandr': ensure => installed}
package {'aspell': ensure => installed}
package {'aspell-de': ensure => installed}
package {'aspell-en': ensure => installed}
package {'autoconf': ensure => installed}
package {'automake': ensure => installed}
package {'bash': ensure => installed}
package {'bash-completion': ensure => installed}
package {'binutils': ensure => installed}
package {'bison': ensure => installed}
package {'blueman': ensure => installed}
package {'bluez-utils': ensure => installed}
package {'btrfs-progs': ensure => installed}
package {'bzip2': ensure => installed}
package {'cool-retro-term': ensure => installed}
package {'coreutils': ensure => installed}
package {'cryptsetup': ensure => installed}
package {'ctags': ensure => installed}
package {'curl': ensure => installed}
package {'device-mapper': ensure => installed}
package {'dhcpcd': ensure => installed}
package {'dialog': ensure => installed}
package {'diffutils': ensure => installed}
package {'dmenu': ensure => installed}
package {'dos2unix': ensure => installed}
package {'dosfstools': ensure => installed}
package {'dunst': ensure => installed}
package {'e2fsprogs': ensure => installed}
package {'emacs': ensure => installed}
package {'expac': ensure => installed}
package {'fakeroot': ensure => installed}
package {'feh': ensure => installed}
package {'file': ensure => installed}
package {'filesystem': ensure => installed}
package {'findutils': ensure => installed}
package {'firefox': ensure => installed}
package {'firefox-i18n-de': ensure => installed}
package {'flex': ensure => installed}
package {'gawk': ensure => installed}
package {'gcc': ensure => installed}
package {'gcc-libs': ensure => installed}
package {'gettext': ensure => installed}
package {'glibc': ensure => installed}
package {'gnu-netcat': ensure => installed}
package {'gnome-backgrounds': ensure => installed}
package {'grep': ensure => installed}
package {'groff': ensure => installed}
package {'gzip': ensure => installed}
package {'hdparm': ensure => installed}
package {'i3-wm': ensure => installed}
package {'i3lock': ensure => installed}
package {'i3status': ensure => installed}
package {'imagemagick': ensure => installed}
package {'inetutils': ensure => installed}
package {'iproute2': ensure => installed}
package {'iputils': ensure => installed}
package {'ispell': ensure => installed}
package {'iw': ensure => installed}
package {'jfsutils': ensure => installed}
package {'keepassxc': ensure => installed}
package {'less': ensure => installed}
package {'libreoffice-fresh': ensure => installed}
package {'libtool': ensure => installed}
package {'licenses': ensure => installed}
package {'lightdm': ensure => installed}
package {'lightdm-gtk-greeter': ensure => installed}
package {'lightdm-gtk-greeter-settings': ensure => installed}
package {'linux': ensure => installed}
package {'linux-headers': ensure => installed}
package {'lm_sensors': ensure => installed}
package {'logrotate': ensure => installed}
package {'lshw': ensure => installed}
package {'lvm2': ensure => installed}
package {'m4': ensure => installed}
package {'man-db': ensure => installed}
package {'man-pages': ensure => installed}
package {'mc': ensure => installed}
package {'mdadm': ensure => installed}
package {'mercurial': ensure => installed}
package {'mplayer': ensure => installed}
package {'nano': ensure => installed}
package {'network-manager-applet': ensure => installed}
package {'networkmanager': ensure => installed}
package {'nmap': ensure => installed}
package {'nmon': ensure => installed}
package {'nomacs': ensure => installed}
package {'p7zip': ensure => installed}
package {'pacman': ensure => installed}
package {'parcellite': ensure => installed}
package {'patch': ensure => installed}
package {'pciutils': ensure => installed}
package {'pcmanfm-gtk3': ensure => installed}
package {'perl': ensure => installed}
package {'perl-date-manip': ensure => installed}
package {'perl-finance-quote': ensure => installed}
package {'procps-ng': ensure => installed}
package {'psmisc': ensure => installed}
package {'qrencode': ensure => installed}
package {'rng-tools': ensure => installed}
package {'ruby': ensure => installed}
package {'rxvt-unicode': ensure => installed}
package {'screenfetch': ensure => installed}
package {'scrot': ensure => installed}
package {'seahorse': ensure => installed}
package {'sed': ensure => installed}
package {'shadow': ensure => installed}
package {'sharutils': ensure => installed}
package {'strace': ensure => installed}
package {'subversion': ensure => installed}
package {'sysfsutils': ensure => installed}
package {'systemd-sysvcompat': ensure => installed}
package {'tar': ensure => installed}
package {'tcl': ensure => installed}
package {'texinfo': ensure => installed}
package {'texlive-bibtexextra': ensure => installed}
package {'texlive-core': ensure => installed}
package {'texlive-fontsextra': ensure => installed}
package {'texlive-formatsextra': ensure => installed}
package {'texlive-games': ensure => installed}
package {'texlive-humanities': ensure => installed}
package {'texlive-latexextra': ensure => installed}
package {'texlive-music': ensure => installed}
package {'texlive-pictures': ensure => installed}
package {'texlive-pstricks': ensure => installed}
package {'texlive-publishers': ensure => installed}
package {'texlive-science': ensure => installed}
package {'tk': ensure => installed}
package {'tree': ensure => installed}
package {'ttf-inconsolata': ensure => installed}
package {'unzip': ensure => installed}
package {'usbutils': ensure => installed}
package {'util-linux': ensure => installed}
package {'w3m': ensure => installed}
package {'wget': ensure => installed}
package {'which': ensure => installed}
package {'wpa_supplicant': ensure => installed}
package {'wxmaxima': ensure => installed}
package {'xautolock': ensure => installed}
package {'xclip': ensure => installed}
package {'xdot': ensure => installed}
package {'xf86-input-synaptics': ensure => installed}
package {'xf86-video-intel': ensure => installed}
package {'xfsprogs': ensure => installed}
package {'xreader': ensure => installed}
package {'xorg-apps': ensure => installed}
package {'xorg-xclipboard': ensure => installed} # Important for Citrix
package {'xorg-server': ensure => installed}
package {'xterm': ensure => installed}
package {'zathura': ensure => installed}
package {'zathura-pdf-mupdf': ensure => installed}
## Audio-Zeugs
package {'pulseaudio': ensure => installed}
package {'pulseaudio-alsa': ensure => installed}
package {'pulseaudio-bluetooth': ensure => installed}
package {'pulsemixer': ensure => installed}
package {'pavucontrol': ensure => installed}
package {'pasystray': ensure => installed}
package {'paprefs': ensure => installed}
## Logon and Greeting
file {'/etc/systemd/logind.conf':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/desktop/etc/systemd/logind.conf",
}
file {'/etc/lightdm/lightdm-gtk-greeter.conf':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/desktop/etc/lightdm/lightdm-gtk-greeter.conf",
}
file {'/etc/lightdm/lightdm.conf':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/desktop/etc/lightdm/lightdm.conf",
}
file {'/etc/pam.d/login':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/desktop/etc/pam.d/login",
}
file {'/etc/X11/xorg.conf.d/00-keyboard.conf':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/desktop/etc/X11/xorg.conf.d/00-keyboard.conf",
}
file {'/etc/pam.d/passwd':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/desktop/etc/pam.d/passwd",
}
service {'lightdm.service':
ensure => 'running',
enable => true,
}
## Network Manager
service {'netctl.service':
ensure => 'stopped',
enable => false,
}
service {'NetworkManager.service':
ensure => 'running',
enable => true,
}

View file

@ -1,74 +0,0 @@
############################################################################
###
## Additional config GPD Pocket 2
# This MUST be run as the last manifest as it overwrites some
# standards
#
file {'/etc/vconsole.conf':
ensure => file,
backup => false,
content => "KEYMAP=de-latin1-nodeadkeys\nFONT=latarcyrheb-sun32\n",
owner => 'root',
group => 'root',
mode => '0644',
}
file {'/etc/X11/xorg.conf.d/00-keyboard.conf':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/gpdp2/etc/X11/xorg.conf.d/00-keyboard.conf",
}
file {'/etc/X11/xorg.conf.d/20-intel.conf':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/gpdp2/etc/X11/xorg.conf.d/20-intel.conf",
}
file {'/etc/X11/xorg.conf.d/30-display.conf':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/gpdp2/etc/X11/xorg.conf.d/30-display.conf",
}
file {'/etc/X11/xorg.conf.d/99-touchscreen.conf':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/gpdp2/etc/X11/xorg.conf.d/99-touchscreen.conf",
}
file {'/etc/X11/Xresources':
ensure => file,
backup => false,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/gpdp2/etc/X11/Xresources",
}
file {'/etc/modules-load.d/gpd-pocket-fan.conf':
ensure => file,
backup => false,
content => "gpd-pocket-fan",
owner => 'root',
group => 'root',
mode => '0644',
}
file {'/etc/modprobe.d/gpd-pocket-fan.conf':
ensure => file,
backup => false,
content => "options gpd-pocket-fan temp_limits=40000,40001,40002",
owner => 'root',
group => 'root',
mode => '0644',
}

View file

@ -1,37 +0,0 @@
#!/bin/bash
## Install yaourt
test $(whoami) = root && { echo "You cannot be root. However, you need root privileges granted by sudo."; exit 1; }
## Exit on error
set -e
## Install devel
sudo pacman -Sy --needed --noconfirm base-devel
olddir=$(pwd)
## Download, Compile and Install package-query
cd /tmp
curl -O https://aur.archlinux.org/cgit/aur.git/snapshot/package-query.tar.gz
tar -xvzf package-query.tar.gz
cd package-query
makepkg -si
cd /tmp
rm -rf package-query.tar.gz package-query
## Download, Compile and Install yaourt
cd /tmp
curl -O https://aur.archlinux.org/cgit/aur.git/snapshot/yaourt.tar.gz
tar -xvzf yaourt.tar.gz
cd yaourt
makepkg -si
cd /tmp
rm -rf yaourt.tar.gz yaourt
## Return to where we came from
cd $olddir

View file

@ -1,4 +1,4 @@
##### THIS IS MANAGED BY PUPPET #####
##### THIS IS MANAGED BY ANSIBLE #####
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"

View file

@ -1,3 +1,5 @@
##### THIS FILE IS MANAGED BY ANSIBLE #####
# ------------------------------------------------------------------------------
# tlp - Parameters for power saving
# See full explanation: https://linrunner.de/en/tlp/docs/tlp-configuration.html

View file

@ -1,4 +1,5 @@
##### THIS IS MANAGED BY PUPPET #####
##### THIS IS MANAGED BY ANSIBLE #####
[greeter]
indicators = ~host;~spacer;~clock;~spacer;~session;~spacer;~power
theme-name = Adwaita

View file

@ -1,4 +1,5 @@
##### THIS IS MANAGED BY PUPPET #####
##### THIS IS MANAGED BY ANSIBLE #####
##
# General configuration
#

View file

@ -1,4 +1,5 @@
##### THIS IS MANAGED BY PUPPET #####
##### THIS IS MANAGED BY ANSIBLE #####
#
# /etc/pacman.conf
#

View file

@ -1,5 +1,5 @@
#%PAM-1.0
##### THIS IS MANAGED BY PUPPET #####
##### THIS IS MANAGED BY ANSIBLE #####
auth required pam_securetty.so
auth requisite pam_nologin.so

View file

@ -1,5 +1,5 @@
#%PAM-1.0
##### THIS IS MANAGED BY PUPPET #####
##### THIS IS MANAGED BY ANSIBLE #####
#
#password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
#password required pam_unix.so sha512 shadow use_authtok

View file

@ -1,4 +1,5 @@
##### THIS IS MANAGED BY PUPPET #####
##### THIS IS MANAGED BY ANSIBLE #####
### sudoers file.
##
## This file MUST be edited with the 'visudo' command as root.

View file

@ -1,4 +1,5 @@
##### THIS IS MANAGED BY PUPPET #####
##### THIS IS MANAGED BY ANSIBLE #####
## This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it

View file

@ -0,0 +1,11 @@
#!/bin/bash
package=$1
cd /tmp
/usr/bin/curl --silent --remote-name https://aur.archlinux.org/cgit/aur.git/snapshot/$package.tar.gz
/usr/bin/tar --extract --gzip --file $package.tar.gz
cd $package
/usr/bin/makepkg --install --syncdeps --noconfirm
cd /tmp
/usr/bin/sudo /usr/bin/rm --recursive --force $package.tar.gz $package

View file

@ -1,14 +0,0 @@
##### THIS IS MANAGED BY PUPPET #####
LANG=de_DE.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_COLLATE=C
LC_CTYPE=de_DE.UTF-8
LC_NUMERIC=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
LC_MONETARY=de_DE.UTF-8
LC_PAPER=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_ADDRESS=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8

View file

@ -1,3 +0,0 @@
##### THIS IS MANAGED BY PUPPET #####
de_DE.UTF-8 UTF-8
en_US.UTF-8 UTF-8

View file

@ -1,70 +0,0 @@
##### THIS IS MANAGED BY PUPPET #####
## yaourtrc - Configuration for yaourt
#
# See yaourtrc(5) for more information
#
#
# General
#AUTOSAVEBACKUPFILE=0
#DEVEL=0
#DEVELSRCDIR=""
#FORCE=0
#NO_TESTDB=0
# Environment variables
#EDITOR="$EDITOR"
#TMPDIR="/tmp"
#VISUAL="$VISUAL"
# SUDO
#SUDONOVERIF=0 # Avoid multiple sudo checks when timestamp_timeout=0
#SUDOREDIRECT=1 # Define to 0 in case you use a fingerprint device
# ABS
#USE_GIT=0
# If the package "abs" is installed, those var are parsed from abs.conf
#REPOS=() # REPOS available at $SYNCSERVER
#SYNCSERVER=""
# AUR
#AURURL="https://aur.archlinux.org"
#AURCOMMENT=5
#AURDEVELONLY=0
#AURSEARCH=1
#AURSHOWDIFF=0
#AURUPGRADE=0
#AURVOTE=1
#AURUSEGIT=0
# Build
#EXPORT=0 # Export to 1: EXPORTDIR or PKGDEST
# 2: pacman cache (as root)
#EXPORTSRC=0 # Need EXPORT>0 to be used
#EXPORTDIR="" # If empty, use makepkg's configuration (see makepkg.conf)
# Prompt
NOCONFIRM=0
UP_NOCONFIRM=0 # No prompt while build upgrades (including -Sbu)
BUILD_NOCONFIRM=1 # Only prompt for editing files
PU_NOCONFIRM=1 # Add --noconfirm to $PACMAN -U
EDITFILES=0
NOENTER=0
# Output
#USECOLOR=1
#USEPAGER=0
#DETAILUPGRADE=1
SHOWORPHANS=1
#TERMINALTITLE=1
# Command
#PACMAN="pacman"
#MAKEPKG="makepkg"
#DIFFEDITCMD="vimdiff"
# pacdiffviewer
#P_LOCATE=0 # Use locate instead of find
#P_SEARCHDIR=(/etc/ /boot/)
#P_SAVEDIR='/var/lib/yaourt/backupfiles'

View file

@ -0,0 +1,298 @@
- name: "Configuration for all workstations"
hosts: localhost
connection: local
tasks:
- name: "Install workstation packages"
package:
name: '{{ item }}'
state: present
update_cache: True
with_items:
- acpi
- alacritty
- arandr
- aspell
- aspell-de
- aspell-en
- bash
- bash-completion
- binutils
- blueman
- bluez-utils
- btrfs-progs
- coreutils
- cryptsetup
- curl
- device-mapper
- dialog
- diffutils
- dmenu
- dos2unix
- dosfstools
- dunst
- e2fsprogs
- emacs
- feh
- file
- filesystem
- findutils
- firefox
- firefox-i18n-de
- gnu-netcat
- grep
- gzip
- i3-wm
- i3lock
- i3status
- imagemagick
- inetutils
- ispell
- keepassxc
- less
- libreoffice-fresh
- licenses
- lightdm
- lightdm-gtk-greeter
- lightdm-gtk-greeter-settings
- linux
- linux-headers
- lm_sensors
- lshw
- lvm2
- man-db
- man-pages
- mc
- mercurial
- mplayer
- nano
- network-manager-applet
- networkmanager
- nmap
- nmon
- nomacs
- p7zip
- parcellite
- pcmanfm-gtk3
- perl
- perl-date-manip
- perl-finance-quote
- qrencode
- screenfetch
- scrot
- sed
- strace
- subversion
- texinfo
- texlive-bibtexextra
- texlive-core
- texlive-fontsextra
- texlive-formatsextra
- texlive-games
- texlive-humanities
- texlive-latexextra
- texlive-music
- texlive-pictures
- texlive-pstricks
- texlive-publishers
- texlive-science
- tree
- ttf-inconsolata
- unzip
- usbutils
- w3m
- wget
- wpa_supplicant
- wxmaxima
- xautolock
- xclip
- xdot
- xf86-input-synaptics
- xorg-apps
- xorg-xclipboard
- xorg-server
- xterm
- zathura
- zathura-pdf-mupdf
- name: "Install Audio System"
package:
name: '{{ item }}'
state: present
update_cache: False
with_items:
- alsa-utils
- pulseaudio
- pulseaudio-alsa
- pulseaudio-bluetooth
- pulsemixer
- pavucontrol
- pasystray
- paprefs
- name: "Systemd: Disable reboot on ctrl+alt+del"
systemd:
name: ctrl-alt-del.target
masked: yes
- name: "Systemd: logind.conf"
copy:
dest: /etc/systemd/logind.conf
src: ./lib/etc/systemd/logind.conf
owner: root
group: root
mode: 0644
- name: "Lightdm: greeter config"
copy:
dest: /etc/lightdm/lightdm-gtk-greeter.conf
src: ./lib/etc/lightdm/lightdm-gtk-greeter.conf
owner: root
group: root
mode: 0644
- name: "Lightdm: config"
copy:
dest: /etc/lightdm/lightdm.conf
src: ./lib/etc/lightdm/lightdm.conf
owner: root
group: root
mode: 0644
- name: "Pam: Login"
copy:
dest: /etc/pam.d/login
src: ./lib/etc/pam.d/login
owner: root
group: root
mode: 0644
- name: "Pam: Passwd"
copy:
dest: /etc/pam.d/passwd
src: ./lib/etc/pam.d/passwd
owner: root
group: root
mode: 0644
- name: "Service: No netctl"
service:
name: netctl.service
state: stopped
enabled: no
- name: "Service: NetworkManager"
service:
name: NetworkManager.service
state: started
enabled: yes
- name: "Service: lightdm"
service:
name: lightdm.service
state: started
enabled: yes
## X11
- name: "X11: Keyboard"
when: "'gpd' not in inventory_hostname"
copy:
dest: /etc/X11/xorg.conf.d/00-keyboard.conf
src: ./lib/etc/X11/xorg.conf.d/00-keyboard.conf
owner: root
group: root
mode: 0644
- name: "X11: Keyboard (GPD Pocket 2)"
when: "'gpd' in inventory_hostname"
copy:
dest: /etc/X11/xorg.conf.d/00-keyboard.conf
src: ./lib/etc/X11/xorg.conf.d/00-keyboard.conf.gpdp2
owner: root
group: root
mode: 0644
- name: "X11: Intel Graphics (GPD Pocket 2)"
when: "'gpd' in inventory_hostname"
copy:
dest: /etc/X11/xorg.conf.d/20-intel.conf
src: ./lib/etc/X11/xorg.conf.d/20-intel.conf
owner: root
group: root
mode: 0644
- name: "X11: Monitor (GPD Pocket 2)"
when: "'gpd' in inventory_hostname"
copy:
dest: /etc/X11/xorg.conf.d/30-display.conf
src: ./lib/etc/X11/xorg.conf.d/30-display.conf
owner: root
group: root
mode: 0644
- name: "X11: Touchscreen (GPD Pocket 2)"
when: "'gpd' in inventory_hostname"
copy:
dest: /etc/X11/xorg.conf.d/99-touchscreen.conf
src: ./lib/etc/X11/xorg.conf.d/99-touchscreen.conf
owner: root
group: root
mode: 0644
- name: "X11: Xresources (GPD Pocket 2)"
when: "'gpd' in inventory_hostname"
copy:
dest: /etc/X11/Xresources
src: ./lib/etc/X11/resources
owner: root
group: root
mode: 0644
## Notbook Specials
- name: "Install Notebook packages"
when: ansible_facts['form_factor'] == "Notebook"
package:
name: '{{ item }}'
state: present
update_cache: True
with_items:
- tlp
- name: "TLP: config"
when: ansible_facts['form_factor'] == "Notebook"
copy:
dest: /etc/default/tlp
src: ./lib/etc/default/tlp
owner: root
group: root
mode: 0644
- name: "TLP: Service"
when: ansible_facts['form_factor'] == "Notebook"
service:
name: tlp
state: started
enabled: yes
## GPD Pocket Specials
- name: "GPD fan module"
when: "'gpd' in inventory_hostname"
copy:
dest: /etc/modules-load.d/gpd-pocket-fan.conf
owner: root
group: root
mode: 0644
content: |
gpd-pocket-fan
- name: "GPD fan module config"
when: "'gpd' in inventory_hostname"
copy:
dest: /etc/modprobe.d/gpd-pocket-fan.conf
owner: root
group: root
mode: 0644
content: |
options gpd-pocket-fan temp_limits=40000,40001,40002

View file

@ -0,0 +1,54 @@
- name: "Install AUR helper and packages"
hosts: localhost
connection: local
tasks:
- name: Create build user
user:
name: aur_builder
group: wheel
create_home: no
home: /tmp
- name: Install build tools
package:
name: '{{ item }}'
state: present
update_cache: True
with_items:
- base-devel
- name: "Gather package facts"
package_facts:
manager: "auto"
- name: Install PIKAUR
when: "'pikaur' not in ansible_facts['packages']"
become: yes
become_user: aur_builder
script: ./lib/installFromAur.sh pikaur
- name: Install ansible-aur-git
when: "'ansible-aur-git' not in ansible_facts['packages']"
become: yes
become_user: aur_builder
script: ./lib/installFromAur.sh ansible-aur-git
- name: Install AUR packages
become: yes
become_user: aur_builder
aur:
name: '{{ item }}'
with_items:
- free42
- insync
- c-lolcat
- python-i3-py
- ttf-unifont
- ttf-symbola