enable setting of most raspi-config options

master
Glenn K. Lockwood 6 years ago
parent 8a50e960cc
commit 815eaf9384
  1. 7
      roles/common/tasks/linux-facts.yml
  2. 31
      roles/common/tasks/main.yml
  3. 70
      roles/common/tasks/raspi-config.yml
  4. 3
      roles/common/vars/main.yml

@ -11,8 +11,15 @@
changed_when: False changed_when: False
check_mode: no check_mode: no
- name: get x keyboard layout
shell: "localectl | awk '/X11 Layout/ {print $3}'"
register: linux_xkblayout
changed_when: False
check_mode: no
- name: set linux-config facts - name: set linux-config facts
set_fact: set_fact:
linux_tz: "{{ linux_tz.stdout }}" linux_tz: "{{ linux_tz.stdout }}"
linux_locale: "{{ linux_locale.stdout }}" linux_locale: "{{ linux_locale.stdout }}"
linux_xkblayout: "{{ linux_xkblayout }}"
check_mode: no check_mode: no

@ -17,17 +17,22 @@
tags: tags:
- raspi - raspi
- name: store system configuration
set_fact:
myconfig: "{{ macaddrs[my_macaddr] }}"
tags:
- raspi
- name: set hostname - name: set hostname
shell: "raspi-config nonint do_hostname {{ macaddrs[my_macaddr].hostname }}" shell: "raspi-config nonint do_hostname {{ myconfig.hostname }}"
when: raspi_hostname != macaddrs[my_macaddr].hostname when: raspi_hostname != myconfig.hostname
- name: update /etc/hosts with new hostname - name: update /etc/hosts with new hostname
lineinfile: lineinfile:
dest=/etc/hosts dest=/etc/hosts
regexp="^{{ ansible_default_ipv4.address }}" regexp="^{{ ansible_default_ipv4.address }}"
line="{{ ansible_default_ipv4.address }}{{'\t'}}{{ macaddrs[my_macaddr].hostname }}.{{ macaddrs[my_macaddr].domain }}{{'\t'}}{{ macaddrs[my_macaddr].hostname }}" line="{{ ansible_default_ipv4.address }}{{'\t'}}{{ myconfig.hostname }}.{{ myconfig.domain }}{{'\t'}}{{ myconfig.hostname }}"
state=present state=present
when: my_macaddr in macaddrs
- name: get rid of default 127.0.1.1 binding - name: get rid of default 127.0.1.1 binding
lineinfile: lineinfile:
@ -37,13 +42,23 @@
# Set timezone # Set timezone
- name: set timezone - name: set timezone
shell: "timedatectl set-timezone {{ macaddrs[my_macaddr].timezone }}" command: "timedatectl set-timezone {{ myconfig.timezone }}"
when: linux_tz != macaddrs[my_macaddr].timezone when: linux_tz != myconfig.timezone
# Set locale # Set locale
- name: set locale - name: set locale
shell: "raspi-config nonint do_change_locale {{ macaddrs[my_macaddr].locale }}" command: "raspi-config nonint do_change_locale {{ myconfig.locale }}"
when: linux_locale != macaddrs[my_macaddr].locale when: "'locale' in myconfig and linux_locale != myconfig.locale"
# Set X keyboard layout
- name: set X11 keyboard layout
command: "raspi-config nonint do_configure_keyboard {{ myconfig.xkblayout }}"
when: "'xkblayout' in myconfig and myconfig.xkblayout != linux_xkblayout"
# Set wifi country
- name: set wifi country
command: "raspiconfig nonint do_wifi_country {{ myconfig.wifi_country }}"
when: "'wifi_country' in myconfig and myconfig.wifi_country != raspi_wifi_country"
# Enable sshd # Enable sshd
- name: disable ssh login for user pi - name: disable ssh login for user pi

