Files
oam/ansible/keybase.register-device.yml
2022-05-10 22:09:20 +02:00

83 lines
2.7 KiB
YAML

---
- name: Register the device on Keybase
hosts: all
tags: keybase
vars:
keybase_devicename: "{{ lookup('env', 'KEYBASE_DEVICENAME') }}"
keybase_paperkey: "{{ lookup('env', 'KEYBASE_PAPERKEY') }}"
keybase_username: "{{ lookup('env', 'KEYBASE_USERNAME') }}"
oneshot: false
pre_tasks:
- name: Pre-flight checks
tags:
- check
- pre-flight
when: lookup('vars', item) == ''
ansible.builtin.fail:
msg: "{{ item }} variable required but not set"
loop:
- keybase_devicename
- keybase_paperkey
- keybase_username
handlers:
- name: Login to Keybase
tags: login
environment:
KEYBASE_DEVICENAME: "{{ keybase_devicename }}"
KEYBASE_PAPERKEY: "{{ keybase_paperkey }}"
KEYBASE_USERNAME: "{{ keybase_username }}"
ansible.builtin.command: "keybase {{ oneshot | ternary('oneshot', 'login -s') }}"
tasks:
- name: Install Keybase
tags:
- install
- package
block:
- name: "Install Keybase through {{ ansible_pkg_mgr }}"
when: ansible_pkg_mgr in ['dnf', 'yum']
become: true
ansible.builtin.dnf:
name: 'https://prerelease.keybase.io/keybase_amd64.rpm'
state: present
register: keybase_installed
- name: Install Keybase through Homebrew
when: ansible_pkg_mgr == 'homebrew'
community.general.homebrew_cask:
name: keybase
state: present
install_options: 'appdir=~/Applications'
register: keybase_installed
- name: Install Keybase through Zypper
when: ansible_pkg_mgr == 'zypper'
become: true
community.general.zypper:
name: 'https://prerelease.keybase.io/keybase_amd64.rpm'
state: present
disable_gpg_check: true
disable_recommends: false
register: keybase_installed
- name: Enable Keybase's service for the user
when: ansible_service_mgr == 'systemd'
tags:
- enable
- start
- service
ansible.builtin.systemd:
scope: user
name: keybase.service
state: started
enabled: true
- name: Check the user is already logged in to Keybase
check_mode: false
notify: Login to Keybase
ansible.builtin.command: keybase whoami
register: keybase_user_logged_in
changed_when:
- keybase_user_logged_in.rc == 2
- keybase_user_logged_in.stderr | regex_search('logged out')
failed_when:
- keybase_user_logged_in.rc != 0
- keybase_user_logged_in.stderr | regex_search('logged out') is false
- "keybase_user_logged_in.stdout != '{{ keybase_username }}'"