feat(redis): add ansible role
This commit was merged in pull request #1.
	This commit is contained in:
		
							
								
								
									
										26
									
								
								roles/redis/tasks/deploy-docker.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								roles/redis/tasks/deploy-docker.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Ensure container image '{{ redis_container_image }}' is {{ redis_state }}
 | 
			
		||||
  community.docker.docker_image:
 | 
			
		||||
    name: "{{ redis_container_image }}"
 | 
			
		||||
    state: "{{ redis_state }}"
 | 
			
		||||
    source: "{{ redis_container_image_source }}"
 | 
			
		||||
    force_source: "{{ redis_container_image_force_source }}"
 | 
			
		||||
  register: redis_container_image_info
 | 
			
		||||
  until: redis_container_image_info is success
 | 
			
		||||
  retries: 5
 | 
			
		||||
  delay: 3
 | 
			
		||||
 | 
			
		||||
- name: Ensure container '{{ redis_container_name }}' is {{ redis_container_state }}
 | 
			
		||||
  community.docker.docker_container:
 | 
			
		||||
    name: "{{ redis_container_name }}"
 | 
			
		||||
    image: "{{ redis_container_image }}"
 | 
			
		||||
    env: "{{ redis_container_env | default(omit, true) }}"
 | 
			
		||||
    user: "{{ redis_container_user }}"
 | 
			
		||||
    ports: "{{ redis_container_ports | default(omit, true) }}"
 | 
			
		||||
    labels: "{{ redis_container_labels | default(omit, true) }}"
 | 
			
		||||
    command: "{{ redis_container_command }}"
 | 
			
		||||
    volumes: "{{ redis_container_merged_volumes }}"
 | 
			
		||||
    networks: "{{ redis_container_networks | default(omit, true) }}"
 | 
			
		||||
    etc_hosts: "{{ redis_container_etc_hosts | default(omit, true) }}"
 | 
			
		||||
    dns_servers: "{{ redis_container_dns_servers | default(omit, true) }}"
 | 
			
		||||
    state: "{{ redis_container_state }}"
 | 
			
		||||
							
								
								
									
										68
									
								
								roles/redis/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								roles/redis/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,68 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Ensure state is valid
 | 
			
		||||
  ansible.builtin.fail:
 | 
			
		||||
    msg: >-2
 | 
			
		||||
      Unsupported state '{{ redis_state }}'.
 | 
			
		||||
      Supported states are {{ redis_states | join(', ') }}
 | 
			
		||||
  when: redis_state not in redis_states
 | 
			
		||||
 | 
			
		||||
- name: Ensure deployment method is valid
 | 
			
		||||
  ansible.builtin.fail:
 | 
			
		||||
    msg: >-2
 | 
			
		||||
      Unsupported deployment method '{{ redis_deployment_method }}'!
 | 
			
		||||
      Supported methods are {{ redis_deployment_method | join(', ') }}
 | 
			
		||||
  when: redis_deployment_method not in redis_deployment_methods
 | 
			
		||||
 | 
			
		||||
- name: Ensure redis user '{{ redis_user }}' is {{ redis_state }}
 | 
			
		||||
  ansible.builtin.user:
 | 
			
		||||
    name: "{{ redis_user }}"
 | 
			
		||||
    state: "{{ redis_state }}"
 | 
			
		||||
    system: "{{ redis_user_system }}"
 | 
			
		||||
    create_home: "{{ redis_user_create_home }}"
 | 
			
		||||
    groups: "{{ redis_user_groups | default(omit, true) }}"
 | 
			
		||||
    append: "{{ redis_user_append_groups | default(omit, true) }}"
 | 
			
		||||
  register: redis_user_info
 | 
			
		||||
 | 
			
		||||
- name: Ensure redis config file '{{ redis_config_file }}' is {{ redis_state }}
 | 
			
		||||
  ansible.builtin.file:
 | 
			
		||||
    path: "{{ redis_config_file }}"
 | 
			
		||||
    state: "{{ redis_state }}"
 | 
			
		||||
  when: redis_state == 'absent'
 | 
			
		||||
 | 
			
		||||
- name: Ensure redis host directories are {{ redis_state }}
 | 
			
		||||
  ansible.builtin.file:
 | 
			
		||||
    path: "{{ path.name }}"
 | 
			
		||||
    state: >-2
 | 
			
		||||
      {{ (redis_state == 'present') | ternary('directory', 'absent') }}
 | 
			
		||||
    owner: "{{ path.owner | default(redis_run_user_id) }}"
 | 
			
		||||
    group: "{{ path.group | default(redis_run_group_id) }}"
 | 
			
		||||
    mode: "{{ path.mode | default('0755') }}"
 | 
			
		||||
  loop:
 | 
			
		||||
    - name: "{{ redis_config_path }}"
 | 
			
		||||
    - name: "{{ redis_data_path }}"
 | 
			
		||||
  loop_control:
 | 
			
		||||
    loop_var: "path"
 | 
			
		||||
    label: "{{ path.name }}"
 | 
			
		||||
 | 
			
		||||
- name: Ensure redis config file '{{ redis_config_file }}' is {{ redis_state }}
 | 
			
		||||
  ansible.builtin.copy:
 | 
			
		||||
    content: |+2
 | 
			
		||||
      {% for tuple in (redis_merged_config | dict2items) %}
 | 
			
		||||
      {% if tuple.value is string  or tuple.value is number %}
 | 
			
		||||
      {{ tuple.key }} {{ tuple.value }}
 | 
			
		||||
      {% else %}
 | 
			
		||||
      {% for value in tuple.value %}
 | 
			
		||||
      {{ tuple.key }} {{ value }}
 | 
			
		||||
      {% endfor %}
 | 
			
		||||
      {% endif %}
 | 
			
		||||
      {% endfor %}
 | 
			
		||||
    dest: "{{ redis_config_file }}"
 | 
			
		||||
    owner: "{{ redis_run_user_id }}"
 | 
			
		||||
    group: "{{ redis_run_group_id }}"
 | 
			
		||||
    mode: "0640"
 | 
			
		||||
  when: redis_state == 'present'
 | 
			
		||||
  notify: redis-restart
 | 
			
		||||
 | 
			
		||||
- name: Deploy redis using {{ redis_deployment_method }}
 | 
			
		||||
  ansible.builtin.include_tasks:
 | 
			
		||||
    file: "deploy-{{ redis_deployment_method }}.yml"
 | 
			
		||||
		Reference in New Issue
	
	Block a user