mirror of
https://github.com/ben-grande/qusal.git
synced 2025-01-11 15:39:40 -05:00
feat: fetcher
This commit is contained in:
parent
9fc2c03a2c
commit
f16bfdd28b
43
salt/fetcher/README.md
Normal file
43
salt/fetcher/README.md
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# fetcher
|
||||||
|
|
||||||
|
Fetch publicly accessible files over the internet in Qubes OS.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
* [Description](#description)
|
||||||
|
* [Installation](#installation)
|
||||||
|
* [Usage](#usage)
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
A Template for DispVMs will be created and named "dvm-fetcher", from this qube
|
||||||
|
you will create others that can connect to the internet to download files. You
|
||||||
|
will be able to download from any protocol as long as the installed tools,
|
||||||
|
`curl`, `wget`, `git`, `rsync`, accept them.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
- Top:
|
||||||
|
```sh
|
||||||
|
qubesctl top.enable fetcher
|
||||||
|
qubesctl --targets=tpl-fetcher,dvm-fetcher state.apply
|
||||||
|
qubesctl top.disable fetcher
|
||||||
|
```
|
||||||
|
|
||||||
|
- State:
|
||||||
|
<!-- pkg:begin:post-install -->
|
||||||
|
```sh
|
||||||
|
qubesctl state.apply fetcher.create
|
||||||
|
qubesctl --skip-dom0 --targets=tpl-fetcher state.apply fetcher.install
|
||||||
|
qubesctl --skip-dom0 --targets=dvm-fetcher state.apply fetcher.configure-dvm
|
||||||
|
```
|
||||||
|
<!-- pkg:end:post-install -->
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
You will base qubes from the Template for DispVMs `dvm-fetcher` to download
|
||||||
|
files over the internet using popular command-line tools such as `git`,
|
||||||
|
`curl`, `wget`, `rsync`.
|
||||||
|
|
||||||
|
You can use disposables based from `dvm-fetcher` to clone repositories,
|
||||||
|
download PGP signatures, Operating System ISOs etc.
|
8
salt/fetcher/clone.sls
Normal file
8
salt/fetcher/clone.sls
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
{% from 'utils/macros/clone-template.sls' import clone_template -%}
|
||||||
|
{{ clone_template('debian-minimal', sls_path) }}
|
10
salt/fetcher/clone.top
Normal file
10
salt/fetcher/clone.top
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
base:
|
||||||
|
'dom0':
|
||||||
|
- match: nodegroup
|
||||||
|
- fetcher.clone
|
12
salt/fetcher/configure-dvm.sls
Normal file
12
salt/fetcher/configure-dvm.sls
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
{% if grains['nodename'] != 'dom0' -%}
|
||||||
|
|
||||||
|
include:
|
||||||
|
- dev.home-cleanup
|
||||||
|
|
||||||
|
{% endif -%}
|
10
salt/fetcher/configure-dvm.top
Normal file
10
salt/fetcher/configure-dvm.top
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
base:
|
||||||
|
'*':
|
||||||
|
- match: nodegroup
|
||||||
|
- fetcher.configure-dvm
|
42
salt/fetcher/create.sls
Normal file
42
salt/fetcher/create.sls
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
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
|
||||||
|
- 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
|
||||||
|
{%- endload %}
|
||||||
|
{{ load(defaults) }}
|
||||||
|
|
||||||
|
"{{ slsdotpath }}-resize-private-volume":
|
||||||
|
cmd.run:
|
||||||
|
- require:
|
||||||
|
- qvm: dvm-{{ slsdotpath }}
|
||||||
|
- name: qvm-volume extend dvm-{{ slsdotpath }}:private 15Gi
|
10
salt/fetcher/create.top
Normal file
10
salt/fetcher/create.top
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
base:
|
||||||
|
'dom0':
|
||||||
|
- match: nodegroup
|
||||||
|
- fetcher.create
|
14
salt/fetcher/init.top
Normal file
14
salt/fetcher/init.top
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
base:
|
||||||
|
'dom0':
|
||||||
|
- match: nodegroup
|
||||||
|
- fetcher.create
|
||||||
|
'tpl-fetcher':
|
||||||
|
- fetcher.install
|
||||||
|
'dvm-fetcher':
|
||||||
|
- fetcher.configure-dvm
|
31
salt/fetcher/install.sls
Normal file
31
salt/fetcher/install.sls
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
{% if grains['nodename'] != 'dom0' -%}
|
||||||
|
|
||||||
|
include:
|
||||||
|
- dotfiles.copy-sh
|
||||||
|
- dotfiles.copy-x11
|
||||||
|
- sys-pgp.install-client
|
||||||
|
|
||||||
|
"{{ slsdotpath }}-updated":
|
||||||
|
pkg.uptodate:
|
||||||
|
- refresh: True
|
||||||
|
|
||||||
|
"{{ slsdotpath }}-installed":
|
||||||
|
pkg.installed:
|
||||||
|
- refresh: True
|
||||||
|
- install_recommends: False
|
||||||
|
- skip_suggestions: True
|
||||||
|
- pkgs:
|
||||||
|
- qubes-core-agent-networking
|
||||||
|
- ca-certificates
|
||||||
|
- curl
|
||||||
|
- wget
|
||||||
|
- git
|
||||||
|
- rsync
|
||||||
|
|
||||||
|
{% endif -%}
|
9
salt/fetcher/install.top
Normal file
9
salt/fetcher/install.top
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
base:
|
||||||
|
'tpl-fetcher':
|
||||||
|
- fetcher.install
|
Loading…
Reference in New Issue
Block a user