-
Notifications
You must be signed in to change notification settings - Fork 88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Qubes OS support #333
Comments
I haven't used Qubes OS myself so I wonder how do you use Ansible/DebOps with it. Presumably you apply DebOps on a template VM image which is then started as needed? Therefore the persistent paths will be useful with more roles than just I don't really like the role name to be honest, it results in stuff like I'm also not sure about the placement of the Since the topic of this issue is broad, can you tell me more about the things you want to include in DebOps to make it work better with Qubes? I wonder about the built-in Salt interface in Qubes, does it apply changes to the started VMs just after boot or do you need to start that by hand? Do you think that adding configuration via Salt which is applied after the VM is booted automatically might be a better idea than needing to apply the changes manually? |
My use case is that I have multiple TemplateVMs but I only run Ansible and DebOps against less trusted VMs. For more trusted TemplateVMs, I basically configured the few things I needed manually to keep the TCB as minimal as possible. I don’t run the full DebOps common playbook against my templates because I don’t need it. Currently, I run the following DebOps core roles: [debops_service_core:children]
my_workstation_qubes_managed_templates
[debops_service_apt_preferences:children]
my_workstation_qubes_managed_templates
[debops_service_apt:children]
my_workstation_qubes_managed_templates
[debops_service_apt_proxy:children]
my_workstation_qubes_managed_templates
[debops_service_resources:children]
my_workstation_qubes_managed_templates
[debops_service_users:children]
my_workstation_qubes_managed_templates So TemplateVMs are basically normal Debian 8 VMs where you can Ansible and DebOps against without much of a difference (there are differences like APT repos and default packages that sometimes need to be handled specially, ref: ypid.packages). Then I use multiple AppVMs based on those templates. In the AppVMs, only a few paths are persistent as documented and I split the inventory for my bare metal workstation to the different AppVMs. The idea is that the AppVMs are then provisioned one time using some Ansible roles and then left alone (ref: Salt integration in Qubes OS, Threat Model). So I would like to be able to rebuild an TemplateVM or AppVM quickly and have them documented. About the name, you are right. About the Salt support. I have took my time to get into it and actually use it to define all my TemplateVMs and AppVMs from the outside (e. g. dom0), but nothing inside those VMs. I am not used to Salt yet and have everything ready with Ansible, so I started with Ansible but I might get into Salt more. This is an example of my Salt configuration which creates an AppVM based on a Debian 8 template: Create d-web:
qvm.present:
- name: d-web
# Only set initially and is then not updated but is required:
- label: red
Configure d-web:
qvm.prefs:
- name: d-web
- template: t-deb-8-full
- netvm: s-vpn
- label: blue For you question, Qubes OS is smart enough to start VMs before trying to talk to the agent inside the VM. The following command was run against a VM which was shutdown:
Qubes OS automatically started the VM and Ansible waited with execution. About automatic execution, I don’t mind that much about that and don’t need my CM system to make automatic changes without me triggering them. cc @Rudd-O you might also be interested in this. |
@ypid The repository has been moved to the |
Thanks. You can release the first version when you want. Will add it to docs later. |
Qubes OS support works and has been tested on Qubes OS R3.2 and R4.0. Closing as implemented. |
As I have been managing my workstations with Ansible and DebOps for some time now and have migrated to Qubes OS I will be working on some level of support for it for DebOps. My use case for Qubes OS is as a workstation/end point so I will probably not work much on dedicated server roles.
To configure Qubes OS TemplateVMs and AppVMs, some ground work has been made, first and foremost Ansible support for Qubes OS itself ansible-qubes. ansible-qubes is not officially supported by Qubes OS and currently does not have the same advanced integration and security as Salt in Qubes OS.
On the DebOps side of things, some ground work is needed to make changes in TemplateBasedVMs persistent. The role for it is ready: debops.persistent_paths. @drybjed Can we move the role to DebOps core, so that it can be used from other DebOps core roles? Example: debops.cryptsetup
The text was updated successfully, but these errors were encountered: