mirror of
https://github.com/ben-grande/qusal.git
synced 2025-01-11 07:29:33 -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