Skip to content

Commit

Permalink
feat: usb client
Browse files Browse the repository at this point in the history
  • Loading branch information
ben-grande committed Dec 18, 2023
1 parent c03f183 commit 9e371cd
Show file tree
Hide file tree
Showing 10 changed files with 163 additions and 0 deletions.
36 changes: 36 additions & 0 deletions salt/usb/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# usb

USB client in Qubes OS.

## Table of Contents

* [Description](#description)
* [Installation](#installation)
* [Usage](#usage)

## Description

A Template for DispVMs will be created and named "dvm-usb", from this qube,
you can base disposable qubes, geared towards USB client usage.

## Installation

- Top:
```sh
qubesctl top.enable usb
qubesctl --targets=tpl-usb state.apply
qubesctl top.disable usb
```

- State:
<!-- pkg:begin:post-install -->
```sh
qubesctl state.apply usb.create
qubesctl --skip-dom0 --targets=tpl-usb state.apply usb.install
```
<!-- pkg:end:post-install -->

## Usage

You will use the Template for DispVMs "dvm-usb" to create disposable qubes to
connect USB devices to.
8 changes: 8 additions & 0 deletions salt/usb/clone.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{#
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <[email protected]>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

{% from 'utils/macros/clone-template.sls' import clone_template -%}
{{ clone_template('debian-minimal', sls_path) }}
10 changes: 10 additions & 0 deletions salt/usb/clone.top
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{#
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <[email protected]>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

base:
'dom0':
- match: nodegroup
- usb.clone
12 changes: 12 additions & 0 deletions salt/usb/configure-dvm.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{#
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <[email protected]>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

{% if grains['nodename'] != 'dom0' -%}

include:
- dev.home-cleanup

{% endif -%}
10 changes: 10 additions & 0 deletions salt/usb/configure-dvm.top
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{#
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <[email protected]>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

base:
'*':
- match: nodegroup
- usb.configure-dvm
42 changes: 42 additions & 0 deletions salt/usb/create.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{#
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <[email protected]>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

{%- from "qvm/template.jinja" import load -%}
include:
- .clone
{% load_yaml as defaults -%}
name: dvm-{{ slsdotpath }}
force: True
require:
- sls: {{ slsdotpath }}.clone
present:
- template: tpl-{{ slsdotpath }}
- label: red
prefs:
- template: tpl-{{ slsdotpath }}
- label: red
- netvm: ""
- memory: 300
- maxmem: 500
- vcpus: 1
- autostart: False
- template_for_dispvms: True
- include_in_backups: False
features:
- enable:
- appmenus-dispvm
- disable:
- service.cups
- service.cups-browsed
- service.tinyproxy
{%- endload %}
{{ load(defaults) }}
"{{ slsdotpath }}-extend-private-volume":
cmd.run:
- name: qvm-volume extend dvm-{{ slsdotpath }}:private 15Gi
10 changes: 10 additions & 0 deletions salt/usb/create.top
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{#
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <[email protected]>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

base:
'dom0':
- match: nodegroup
- usb.create
14 changes: 14 additions & 0 deletions salt/usb/init.top
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{#
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <[email protected]>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

base:
'dom0':
- match: nodegroup
- usb.create
'tpl-usb':
- usb.install
'dvm-usb':
- usb.configur-dvm
12 changes: 12 additions & 0 deletions salt/usb/install.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{#
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <[email protected]>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

{% if grains['nodename'] != 'dom0' -%}

include:
- sys-usb.install-client

{% endif -%}
9 changes: 9 additions & 0 deletions salt/usb/install.top
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{#
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <[email protected]>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

base:
'tpl-usb':
- usb.install

0 comments on commit 9e371cd

Please sign in to comment.