85 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
---
 | 
						|
- name: Deploy Vault Cluster with Consul Integration
 | 
						|
  hosts: ch4,ash3c,warden
 | 
						|
  become: yes
 | 
						|
  vars:
 | 
						|
    vault_version: "1.15.2"
 | 
						|
    vault_datacenter: "dc1"
 | 
						|
    vault_cluster_name: "vault-cluster"
 | 
						|
    
 | 
						|
  tasks:
 | 
						|
    - name: Update apt cache
 | 
						|
      apt:
 | 
						|
        update_cache: yes
 | 
						|
        cache_valid_time: 3600
 | 
						|
 | 
						|
    - name: Add HashiCorp GPG key (if not exists)
 | 
						|
      shell: |
 | 
						|
        if [ ! -f /etc/apt/sources.list.d/hashicorp.list ]; then
 | 
						|
          curl -fsSL https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
 | 
						|
          echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
 | 
						|
        fi        
 | 
						|
      args:
 | 
						|
        creates: /etc/apt/sources.list.d/hashicorp.list
 | 
						|
 | 
						|
    - name: Install Vault
 | 
						|
      apt:
 | 
						|
        name: vault
 | 
						|
        state: present
 | 
						|
        update_cache: yes
 | 
						|
        allow_downgrade: yes
 | 
						|
 | 
						|
    - name: Create vault user and directories
 | 
						|
      block:
 | 
						|
        - name: Create vault data directory
 | 
						|
          file:
 | 
						|
            path: /opt/vault/data
 | 
						|
            state: directory
 | 
						|
            owner: vault
 | 
						|
            group: vault
 | 
						|
            mode: '0755'
 | 
						|
 | 
						|
        - name: Create vault config directory
 | 
						|
          file:
 | 
						|
            path: /etc/vault.d
 | 
						|
            state: directory
 | 
						|
            owner: vault
 | 
						|
            group: vault
 | 
						|
            mode: '0755'
 | 
						|
 | 
						|
    - name: Generate Vault configuration
 | 
						|
      template:
 | 
						|
        src: vault.hcl.j2
 | 
						|
        dest: /etc/vault.d/vault.hcl
 | 
						|
        owner: vault
 | 
						|
        group: vault
 | 
						|
        mode: '0640'
 | 
						|
      notify: restart vault
 | 
						|
 | 
						|
    - name: Create Vault systemd service
 | 
						|
      template:
 | 
						|
        src: vault.service.j2
 | 
						|
        dest: /etc/systemd/system/vault.service
 | 
						|
        owner: root
 | 
						|
        group: root
 | 
						|
        mode: '0644'
 | 
						|
      notify:
 | 
						|
        - reload systemd
 | 
						|
        - restart vault
 | 
						|
 | 
						|
    - name: Enable and start Vault service
 | 
						|
      systemd:
 | 
						|
        name: vault
 | 
						|
        enabled: yes
 | 
						|
        state: started
 | 
						|
        daemon_reload: yes
 | 
						|
 | 
						|
  handlers:
 | 
						|
    - name: reload systemd
 | 
						|
      systemd:
 | 
						|
        daemon_reload: yes
 | 
						|
 | 
						|
    - name: restart vault
 | 
						|
      systemd:
 | 
						|
        name: vault
 | 
						|
        state: restarted |