On 10/20/20 9:06 PM, David Hobach wrote:
Thank you very much!I also got this running, thanks! However when I run qubesctl --all --show-output state.highstate saltenv=user I get for my states: State 'qvm.present' was not found in SLS 'mysls' Reason: 'qvm.present' is not available. I guess the custom qvm.* states are not available in the /srv/user_salt folder, but only in /srv/salt? Is there any way to make them available in /srv/user_salt as well? Side Note: I ran `qubesctl --show-output state.sls qubes.user-dirs` to obtain the folders.
For reference I got it running with symlinks this way: #!/bin/bash # # Run the salt configuration of _this_ folder in dom0. # # Assumes that you have `user_[formulas|pillar|salt]` directories in _this_ folder. # # NOTE: If even `sudo qubesctl top.enabled` failed for you, you can try re-installing `qubes-mgmt-salt-* salt salt-minion` # (first via `sudo qubes-dom0-update`, then via `sudo dnf reinstall`. set -e -o pipefail [[ "$(whoami)" != "root" ]] && >&2 echo "This script must be run as root." && exit 1 #path of this directory (hopefully...) SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" #saltModSymlink [target] function saltModSymlink { local target="$1" local tpath="/srv/user_salt/$target" rm -f "$tpath" ln -s "/srv/salt/$target" "$tpath" } #create user_ symlinks @/srv/ for the saltenv=user (explicitly configured by Qubes OS) echo "Creating user_ symlinks in /srv/..." for file in "$SCRIPT_DIR"/* ; do if [ -d "$file" ] && [[ "$file" == *"user_"* ]] ; then target="/srv/${file##*/}" #remove previous instances & update new rm -f "$target" ln -s "$file" "$target" fi done #create module symlinks echo "Creating Qubes module symlinks..." saltModSymlink "_grains" saltModSymlink "_modules" saltModSymlink "_pillar" saltModSymlink "_states" saltModSymlink "_utils" #sync modules (we just added some via the symlinks above) #echo "Syncing modules..." #qubesctl saltutil.sync_all saltenv=user #call if [ $# -gt 0 ] ; then echo "Calling qubesctl saltenv=user with your arguments..." qubesctl --show-output "$@" saltenv=user else echo "Using qubesctl to apply the top.sls state..." qubesctl --show-output state.apply saltenv=user fi
P.S.: I also noticed that right after I did sudo qubesctl --all --show-output state.highstate saltenv=user I get ``` sudo qubesctl top.enabled [CRITICAL] Specified ext_pillar interface qvm_prefs is unavailable 'top.enabled' is not available. DOM0 configuration failed, not continuing ``` (It did work right before.) It doesn't change after a reboot, only reinstalling the salt packages helps. I guess that's not normal?
With the above & a fresh reinstall, this didn't happen anymore. It's odd anyway that it happened. -- You received this message because you are subscribed to the Google Groups "qubes-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to qubes-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/qubes-users/44f1ebe5-22a1-c6e4-a8a8-b0f4905466a1%40hackingthe.net.
smime.p7s
Description: S/MIME Cryptographic Signature