mirror of
https://gitea.com/mcereda/oam.git
synced 2026-02-09 05:44:23 +00:00
83 lines
2.7 KiB
YAML
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 }}'"
|