Files
homework_1/ansible/roles/selenoid/tasks/main.yml

69 lines
2.0 KiB
YAML

---
- name: Create Selenoid directory
ansible.builtin.file:
path: "{{ selenoid_dir }}"
state: directory
mode: "0755"
- name: Create logs directory
ansible.builtin.file:
path: "{{ selenoid_dir }}/{{ item }}"
state: directory
mode: "0777"
loop:
- logs
- name: Render browsers.json
ansible.builtin.template:
src: browsers.json.j2
dest: "{{ selenoid_dir }}/browsers.json"
mode: "0644"
- name: Render docker compose for Selenoid
ansible.builtin.template:
src: docker-compose.selenoid.yml.j2
dest: "{{ selenoid_dir }}/{{ selenoid_compose_file }}"
mode: "0644"
- name: Ensure default chrome version is in the configured versions list
ansible.builtin.assert:
that:
- (selenoid_chrome_versions | length) >= 2
- (selenoid_firefox_versions | length) >= 2
fail_msg: "Invalid Selenoid config: provide at least 2 chrome and 2 firefox versions"
- name: Check shared Docker network for grid stack
ansible.builtin.command:
cmd: docker network inspect {{ selenoid_container_network }}
register: shared_grid_network
changed_when: false
failed_when: false
- name: Create shared Docker network for grid stack
ansible.builtin.command:
cmd: docker network create {{ selenoid_container_network }}
when: shared_grid_network.rc != 0
- name: Stop previous Selenoid stack and remove orphans
ansible.builtin.command:
cmd: docker compose -f {{ selenoid_compose_file }} down --remove-orphans
chdir: "{{ selenoid_dir }}"
changed_when: false
- name: Pull required Chrome images for Selenoid
ansible.builtin.command:
cmd: "docker pull selenoid/vnc:chrome_{{ item }}"
loop: "{{ selenoid_chrome_versions }}"
changed_when: false
- name: Pull required Firefox images for Selenoid
ansible.builtin.command:
cmd: "docker pull selenoid/vnc:firefox_{{ item }}"
loop: "{{ selenoid_firefox_versions }}"
changed_when: false
- name: Start Selenoid stack
ansible.builtin.command:
cmd: docker compose -f {{ selenoid_compose_file }} up -d
chdir: "{{ selenoid_dir }}"