Last active
June 17, 2021 19:40
-
-
Save bitsandbooks/025b9dd3d12273cc7711b0925f96e0f1 to your computer and use it in GitHub Desktop.
Elk Lab Ansible
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- hosts: 127.0.0.1 | |
connection: local | |
tasks: | |
- name: ensure personalized dconf settings | |
dconf: | |
key: "{{ item.key }}" | |
value: "{{ item.value }}" | |
state: present | |
with_items: | |
- key: /org/gtk/settings/file-chooser/clock-format | |
value: ["12h"] | |
- key: /org/gnome/desktop/interface/clock-show-weekday | |
value: "true" | |
- key: /org/gnome/desktop/a11y/always-show-universal-access-status | |
value: "true" | |
- key: /org/gnome/mutter/center-new-windows | |
value: "true" | |
- key: /org/gnome/desktop/peripherals/touchpad/two-finger-scrolling-enabled | |
value: "true" | |
- key: /org/gnome/desktop/session/idle-delay | |
value: ['uint32 900'] | |
- key: /org/gnome/desktop/notifications/show-in-lock-screen | |
value: "false" | |
- key: /org/gnome/shell/enabled-extensions | |
value: ['drive-menu@gnome-shell-extensions.gcampax.github.com'] | |
- key: /org/gnome/shell/favorite-apps | |
value: ['org.gnome.Nautilus.desktop', 'org.gnome.Terminal.desktop', 'org.mozilla.Firefox.desktop', 'com.sublimetext.three.desktop', 'org.inkscape.Inkscape.desktop'] | |
- key: /org/gnome/desktop/screensaver/lock-delay | |
value: ['uint32 1800'] | |
- key: /org/gnome/software/first-run | |
value: "false" | |
- key: /org/gnome/software/show-nonfree-prompt | |
value: "false" | |
- key: /org/gnome/system/location/enabled | |
value: "true" | |
- key: /org/gnome/settings-daemon/peripherals/keyboard/numlock-state | |
value: ['on'] | |
- key: /org/gnome/control-center/last-panel | |
value: ['background'] | |
- name: set desktop background & colors | |
block: | |
- name: set desktop picture options | |
dconf: | |
key: /org/gnome/desktop/background/picture-options | |
value: "true" | |
- name: set desktop colors | |
dconf: | |
key: "{{ item }}" | |
value: ["#000000000000"] | |
with_items: | |
- /org/gnome/desktop/background/primary-color | |
- /org/gnome/desktop/background/secondary-color | |
- name: set desktop background | |
dconf: | |
key: /org/gnome/desktop/background/picture-uri | |
value: ["{{ item }}"] | |
with_first_found: | |
- files: | |
- fedora-printed.jpg | |
paths: | |
- /usr/share/backgrounds/fedora-workstation/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- hosts: 127.0.0.1 | |
connection: local | |
become: yes | |
vars: | |
class_user: | |
username: elklab | |
passwd: "{{ lookup('file', './el-password.txt') }}" | |
# generate password hash with `ansible localhost -i /dev/null -m debug -a "msg={{ 'mysecretpassword' | password_hash('sha512', 'mysecretsalt') }}"` | |
gecos: "Elk Lab Class" | |
groups_fedora: | |
- wheel | |
groups_ubuntu: | |
- dialout | |
- sudo | |
default_group: egvpl | |
packages_fedora: | |
- "@base-x" | |
- adobe-source-code-pro-fonts | |
- ansible | |
- cabextract | |
- chrome-gnome-shell | |
- chromium | |
- curl | |
- dconf-editor | |
- deltarpm | |
- detox # ? | |
- eog | |
- evince | |
- fedora-workstation-backgrounds | |
- file-roller | |
- file-roller-nautilus | |
- gcc | |
- gedit | |
- git | |
- gnome-backgrounds | |
- gnome-calculator | |
- gnome-characters | |
- gnome-color-manager | |
- gnome-disk-utility | |
- gnome-font-viewer | |
- gnome-logs | |
- gnome-maps | |
- gnome-screenshot | |
- gnome-shell | |
- gnome-shell-extension-drive-menu | |
- gnome-software | |
- gnome-terminal | |
- gnome-tweaks | |
- gnome-weather | |
- gnu-free-fonts-common | |
- gnu-free-mono-fonts | |
- gnu-free-sans-fonts | |
- gnu-free-serif-fonts | |
- inxi # ? | |
- htop | |
- kernel-devel | |
- make | |
- most # ? | |
- nano | |
- nautilus | |
- perl | |
- python3-devel | |
- samba-client | |
- trash-cli | |
- vim-minimal | |
- xdg-user-dirs | |
- xdg-user-dirs-gtk | |
packages_ubuntu: | |
- apt-transport-https | |
- build-essential | |
- cabextract | |
- chromium-browser | |
- curl | |
- dconf-editor | |
- flatpak | |
- firefox | |
- git | |
- gnome-software-plugin-flatpak | |
- gnome-tweaks | |
- python3 | |
- python3-pip | |
- software-properties-common | |
- vim-tiny | |
pip_packages: | |
- Pillow | |
- pip | |
- psutil | |
- PyYAML | |
tasks: | |
- name: ensure hostname is set | |
hostname: | |
name: "{{ ansible_distribution|lower }}-vm" | |
- name: ensure presence of {{ default_group }} group | |
group: | |
name: "{{ default_group }}" | |
state: present | |
- name: ensure presence of user {{ class_user.username }} | |
user: | |
name: "{{ class_user.username }}" | |
password: "{{ class_user.passwd }}" | |
comment: "{{ class_user.gecos }}" | |
group: "{{ default_group }}" | |
append: yes | |
- name: tasks for fedora | |
block: | |
- name: ensure presence of packages | |
package: | |
name: "{{ packages_fedora }}" | |
state: present | |
- name: add fedora flatpak remote | |
flatpak_remote: | |
name: fedora | |
state: present | |
flatpakrepo_url: "oci+https://registry.fedoraproject.org" | |
- name: install flatpaks from fedora | |
flatpak: | |
name: "{{ item }}" | |
remote: fedora | |
state: present | |
with_items: | |
- "org.mozilla.Firefox" | |
- name: ensure presence of other packages and repos | |
package: | |
name: "{{ item }}" | |
state: present | |
with_items: | |
- "https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-{{ ansible_distribution_major_version }}.noarch.rpm" | |
- "https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-{{ ansible_distribution_major_version }}.noarch.rpm" | |
- "https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm" | |
- name: install packages | |
package: | |
name: "{{ packages_fedora }}" | |
state: present | |
- name: ensure user is in appropriate groups | |
user: | |
name: "{{ class_user.username }}" | |
groups: "{{ class_user.groups_fedora }}" | |
append: yes | |
when: ansible_facts['distribution'] == 'Fedora' | |
- name: tasks for ubuntu | |
block: | |
- name: ensure user is in appropriate groups | |
user: | |
name: "{{ class_user.username }}" | |
groups: "{{ class_user.groups_ubuntu }}" | |
append: yes | |
- name: ensure presence of elklab-related packages | |
package: | |
name: "{{ packages_ubuntu }}" | |
state: present | |
when: ansible_facts['distribution'] == 'Ubuntu' | |
- name: ensure presence of flathub flatpak repository | |
flatpak_remote: | |
name: flathub | |
state: present | |
flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo | |
- name: ensure pip is symlink for pip3 | |
file: | |
src: /usr/bin/pip3 | |
dest: /usr/local/bin/pip | |
state: link | |
owner: root | |
group: root | |
- name: ensure presence of elklab-related pip packages | |
pip: | |
name: "{{ pip_packages }}" | |
state: latest | |
- name: get default runlevel | |
command: systemctl get-default | |
register: runlevel | |
changed_when: false | |
- name: set graphical runlevel | |
command: systemctl set-default graphical.target | |
when: runlevel.stdout != "graphical.target" | |
# - name: is graphical currently active | |
# command: systemctl is-active graphical.target | |
# register: graphical | |
# - name: Switch to graphical runlevel | |
# command: systemctl isolate graphical.target | |
# when: graphical.stdout != "active" | |
- name: ensure presence of flatpaks | |
flatpak: | |
name: "{{ item }}" | |
remote: flathub # unnecessary? | |
state: present | |
with_items: | |
- cc.arduino.arduinoide | |
- com.sublimetext.three | |
- org.blender.Blender | |
- org.gimp.GIMP | |
- org.inkscape.Inkscape | |
- org.videolan.VLC |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment