hw4: finalize selenoid and ansible workflow with citrus tests
This commit is contained in:
37
ansible/roles/ggr_gateway/tasks/main.yml
Normal file
37
ansible/roles/ggr_gateway/tasks/main.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
- name: Create GGR directory structure
|
||||
ansible.builtin.file:
|
||||
path: "{{ ggr_dir }}/{{ item }}"
|
||||
state: directory
|
||||
mode: "0755"
|
||||
loop:
|
||||
- quota
|
||||
- nginx
|
||||
|
||||
- name: Render GGR quota file
|
||||
ansible.builtin.template:
|
||||
src: quota.xml.j2
|
||||
dest: "{{ ggr_dir }}/quota/{{ ggr_quota_name }}.xml"
|
||||
mode: "0644"
|
||||
|
||||
- name: Render nginx config
|
||||
ansible.builtin.template:
|
||||
src: nginx.conf.j2
|
||||
dest: "{{ ggr_dir }}/nginx/default.conf"
|
||||
mode: "0644"
|
||||
|
||||
- name: Render docker compose for GGR gateway
|
||||
ansible.builtin.template:
|
||||
src: docker-compose.ggr.yml.j2
|
||||
dest: "{{ ggr_dir }}/{{ ggr_compose_file }}"
|
||||
mode: "0644"
|
||||
|
||||
- name: Stop previous GGR gateway stack and remove orphans
|
||||
ansible.builtin.command:
|
||||
cmd: docker compose -f {{ ggr_compose_file }} down --remove-orphans
|
||||
chdir: "{{ ggr_dir }}"
|
||||
changed_when: false
|
||||
|
||||
- name: Start GGR gateway stack
|
||||
ansible.builtin.command:
|
||||
cmd: docker compose -f {{ ggr_compose_file }} up -d --force-recreate
|
||||
chdir: "{{ ggr_dir }}"
|
||||
@@ -0,0 +1,46 @@
|
||||
services:
|
||||
ggr:
|
||||
image: "{{ ggr_image }}"
|
||||
container_name: ggr
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "{{ ggr_gateway_port }}:4444"
|
||||
volumes:
|
||||
- "./quota:/etc/grid-router/quota:ro"
|
||||
command:
|
||||
- "-listen"
|
||||
- ":4444"
|
||||
- "-quotaDir"
|
||||
- "/etc/grid-router/quota"
|
||||
- "-guests-allowed"
|
||||
|
||||
ggr-ui:
|
||||
image: "{{ ggr_ui_image }}"
|
||||
container_name: ggr-ui
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "{{ ggr_ui_public_port }}:8888"
|
||||
volumes:
|
||||
- "./quota:/etc/grid-router/quota:ro"
|
||||
command:
|
||||
- "-listen"
|
||||
- ":8888"
|
||||
- "-quota-dir"
|
||||
- "/etc/grid-router/quota"
|
||||
|
||||
nginx:
|
||||
image: "{{ nginx_image }}"
|
||||
container_name: grid-nginx
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- ggr
|
||||
- ggr-ui
|
||||
ports:
|
||||
- "{{ ggr_nginx_public_port }}:80"
|
||||
volumes:
|
||||
- "./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro"
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: "{{ selenoid_container_network }}"
|
||||
external: true
|
||||
53
ansible/roles/ggr_gateway/templates/nginx.conf.j2
Normal file
53
ansible/roles/ggr_gateway/templates/nginx.conf.j2
Normal file
@@ -0,0 +1,53 @@
|
||||
server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
|
||||
location /ws/ {
|
||||
proxy_pass http://selenoid:4444/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
location /vnc/ {
|
||||
proxy_pass http://selenoid:4444/vnc/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
location /wd/hub/ {
|
||||
proxy_pass http://ggr:4444/wd/hub/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
location /ggr/ {
|
||||
proxy_pass http://ggr-ui:8888/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_pass http://selenoid-ui:8080/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
}
|
||||
21
ansible/roles/ggr_gateway/templates/quota.xml.j2
Normal file
21
ansible/roles/ggr_gateway/templates/quota.xml.j2
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<qa:browsers xmlns:qa="urn:config.gridrouter.qatools.ru">
|
||||
<browser name="chrome" defaultVersion="{{ selenoid_chrome_versions | first }}">
|
||||
{% for version in selenoid_chrome_versions %}
|
||||
<version number="{{ version }}">
|
||||
<region name="default">
|
||||
<host name="{{ ggr_selenoid_host_override | default(ansible_host | default(inventory_hostname)) }}" port="{{ selenoid_host_port }}" count="{{ selenoid_limit }}"/>
|
||||
</region>
|
||||
</version>
|
||||
{% endfor %}
|
||||
</browser>
|
||||
<browser name="firefox" defaultVersion="{{ selenoid_firefox_versions | first }}">
|
||||
{% for version in selenoid_firefox_versions %}
|
||||
<version number="{{ version }}">
|
||||
<region name="default">
|
||||
<host name="{{ ggr_selenoid_host_override | default(ansible_host | default(inventory_hostname)) }}" port="{{ selenoid_host_port }}" count="{{ selenoid_limit }}"/>
|
||||
</region>
|
||||
</version>
|
||||
{% endfor %}
|
||||
</browser>
|
||||
</qa:browsers>
|
||||
Reference in New Issue
Block a user