|
|
|
# Raspberry Pi Ansible
|
|
|
|
|
|
|
|
Glenn K. Lockwood, August 2017
|
|
|
|
|
|
|
|
## Introduction
|
|
|
|
|
|
|
|
This is an Ansible configuration that configures a fresh Raspbian installation
|
|
|
|
on Raspberry Pi. This is very much a work in progress and not intended to be
|
|
|
|
used by anyone but me.
|
|
|
|
|
|
|
|
## Bootstrapping on Raspbian
|
|
|
|
|
|
|
|
If you want to use these playbooks to make a Raspberry Pi self-configure,
|
|
|
|
install Ansible by doing the following:
|
|
|
|
|
|
|
|
# pip install --user ansible
|
|
|
|
# ssh-keygen
|
|
|
|
# ssh-copy-id localhost
|
|
|
|
|
|
|
|
Note that `apt-get install ansible` is not a great idea because it's almost
|
|
|
|
certainly out of date, and the documentation online will talk about mainline
|
|
|
|
features that don't exist in the distro-provided version.
|
|
|
|
|
|
|
|
You can ensure that Ansible is able to configure using the following:
|
|
|
|
|
|
|
|
$ ansible -i hosts all -m ping
|
|
|
|
|
|
|
|
You can also ensure that authentication also works.
|
|
|
|
|
|
|
|
$ ansible -i hosts -u pi --sudo-user root all -a "/usr/bin/id -u"
|
|
|
|
|
|
|
|
## Running the Playbook
|
|
|
|
|
|
|
|
Authentication will be an issue since the configuration disables the default
|
|
|
|
user (`pi`) and adds new privileged users. This means that you will probably
|
|
|
|
have to specify different `--sudo-user` options depending on how far into the
|
|
|
|
configuration you got. For example, assuming the `pi` user still exists,
|
|
|
|
|
|
|
|
$ ansible-playbook --inventory-file hosts --limit clovermine --ask-sudo-pass --user pi --sudo site.yml
|
|
|
|
|
|
|
|
You will be asked for the sudo password, which is the same as `pi`'s password
|
|
|
|
(which defaults to `raspberry`). Once the users are set up and `pi` is no
|
|
|
|
longer a valid user.
|
|
|
|
|
|
|
|
$ ansible-playbook -i hosts -l clovermine -K -s -U glock site.yml
|