98 lines
2.4 KiB
YAML
98 lines
2.4 KiB
YAML
---
|
|
# file: roles/step-ca/tasks/main.yml
|
|
|
|
- name: Create step-ca base directory
|
|
ansible.builtin.file:
|
|
path: "{{ stepca_base_dir }}"
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
|
|
- name: Create step-ca data directory
|
|
ansible.builtin.file:
|
|
path: "{{ stepca_data_dir }}"
|
|
state: directory
|
|
owner: "1000"
|
|
group: "1000"
|
|
mode: "0755"
|
|
|
|
- name: Create Docker network for step-ca
|
|
community.docker.docker_network:
|
|
name: "{{ stepca_docker_network }}"
|
|
state: present
|
|
|
|
- name: Deploy step-ca compose file
|
|
ansible.builtin.template:
|
|
src: compose.yaml.j2
|
|
dest: "{{ stepca_base_dir }}/compose.yaml"
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
notify: restart step-ca
|
|
|
|
- name: Deploy step-ca environment file
|
|
ansible.builtin.template:
|
|
src: env.j2
|
|
dest: "{{ stepca_base_dir }}/.env"
|
|
owner: root
|
|
group: root
|
|
mode: "0600"
|
|
no_log: true
|
|
notify: restart step-ca
|
|
|
|
- name: Create step-ca secrets directory
|
|
ansible.builtin.file:
|
|
path: "{{ stepca_data_dir }}/secrets"
|
|
state: directory
|
|
owner: "1000"
|
|
group: "1000"
|
|
mode: "0700"
|
|
|
|
- name: Write CA password file
|
|
ansible.builtin.copy:
|
|
content: "{{ stepca_ca_password }}"
|
|
dest: "{{ stepca_data_dir }}/secrets/password"
|
|
owner: "1000"
|
|
group: "1000"
|
|
mode: "0600"
|
|
no_log: true
|
|
|
|
- name: Check if step-ca is already initialized
|
|
ansible.builtin.stat:
|
|
path: "{{ stepca_data_dir }}/config/ca.json"
|
|
register: stepca_config
|
|
|
|
- name: Initialize step-ca (first run only)
|
|
when: not stepca_config.stat.exists
|
|
block:
|
|
- name: Run step-ca initialization
|
|
community.docker.docker_container:
|
|
name: "{{ stepca_container_name }}-init"
|
|
image: "{{ stepca_image }}:{{ stepca_image_tag }}"
|
|
command: >-
|
|
step ca init
|
|
--name "{{ stepca_ca_name }}"
|
|
--dns "{{ stepca_dns_names }}"
|
|
--address ":{{ stepca_listen_port }}"
|
|
--provisioner "admin"
|
|
--password-file /home/step/secrets/password
|
|
--ssh
|
|
--remote-management
|
|
volumes:
|
|
- "{{ stepca_data_dir }}:/home/step"
|
|
state: started
|
|
detach: false
|
|
cleanup: true
|
|
register: stepca_init
|
|
|
|
- name: Display CA fingerprint
|
|
ansible.builtin.debug:
|
|
msg: "{{ stepca_init.container.Output }}"
|
|
when: stepca_init is changed
|
|
|
|
- name: Start step-ca
|
|
community.docker.docker_compose_v2:
|
|
project_src: "{{ stepca_base_dir }}"
|
|
state: present
|