commit
43e3fa1b6a
@ -0,0 +1,2 @@ |
||||
Self configuration of a fresh Raspbian installation on Raspberry Pi. This is |
||||
very much a work in progress. |
@ -0,0 +1 @@ |
||||
cloverfield ansible_host=192.168.1.153 ansible_connection=local |
@ -0,0 +1 @@ |
||||
America/Los_Angeles |
@ -0,0 +1,3 @@ |
||||
--- |
||||
- name: changed timezone |
||||
command: dpkg-reconfigure --frontend noninteractive tzdata |
@ -0,0 +1,83 @@ |
||||
--- |
||||
### Set hostname |
||||
- name: set hostname |
||||
hostname: name={{ inventory_hostname }} |
||||
when: inventory_hostname is defined and ansible_nodename is defined |
||||
|
||||
- name: update /etc/hosts with new hostname |
||||
lineinfile: |
||||
dest=/etc/hosts |
||||
regexp="^{{ ansible_default_ipv4.address }}" |
||||
line="{{ ansible_default_ipv4.address }}{{'\t'}}{{ inventory_hostname }}.local{{'\t'}}{{ inventory_hostname }}" |
||||
state=present |
||||
|
||||
- name: get rid of default 127.0.1.1 binding |
||||
lineinfile: |
||||
dest=/etc/hosts |
||||
regexp="^127.0.1.1" |
||||
state=absent |
||||
|
||||
### Configure /etc/hosts |
||||
- name: ensure that all local hosts are in /etc/hosts |
||||
lineinfile: |
||||
dest=/etc/hosts |
||||
line="{{ item.ip }}{{'\t'}}{{ item.name }}.local{{'\t'}}{{ item.name }}" |
||||
state=present |
||||
with_items: etc_hosts_contents |
||||
|
||||
### Set timezone |
||||
- name: set /etc/timezone to America/Los_Angeles |
||||
copy: src=etc/timezone |
||||
dest=/etc/timezone |
||||
owner=root |
||||
group=root |
||||
mode=0644 |
||||
backup=yes |
||||
notify: |
||||
- changed timezone |
||||
|
||||
### Uninstall Raspbian bloat |
||||
- name: remove raspbian bloat |
||||
apt: |
||||
name="{{ item }}" |
||||
state=absent |
||||
with_items: |
||||
- wolfram-engine |
||||
- libreoffice* |
||||
- scratch |
||||
- minecraft-pi |
||||
- python-minecraftpi |
||||
- python3-minecraftpi |
||||
- sonic-pi |
||||
- dillo |
||||
- gpiciew |
||||
- penguinspuzzle |
||||
|
||||
### Install required software |
||||
- name: install basic software environment |
||||
apt: |
||||
name="{{ item }}" |
||||
state=present |
||||
update_cache=yes |
||||
with_items: |
||||
- vim |
||||
|
||||
### Create user accounts |
||||
- name: create users |
||||
user: name="{{ item.name }}" |
||||
comment="{{ item.comment }}" |
||||
group="{{ item.group }}" |
||||
groups="{{ item.groups }}" |
||||
uid="{{ item.uid }}" |
||||
state=present |
||||
with_items: create_users |
||||
tags: [ 'users' ] |
||||
|
||||
- name: install ssh pubkeys for new users |
||||
authorized_key: user="{{ item.name }}" |
||||
key="{{ item.pubkey }}" |
||||
state=present |
||||
with_items: create_users |
||||
tags: [ 'users' ] |
||||
|
||||
### TODO: disable the 'pi' user somehow |
@ -0,0 +1,16 @@ |
||||
--- |
||||
### Hosts that must be present in /etc/hosts |
||||
etc_hosts_contents: |
||||
- { name: 'cloverfield', ip: '192.168.1.153' } |
||||
- { name: 'clovermill', ip: '192.168.1.149' } |
||||
|
||||
### Users that must be present on the system |
||||
create_users: |
||||
- name: glock |
||||
comment: "Glenn K. Lockwood" |
||||
uid: 1024 |
||||
group: users |
||||
# don't include the group from 'group:' above in the 'groups:' below; this |
||||
# breaks idempotency for some reason |
||||
groups: "adm,dialout,sudo,audio,video,plugdev,games,input,netdev,spi,i2c,gpio" |
||||
pubkey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjx1Fevx4XODj8pJy/qRZDwQCRwNl0tJ3gWlDy1dB/AtdapVh5XYDUI99R+JqqzGgME9Bif6p1K6bqClLQh7MeY57L9IyjtqBF2t6/vNeKdOYDYQcBwL1p7vbGNTfKxYF2G4Lw+tRVGr3c+sCvA6r5UUAIhXNXTs7fLZanO6JGwITlJFcxDXPmITEhoXu4yTFqA0j1yp/K7I7dvmlhG/Yq+8P6zTJww1Zpy3aMaJ9gB4KR9jclW67wQZ3kVkFcyJtHXRI/LTzfAitB9W1X0svXysy88DiZsBGm1UmrUuFD3JPRn0SRRYchW5RdZ7MDPYWUDWweZIeuWvWRKzMkB5VJ" |
Loading…
Reference in new issue