Ansible playbook for configuring a fresh install of Raspbian
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
rpi-ansible/roles/common/tasks/main.yml

57 lines
1.6 KiB

---
# Gather facts specific to the Raspberry Pi platform
- include: raspi-facts.yml
- include: linux-facts.yml
# Basic hostname setup
- name: Get MAC address
debug: msg="{{ hostvars[inventory_hostname].ansible_default_ipv4.macaddress }}"
- name: store MAC address
set_fact:
my_macaddr: "{{ hostvars[inventory_hostname].ansible_default_ipv4.macaddress }}"
- name: set hostname
shell: "raspi-config nonint do_hostname {{ macaddrs[my_macaddr].hostname }}"
when: raspi_hostname != macaddrs[my_macaddr].hostname
- name: update /etc/hosts with new hostname
lineinfile:
dest=/etc/hosts
regexp="^{{ ansible_default_ipv4.address }}"
line="{{ ansible_default_ipv4.address }}{{'\t'}}{{ macaddrs[my_macaddr].hostname }}.{{ macaddrs[my_macaddr].domain }}{{'\t'}}{{ macaddrs[my_macaddr].hostname }}"
state=present
when: my_macaddr in macaddrs
- name: get rid of default 127.0.1.1 binding
lineinfile:
dest=/etc/hosts
regexp="^127.0.1.1"
state=absent
# Set timezone
- name: set timezone
shell: "timedatectl set-timezone {{ macaddrs[my_macaddr].timezone }}"
when: linux_tz != macaddrs[my_macaddr].timezone
# Set locale
- name: set locale
shell: "raspi-config nonint do_change_locale {{ macaddrs[my_macaddr].locale }}"
when: raspi_locale != macaddrs[my_macaddr].locale
# Enable sshd
- name: forbid login via 'pi' user via ssh
lineinfile:
dest=/etc/ssh/sshd_config
line="DenyUsers pi"
state=present
- name: enable SSH
shell: "raspi-config nonint do_ssh 0"
when: raspi_ssh_disabled != '0'
# Other tasks
- include: software.yml
- include: users.yml
- include: hardware.yml