@ -3,37 +3,91 @@
# Handle boot and autologin settings # Handle boot and autologin settings
- name: enable cli only - name: enable cli only
command: "raspi-config nonint do_boot_behaviour B1" command: "raspi-config nonint do_boot_behaviour B1"
when: not macaddrs[my_macaddr].enable_gui and not macaddrs[my_macaddr].enable_autologin and (raspi_gui_enabled or raspi_autologin_enabled) when: not myconfig.enable_gui and not myconfig.enable_autologin and (raspi_gui_enabled or raspi_autologin_enabled)
tags: tags:
- raspi - raspi
- name: enable cli with autologin - name: enable cli with autologin
command: "raspi-config nonint do_boot_behaviour B2" command: "raspi-config nonint do_boot_behaviour B2"
when: not macaddrs[my_macaddr].enable_gui and macaddrs[my_macaddr].enable_autologin and (raspi_gui_enabled or not raspi_autologin_enabled) when: not myconfig.enable_gui and myconfig.enable_autologin and (raspi_gui_enabled or not raspi_autologin_enabled)
tags: tags:
- raspi - raspi
- name: enable desktop gui - name: enable desktop gui
command: "raspi-config nonint do_boot_behaviour B3" command: "raspi-config nonint do_boot_behaviour B3"
when: macaddrs[my_macaddr].enable_gui and not macaddrs[my_macaddr].enable_autologin and (not raspi_gui_enabled or raspi_autologin_enabled) when: myconfig.enable_gui and not myconfig.enable_autologin and (not raspi_gui_enabled or raspi_autologin_enabled)
tags: tags:
- raspi - raspi
- name: enable desktop gui with autologin - name: enable desktop gui with autologin
command: "raspi-config nonint do_boot_behaviour B4" command: "raspi-config nonint do_boot_behaviour B4"
when: macaddrs[my_macaddr].enable_gui and macaddrs[my_macaddr].enable_autologin and (not raspi_gui_enabled or raspi_autologin_enabled) when: myconfig.enable_gui and myconfig.enable_autologin and (not raspi_gui_enabled or raspi_autologin_enabled)
tags: tags:
- raspi - raspi
- name: set bootwait option - name: set bootwait option
command: "raspi-config nonint do_boot_wait {{ 1 if not macaddrs[my_macaddr].enable_bootwait else 0 }}" command: "raspi-config nonint do_boot_wait {{ 0 if myconfig.enable_bootwait else 1 }}"
when: "'enable_bootwait' in macaddrs[my_macaddr] and macaddrs[my_macaddr].enable_bootwait != raspi_bootwait_enabled" when: "'enable_bootwait' in myconfig and myconfig.enable_bootwait != raspi_bootwait_enabled"
tags: tags:
- raspi - raspi
- name: set boot splash option - name: set boot splash option
command: "raspi-config nonint do_boot_splash {{ 1 if not macaddrs[my_macaddr].enable_bootsplash else 0 }}" command: "raspi-config nonint do_boot_splash {{ 0 if myconfig.enable_bootsplash else 1 }}"
when: "'enable_bootsplash' in macaddrs[my_macaddr] and macaddrs[my_macaddr].enable_bootsplash != raspi_bootsplash_enabled" when: "'enable_bootsplash' in myconfig and myconfig.enable_bootsplash != raspi_bootsplash_enabled"
tags:
- raspi
- name: enable/disable camera
command: "raspi-config nonint do_camera {{ 0 if myconfig.enable_camera else 1 }}"
when: "'enable_camera' in myconfig and myconfig.enable_camera != raspi_camera_enabled"
tags:
- raspi
- name: enable/disable VNC server
command: "raspi-config nonint do_vnc {{ 0 if myconfig.enable_vnc else 1 }}"
when: "'enable_vnc' in myconfig and myconfig.enable_vnc != raspi_vnc_enabled"
tags:
- raspi
- name: enable/disable SPI
command: "raspi-config nonint do_spi {{ 0 if myconfig.enable_spi else 1 }}"
when: "'enable_spi' in myconfig and myconfig.enable_spi != raspi_spi_enabled"
tags:
- raspi
- name: enable/disable I2C
command: "raspi-config nonint do_i2c {{ 0 if myconfig.enable_i2c else 1 }}"
when: "'enable_i2c' in myconfig and myconfig.enable_i2c != raspi_i2c_enabled"
tags:
- raspi
- name: enable/disable serial
command: "raspi-config nonint do_serial {{ 0 if myconfig.enable_serial else 1 }}"
when: "'enable_serial' in myconfig and myconfig.enable_serial != raspi_serial_enabled"
tags:
- raspi
- name: enable/disable hardware serial
command: "raspi-config nonint do_serial_hw {{ 0 if myconfig.enable_serial_hw else 1 }}"
when: "'enable_serial_hw' in myconfig and myconfig.enable_serial_hw != raspi_serial_hw_enabled"
tags:
- raspi
- name: enable/disable onewire
command: "raspi-config nonint do_onewire {{ 0 if myconfig.enable_onewire else 1 }}"
when: "'enable_onewire' in myconfig and myconfig.enable_onewire != raspi_onewire_enabled"
tags:
- raspi
- name: enable/disable remote GPIO
command: "raspi-config nonint do_rgpio {{ 0 if myconfig.enable_rgpio else 1 }}"
when: "'enable_rgpio' in myconfig and myconfig.enable_rgpio != raspi_rgpio_enabled"
tags:
- raspi
- name: enable/disable HDMI overscan
command: "raspi-config nonint do_overscan {{ 0 if myconfig.enable_overscan else 1 }}"
when: "'enable_overscan' in myconfig and myconfig.enable_overscan != raspi_overscan_enabled"
tags: tags:
- raspi - raspi

@ -5,6 +5,8 @@ macaddrs:
domain: "local" domain: "local"
locale: "en_US.UTF-8" locale: "en_US.UTF-8"
timezone: "America/Los_Angeles" timezone: "America/Los_Angeles"
xkblayout: "us"
wifi_country: "US"
enable_gui: True enable_gui: True
enable_autologin: False enable_autologin: False
enable_bootwait: False enable_bootwait: False
@ -22,6 +24,7 @@ macaddrs:
domain: "local" domain: "local"
locale: "en_US.UTF-8" locale: "en_US.UTF-8"
timezone: "America/Los_Angeles" timezone: "America/Los_Angeles"
xkblayout: "us"
enable_gui: False enable_gui: False
enable_autologin: False enable_autologin: False
enable_bootwait: True enable_bootwait: True

Loading…
Cancel
Save