Ansible: another take a using Ansible to set up dotfiles
This commit is contained in:
		
							parent
							
								
									be6b93cdde
								
							
						
					
					
						commit
						72896c3feb
					
				
					 6 changed files with 62 additions and 0 deletions
				
			
		
							
								
								
									
										4
									
								
								Ansible/facts/dotfiles.fact
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										4
									
								
								Ansible/facts/dotfiles.fact
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| #!/usr/bin/env zsh | ||||
| 
 | ||||
| dotfiles_root=$(git rev-parse --show-toplevel) | ||||
| echo "{ \"path\": \"${dotfiles_root}\" }" | ||||
							
								
								
									
										2
									
								
								Ansible/inventory.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Ansible/inventory.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| all: | ||||
|   localhost: | ||||
							
								
								
									
										11
									
								
								Ansible/play-setup.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Ansible/play-setup.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | |||
| --- | ||||
| - name: Set up dotfiles | ||||
|   hosts: localhost | ||||
|   connection: local | ||||
|   module_defaults: | ||||
|     ansible.builtin.setup: | ||||
|       fact_path: "./facts" | ||||
|   tasks: | ||||
|     - name: Include eryn role | ||||
|       ansible.builtin.include_role: | ||||
|         name: eryn | ||||
							
								
								
									
										3
									
								
								Ansible/roles/eryn/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Ansible/roles/eryn/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| --- | ||||
| - name: Configure ZSH | ||||
|   import_tasks: zsh.yml | ||||
							
								
								
									
										8
									
								
								Ansible/roles/eryn/tasks/symlink_dotfile.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								Ansible/roles/eryn/tasks/symlink_dotfile.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,8 @@ | |||
| --- | ||||
| - name: "Symlink {{ dotfile_src }}" | ||||
|   ansible.builtin.file: | ||||
|     src: "{{ ansible_local.dotfiles.path }}/{{ dotfile_src }}" | ||||
|     dest: "~/.{{ dotfile_dest | default(dotfile_src) }}" | ||||
|     owner: "{{ ansible_user_id }}" | ||||
|     mode: 0644 | ||||
|     state: link | ||||
							
								
								
									
										34
									
								
								Ansible/roles/eryn/tasks/zsh.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								Ansible/roles/eryn/tasks/zsh.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,34 @@ | |||
| --- | ||||
| - name: "zsh : Set user shell" | ||||
|   ansible.builtin.user: | ||||
|     name: "{{ ansible_user_id }}" | ||||
|     shell: /bin/zsh | ||||
|     state: present | ||||
| 
 | ||||
| - name: "zsh : Symlink startup files" | ||||
|   ansible.builtin.include_tasks: symlink_dotfile.yml | ||||
|   vars: | ||||
|     dotfile_src: "{{ item.src | default(item) }}" | ||||
|     dotfile_dest: "{{ item.dest | default(item) }}" | ||||
|   loop: | ||||
|     - zshenv | ||||
|     - zshrc | ||||
|     - zprofile | ||||
| 
 | ||||
| - name: "zsh : Install user functions" | ||||
|   block: | ||||
|     - name: "zsh : Create zsh directory" | ||||
|       ansible.builtin.file: | ||||
|         path: "{{ _zsh_dir }}" | ||||
|         owner: "{{ ansible_user_id }}" | ||||
|         mode: 0755 | ||||
|         state: directory | ||||
| 
 | ||||
|     - name: "zsh : Symlink functions directory" | ||||
|       ansible.builtin.include_tasks: symlink_dotfile.yml | ||||
|       vars: | ||||
|         dotfile_src: "{{ item }}" | ||||
|       loop: | ||||
|         - zsh/func | ||||
|   vars: | ||||
|     _zsh_dir: "~/.zsh" | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue