Open adrelanos opened 3 years ago
I'm not sure if I follow your reasoning. I see it this way: the proper instruction is:
sudo qubes-dom0-update
command (or GUI equivalent).sudo qubesctl state.sls qvm.anon-whonix
(no GUI for this one yet, but will be at some point)But then, for user who skipped any of those simple steps, you added way more complex steps (like installing templates via qubes-dom0-update). If they skip simple steps, why would adding complex ones could help? If anything, it makes things worse...
Now to the details:
Verify
whonix_version
is16
.
A simpler check would be rpm -q qubes-mgmt-salt-dom0-virtual-machine
(although the package name is a bit long, to type manually). Maybe Whonix formula(s) should be in a separate package, that could have versions aligned with Whonix releases?
Also the parameter
--enablerepo=qubes-templates-community
Yes, it is required because community templates repo is (intentionally) not enabled by default. This step is already covered with salt formula (as well as many other things).
A Qubes template should be self-contained with everything (template + meta scripts).
The template itself can (and do) have a bit of metadata about itself. Things like installed applications, OS inside, what services are available inside etc. But it (intentionally) cannot influence anything outside of that template, like creating new VMs, installing dom0 packages etc. Otherwise, templates would be much more sensitive, negating a lot of separation (for example, we'd need significantly higher bar for accepting community templates, which already is rather high). We have salt formula for all this, and it gets much more review etc.
This shouldnt be difficult, but the potential of system breakage strikes
me as enormous.
Can you say exactly what you would want sudo qubesctl state.sls qvm.anon-whonix
do?
What other salt commands would you want to support?
I'm not sure if I follow your reasoning. I see it this way: the proper instruction is:
Update dom0, using a single
sudo qubes-dom0-update
command (or GUI equivalent).Install Whonix using a single
sudo qubesctl state.sls qvm.anon-whonix
(no GUI for this one yet, but will be at some point)But then, for user who skipped any of those simple steps, you added way more complex steps (like installing templates via qubes-dom0-update). If they skip simple steps, why would adding complex ones could help? If anything, it makes things worse...
In addition to the dom0 updates/jinja gaps, I think there was an additional precipitating event: for some people, executing the salt formula led to a) the appearance of a system freeze (noted above) while waiting for a very long download or b) an actual system freeze/kernel panic (I ran into the latter but did not investigate, and I saw at least one other had a similar experience).
"a)" is covered in the ui/usability gap discussion above.
"b)" seemed to be remedied either by retrying later and/or manually downloading the templates first...leading to the writing more complex instructions, perhaps.
B
I'm not sure if I follow your reasoning. I see it this way: the proper instruction is:
- Update dom0, using a single
sudo qubes-dom0-update
command (or GUI equivalent).- Install Whonix using a single
sudo qubesctl state.sls qvm.anon-whonix
(no GUI for this one yet, but will be at some point)But then, for user who skipped any of those simple steps, you added way more complex steps (like installing templates via qubes-dom0-update). If they skip simple steps, why would adding complex ones could help?
By experience, this creates less questions. Well, that might also be because users give up at that point. Dunno.
A Qubes template should be self-contained with everything (template + meta scripts).
The template itself can (and do) have a bit of metadata about itself. Things like installed applications, OS inside, what services are available inside etc. But it (intentionally) cannot influence anything outside of that template, like creating new VMs, installing dom0 packages etc. Otherwise, templates would be much more sensitive, negating a lot of separation (for example, we'd need significantly higher bar for accepting community templates, which already is rather high). We have salt formula for all this, and it gets much more review etc.
I see.
Would it be sane if Whonix templates would have Qubes salt as a dependency? That way salt upgrade would be guaranteed and no way an omitted "sudo qubes-dom0-update" causing any issues?
This shouldnt be difficult, but the potential of system breakage strikes me as enormous. Can you say exactly what you would want
sudo qubesctl state.sls qvm.anon-whonix
do? What other salt commands would you want to support?
It's good as is - if dom0 is up to date - which is often not. "Ideally" it would run "sudo qubes-dom0-update" but that is too much too ask. It would solve part of this usability issue (assuming having salt progress indicator) but would also create bigger mess (unwanted, unexpected general Qubes dom0 update).
I'm not sure if I follow your reasoning. I see it this way: the proper instruction is:
- Update dom0, using a single
sudo qubes-dom0-update
command (or GUI equivalent).- Install Whonix using a single
sudo qubesctl state.sls qvm.anon-whonix
(no GUI for this one yet, but will be at some point)But then, for user who skipped any of those simple steps, you added way more complex steps (like installing templates via qubes-dom0-update). If they skip simple steps, why would adding complex ones could help? If anything, it makes things worse...
In addition to the dom0 updates/ninja gaps, I think there was an additional precipitating event: for some people, executing the salt formula led to a) the appearance of a system freeze (noted above) while waiting for a very long download or b) an actual system freeze/kernel panic (I ran into the latter but did not investigate, and I saw at least one other had a similar experience).
"a)" is covered in the ui/usability gap discussion above.
"b)" seemed to be remedied either by retrying later and/or manually downloading the templates first...leading to the writing more complex instructions, perhaps.
B
Right.
Usability Issue
The more lengthy the instructions, the more commands users needs to manually type into a terminal emulator, the more can go wrong usability wise.
For example in Qubes-Whonix installation instructions, users need to be told:
This is required to make sure
/srv/formulas/base/virtual-machines-formula/qvm/whonix.jinja
contains the current version number of is up to date,Many users skipped that step. That might be because Qubes dom0 updates have a chance, in past broke connectivity or Qubes dom0 boot.
Then documentation was updated to say:
That helped but still some users skipping that step. Therefore it was required to make sure the user really did update Qubes dom0. More documentation was added:
At this point, usability of these instructions is already really bad.
Next step in documentation is telling users:
That is a lengthy command to type. Users by Qubes default cannot copy from a VM to dom0 for security reasons. But then typing such a command for users who are not using a (kinda) 10 finger typing system is a challenge. One typo, and it won't work.
That command could be replaced by a shorter command
sudo qubesctl state.sls qvm.anon-whonix
but then that can take ages (especially when downloaded over Tor) so users reported this to be confusing as it's not known by the user if the download is still taking a long time or the entire process hanging forever. #4215Also the parameter
--enablerepo=qubes-templates-community
was reported to be needed quite some times in Qubes-Whonix and Qubes forums.After that users are told:
Yet another command. Rationale for that is explained in #3447.
On top of that: #6904
It's a lot rough edges that really add up to bad usability.
Technical Issue
The template upgrade is currently scattered into many different pieces. At least:
I.e. the template + meta scripts.
Suggested Solution
A Qubes template should be self-contained with everything (template + meta scripts).
For example, Whonix for VirtualBox doesn't have this issue because VirtualBox
.ova
files are self-contained. These contain both, the virtual machine image file as well as the metadata (virtual machine configuration).If we had that + #4215 + #6904 then perhaps command line installation instructions could be really shrunk to
sudo qubesctl state.sls qvm.anon-whonix
.