unify local and remote mode of operation

This commit is contained in:
Glenn K. Lockwood
2020-07-27 20:43:34 -07:00
parent 621dd3feb4
commit 36a0a9996d
8 changed files with 143 additions and 106 deletions
+27 -11
View File
@@ -1,22 +1,31 @@
---
# 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_eth0.macaddress }}"
# Self identify and load config - this allows the playbook to run on either
# localhost or a remote host
- name: store MAC address for eth0
set_fact:
my_macaddr: "{{ hostvars[inventory_hostname].ansible_eth0.macaddress }}"
when: inventory_hostname == 'localhost'
tags:
- raspi
- sw
- sshd
- motd
- name: store MAC address
- name: self-identify based on mac address (local mode)
set_fact:
my_macaddr: "{{ hostvars[inventory_hostname].ansible_eth0.macaddress }}"
myhostname: "{{ macaddrs[my_macaddr] }}"
when: inventory_hostname_short == 'localhost'
tags:
- raspi
- sw
- sshd
- motd
- name: self-identify based on mac address (remote mode)
set_fact:
myhostname: "{{ inventory_hostname_short }}"
when: "inventory_hostname_short != 'localhost'"
tags:
- raspi
- sw
@@ -25,13 +34,20 @@
- name: store system configuration
set_fact:
myconfig: "{{ macaddrs[my_macaddr] }}"
myconfig: "{{ hostvars[myhostname] }}"
tags:
- raspi
- sw
- sshd
- motd
- debug:
var: myconfig
# Gather facts specific to the Raspberry Pi platform
- include: raspi-facts.yml
- include: linux-facts.yml
- name: set hostname
shell: "raspi-config nonint do_hostname {{ myconfig.hostname }}"
when: raspi_hostname != myconfig.hostname
-76
View File
@@ -1,77 +1 @@
---
macaddrs:
dc:a6:32:8c:8a:53:
hostname: "cloverdale"
domain: "local"
locale: "en_US.UTF-8"
timezone: "America/Los_Angeles"
xkblayout: "us"
wifi_country: "US"
enable_gui: True
enable_autologin: False
enable_bootwait: False
enable_bootsplash: False
enable_camera: False
enable_vnc: False
enable_spi: False
enable_i2c: False
enable_serial: True
enable_serial_hw: True
enable_onewire: False
enable_rgpio: False
ssh_host_key_files:
- etc/ssh/ssh_host_rsa_key.cloverdale
- etc/ssh/ssh_host_dsa_key.cloverdale
- etc/ssh/ssh_host_ecdsa_key.cloverdale
- etc/ssh/ssh_host_ed25519_key.cloverdale
b8:27:eb:6c:82:02:
hostname: "clovermine"
domain: "local"
locale: "en_US.UTF-8"
timezone: "America/Los_Angeles"
xkblayout: "us"
wifi_country: "US"
enable_gui: True
enable_autologin: False
enable_bootwait: False
enable_bootsplash: False
enable_camera: False
enable_vnc: False
enable_spi: False
enable_i2c: False
enable_serial: True
enable_serial_hw: True
enable_onewire: False
enable_rgpio: False
darshan_dev: True
extra_software:
- "libglib2.0-dev"
- "libncurses-dev"
- "libperl-dev"
b8:27:eb:ff:35:c7:
hostname: "cloverleaf"
domain: "local"
locale: "en_US.UTF-8"
timezone: "America/Los_Angeles"
xkblayout: "us"
enable_gui: False
enable_autologin: False
enable_bootwait: True
enable_bootsplash: False
enable_camera: False
enable_vnc: False
enable_spi: False
enable_i2c: False
enable_serial: True
enable_serial_hw: True
enable_onewire: False
enable_rgpio: False
ssh_host_key_files:
- etc/ssh/ssh_host_rsa_key.cloverleaf
- etc/ssh/ssh_host_dsa_key.cloverleaf
- etc/ssh/ssh_host_ecdsa_key.cloverleaf
- etc/ssh/ssh_host_ed25519_key.cloverleaf
extra_software:
- "w3m"
- "irssi"
- "screen"