mirror of
				https://github.com/Rudd-O/ansible-qubes.git
				synced 2025-10-31 03:28:56 +01:00 
			
		
		
		
	Explain better and add steps to the Ansible Qubes setup process.
This commit is contained in:
		
							parent
							
								
									570cee1204
								
							
						
					
					
						commit
						4bfa9f0121
					
				| @ -1,8 +1,16 @@ | ||||
| # Enhance your Ansible with Ansible Qubes | ||||
| 
 | ||||
| This set of instructions assumes that you: | ||||
| 
 | ||||
| * are running within a Qubes OS system | ||||
| * have an AppVM already set up (we'll call it `managevm`) | ||||
| * have cloned this repository into that VM | ||||
| * have Ansible installed in that VM | ||||
| * have an Ansible setup already going on within that VM | ||||
| 
 | ||||
| ## Deploy the software to the right places | ||||
| 
 | ||||
| Integrate this software into your Ansible setup by: | ||||
| Integrate this software into your Ansible setup (within your `managevm`) VM) by: | ||||
| 
 | ||||
| 1. setting up a `connections_plugin = <directory>` in your `ansible.cfg` | ||||
|    file, pointing it to a directory you control, then | ||||
| @ -14,6 +22,46 @@ Integrate this software into your Ansible setup by: | ||||
|   * Anywhere on your Ansible machine's `PATH`. | ||||
|   * In a `../../bin` directory relative to the `qubes.py` file. | ||||
| 
 | ||||
| ## Set up the policy file for `qubes.VMShell` | ||||
| 
 | ||||
| Edit (as `root`) the file `/etc/qubes-rpc/policy/qubes.VMShell` | ||||
| located on the file system of your `dom0`. | ||||
| 
 | ||||
| At the top of the file, add the following two lines: | ||||
| 
 | ||||
| ``` | ||||
| managevm $anyvm allow | ||||
| ``` | ||||
| 
 | ||||
| This first line lets `managevm` execute any commands on any VM on your | ||||
| system.  You can also supply an `ask` policy instead of the `allow` | ||||
| policy specified above.  Note that `ask` will make Qubes OS bother you | ||||
| every time you run commands (and Ansible plays) with the standard | ||||
| security prompt to allow `qubes.VMShell` on the target VM you're managing. | ||||
| 
 | ||||
| Now save that file, and exit your editor. | ||||
| 
 | ||||
| ### Optional: allow `managevm` to manage `dom0` | ||||
| 
 | ||||
| Before the line you added in the previous step, add this line: | ||||
| 
 | ||||
| ``` | ||||
| managevm dom0 allow | ||||
| ``` | ||||
| 
 | ||||
| This line lets `managevm` execute any commands in `dom0`.  Be sure you | ||||
| understand the security implications of such a thing. | ||||
| 
 | ||||
| The next step is to add the RPC service proper.  Edit the file | ||||
| `/etc/qubes-rpc/qubes.VMShell` to have a single line that contains: | ||||
| 
 | ||||
| ``` | ||||
| exec bash | ||||
| ``` | ||||
| 
 | ||||
| That is it.  `dom0` should work now. | ||||
| 
 | ||||
| 
 | ||||
| ## Test `qrun` works | ||||
| 
 | ||||
| Test that `qrun` does the job.  In the VM where you integrated your | ||||
| @ -25,7 +73,7 @@ path/to/qrun <some VM> hostname | ||||
| 
 | ||||
| This should immediately return with the hostname of `<some VM>`, | ||||
| indicating that `qrun` successfully invoked `bombshell-client` on it, | ||||
| requesting the execution of `hostname` on `exp-net`. | ||||
| requesting the execution of `hostname` in `<some VM>`. | ||||
| 
 | ||||
| ## Register VMs on your Ansible inventory | ||||
| 
 | ||||
| @ -43,8 +91,4 @@ vmonremotehost  ansible_connection=qubes management_proxy=1.2.3.4 | ||||
| 
 | ||||
| You are now free to run `ansible-playbook` or `ansible` against those hosts. | ||||
| So long as those programs can find your `ansible.cfg` file, and your `hosts` | ||||
| file, it will work.  Note that Qubes OS will bother you every time you run | ||||
| commands with the prompt to allow `qubes.VMShell` on the target VM you're | ||||
| managing, unless you set said permission to default to yes (the pertinent | ||||
| file to edit is in the `dom0` of the target Qubes OS machine, path | ||||
| `/etc/qubes-rpc/policy/qubes.VMShell`). | ||||
| file, it will work. | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Manuel Amador (Rudd-O)
						Manuel Amador (Rudd-O)