mirror of
https://gitea.com/mcereda/oam.git
synced 2026-02-09 05:44:23 +00:00
Added ansible play to register a device to Keybase
This commit is contained in:
82
ansible/keybase.register-device.yml
Normal file
82
ansible/keybase.register-device.yml
Normal file
@@ -0,0 +1,82 @@
|
||||
---
|
||||
|
||||
- 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
|
||||
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 }}'"
|
||||
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') }}"
|
||||
Reference in New Issue
Block a user