Fix the final 50ish casing linting errors
Signed-off-by: Ryan Lerch <rlerch@redhat.com>
This commit is contained in:
parent
e84914aa34
commit
dbdb0d9824
49 changed files with 140 additions and 140 deletions
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "bastion"
|
||||
|
||||
- name: make the boxen be real for real
|
||||
- name: Make the boxen be real for real
|
||||
hosts: bastion
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "batcave"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: batcave
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
# Once the instance exists, configure it.
|
||||
|
||||
- name: make bodhi-backend server system
|
||||
- name: Make bodhi-backend server system
|
||||
hosts: bodhi_backend:bodhi_backend_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -115,11 +115,11 @@
|
|||
user_sent_topics: "{{ bodhi_sent_topics }}"
|
||||
|
||||
tasks:
|
||||
- name: create secondary volume dir for stg bodhi
|
||||
- name: Create secondary volume dir for stg bodhi
|
||||
ansible.builtin.file: dest=/mnt/koji/vol state=directory owner=apache group=apache mode=0755
|
||||
tags: bodhi
|
||||
when: env == 'staging'
|
||||
- name: create symlink for stg/prod secondary volume
|
||||
- name: Create symlink for stg/prod secondary volume
|
||||
ansible.builtin.file: src=/mnt/fedora_koji_prod/koji dest=/mnt/koji/vol/prod state=link
|
||||
tags: bodhi
|
||||
when: env == 'staging'
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
vars:
|
||||
myhosts: "buildvm_osbuild_ppc64le:buildvm_osbuild_ppc64le_staging"
|
||||
|
||||
- name: make osbuild-worker
|
||||
- name: Make osbuild-worker
|
||||
hosts: buildvm_osbuild_ppc64le:buildvm_osbuild_ppc64le_staging
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
vars:
|
||||
myhosts: "buildvm:buildvm_stg:buildvm_aarch64:buildvm_ppc64le:buildvm_ppc64le_stg:buildvm_aarch64_stg:buildvm_s390x"
|
||||
|
||||
- name: make koji builder(s)
|
||||
- name: Make koji builder(s)
|
||||
hosts: buildvm:buildvm_stg:buildvm_aarch64:buildvm_ppc64le:buildvm_ppc64le_stg:buildvm_aarch64_stg:buildvm_s390x:buildvm_s390x_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -76,13 +76,13 @@
|
|||
- import_tasks: "{{ tasks_path }}/motd.yml"
|
||||
when: not inventory_hostname.startswith('bkernel') and env == 'production'
|
||||
|
||||
# - name: make sure kojid is running
|
||||
# - name: Make sure kojid is running
|
||||
# service: name=kojid state=started enabled=yes
|
||||
|
||||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: configure varnish cache
|
||||
- name: Configure varnish cache
|
||||
hosts: buildvm-s390x-24.s390.fedoraproject.org:buildvm-s390x-01.stg.s390.fedoraproject.org:buildvm-s390x-14.s390.fedoraproject.org
|
||||
tags:
|
||||
- varnish
|
||||
|
@ -100,7 +100,7 @@
|
|||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: configure sshfs on buildvm-s390x
|
||||
- name: Configure sshfs on buildvm-s390x
|
||||
hosts: buildvm-s390x-11.s390.fedoraproject.org:buildvm-s390x-12.s390.fedoraproject.org:buildvm-s390x-13.s390.fedoraproject.org
|
||||
tags:
|
||||
- sshfs
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "busgateway:busgateway_stg"
|
||||
|
||||
- name: dole out the generic configuration
|
||||
- name: Dole out the generic configuration
|
||||
hosts: busgateway:busgateway_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -34,7 +34,7 @@
|
|||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: dole out the service-specific config
|
||||
- name: Dole out the service-specific config
|
||||
hosts: busgateway:busgateway_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "centos_ipa_client_stg"
|
||||
|
||||
- name: make the boxes be realen
|
||||
- name: Make the boxes be realen
|
||||
hosts: centos_ipa_client_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "certgetter"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: certgetter
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -31,7 +31,7 @@
|
|||
tasks:
|
||||
- import_tasks: "{{ tasks_path }}/motd.yml"
|
||||
|
||||
- name: make sure certbot is installed
|
||||
- name: Make sure certbot is installed
|
||||
ansible.builtin.package: name=certbot state=installed
|
||||
|
||||
handlers:
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
vars:
|
||||
myhosts: "data_reports"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: data_reports
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "debuginfod:debuginfod_stg"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: debuginfod:debuginfod_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -33,45 +33,45 @@
|
|||
tasks:
|
||||
- import_tasks: "{{ tasks_path }}/motd.yml"
|
||||
|
||||
- name: install debuginfod
|
||||
- name: Install debuginfod
|
||||
ansible.builtin.package: name=elfutils-debuginfod state=present
|
||||
tags: debuginfod
|
||||
|
||||
- name: install sqlite for diagnostics
|
||||
- name: Install sqlite for diagnostics
|
||||
ansible.builtin.package: name=sqlite state=present
|
||||
tags: debuginfod
|
||||
|
||||
- name: install sqlite-analyzer for diagnostics
|
||||
- name: Install sqlite-analyzer for diagnostics
|
||||
ansible.builtin.package: name=sqlite-analyzer state=present
|
||||
tags: debuginfod
|
||||
|
||||
- name: install sqlite for diagnostics
|
||||
- name: Install sqlite for diagnostics
|
||||
ansible.builtin.package: name=sqlite state=present
|
||||
tags: debuginfod
|
||||
|
||||
- name: install rsync for data backups
|
||||
- name: Install rsync for data backups
|
||||
ansible.builtin.package: name=rsync state=present
|
||||
tags: debuginfod
|
||||
|
||||
- name: install debuginfod configuration
|
||||
- name: Install debuginfod configuration
|
||||
ansible.builtin.copy: src="{{ files }}/debuginfod/sysconfig.debuginfod" dest=/etc/sysconfig/debuginfod owner=root group=root mode=644
|
||||
tags: debuginfod
|
||||
notify:
|
||||
- restart debuginfod
|
||||
|
||||
- name: ensure systemd drop-in directory exists
|
||||
- name: Ensure systemd drop-in directory exists
|
||||
ansible.builtin.file: >
|
||||
dest=/etc/systemd/system/debuginfod.service.d
|
||||
state=directory
|
||||
tags: debuginfod
|
||||
|
||||
- name: install debuginfod systemd drop-in
|
||||
- name: Install debuginfod systemd drop-in
|
||||
tags: debuginfod
|
||||
ansible.builtin.copy: src="{{ files }}/debuginfod/debuginfod.service.d" dest=/etc/systemd/system/debuginfod.service.d/override.conf owner=root group=root mode=644
|
||||
notify:
|
||||
- restart debuginfod
|
||||
|
||||
- name: ensure debuginfod is enabled and started
|
||||
- name: Ensure debuginfod is enabled and started
|
||||
service:
|
||||
name: debuginfod
|
||||
state: started
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
vars:
|
||||
myhosts: "dns"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: dns
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
|
||||
- name: post-initial-steps
|
||||
- name: Post-initial-steps
|
||||
hosts: download
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -52,39 +52,39 @@
|
|||
tasks:
|
||||
- import_tasks: "{{ tasks_path }}/motd.yml"
|
||||
|
||||
- name: put in script for syncing fedora on download-ib01
|
||||
- name: Put in script for syncing fedora on download-ib01
|
||||
ansible.builtin.copy: src="{{ files }}/download/sync-up-downloads.sh.ib01" dest=/usr/local/bin/sync-up-downloads owner=root group=root mode=755
|
||||
when: inventory_hostname == 'download-ib01.fedoraproject.org'
|
||||
- name: put in script for syncing fedora-alt on download-ib01
|
||||
- name: Put in script for syncing fedora-alt on download-ib01
|
||||
ansible.builtin.copy: src="{{ files }}/download/sync-up-other.sh.ib01" dest=/usr/local/bin/sync-up-other owner=root group=root mode=755
|
||||
when: inventory_hostname == 'download-ib01.fedoraproject.org'
|
||||
- name: put in script for syncing centos on download-ib01
|
||||
- name: Put in script for syncing centos on download-ib01
|
||||
ansible.builtin.copy: src="{{ files }}/download/sync-up-centos.sh.ib01" dest=/usr/local/bin/sync-up-centos owner=root group=root mode=755
|
||||
when: inventory_hostname == 'download-ib01.fedoraproject.org'
|
||||
- name: put in cron job for syncing
|
||||
- name: Put in cron job for syncing
|
||||
ansible.builtin.copy: src="{{ files }}/download/download-sync.cron.ib01" dest=/etc/cron.d/download-sync owner=root group=root mode=644
|
||||
when: inventory_hostname == 'download-ib01.fedoraproject.org'
|
||||
- name: put in last sync scrypt for download-ib01
|
||||
- name: Put in last sync scrypt for download-ib01
|
||||
ansible.builtin.copy: src="{{ files}}/download/last-sync" dest=/usr/local/bin/last-sync mode=0755
|
||||
when: inventory_hostname == 'download-ib01.fedoraproject.org'
|
||||
- name: install bc so last-sync works.
|
||||
- name: Install bc so last-sync works.
|
||||
ansible.builtin.package: name=bc state=present
|
||||
when: inventory_hostname == 'download-ib01.fedoraproject.org'
|
||||
|
||||
- name: put in script for syncing on download-cc-rdu01
|
||||
- name: Put in script for syncing on download-cc-rdu01
|
||||
ansible.builtin.copy: src="{{ files }}/download/sync-up-downloads.sh.cc-rdu01" dest=/usr/local/bin/sync-up-downloads owner=root group=root mode=755
|
||||
when: inventory_hostname == 'download-cc-rdu01.fedoraproject.org'
|
||||
- name: put in script for syncing centos on download-cc-rdu01
|
||||
- name: Put in script for syncing centos on download-cc-rdu01
|
||||
ansible.builtin.copy: src="{{ files }}/download/sync-up-centos.sh.cc-rdu01" dest=/usr/local/bin/sync-up-centos owner=root group=root mode=755
|
||||
when: inventory_hostname == 'download-cc-rdu01.fedoraproject.org'
|
||||
- name: put in cron job for syncing on download-cc-rdu01
|
||||
- name: Put in cron job for syncing on download-cc-rdu01
|
||||
ansible.builtin.copy: src="{{ files }}/download/download-sync.cron.cc-rdu01" dest=/etc/cron.d/download-sync owner=root group=root mode=644
|
||||
when: inventory_hostname == 'download-cc-rdu01.fedoraproject.org'
|
||||
- name: put in last sync scrypt for download-cc-rdu01
|
||||
- name: Put in last sync scrypt for download-cc-rdu01
|
||||
ansible.builtin.copy: src="{{ files}}/download/last-sync" dest=/usr/local/bin/last-sync mode=0755
|
||||
when: inventory_hostname == 'download-cc-rdu01.fedoraproject.org'
|
||||
|
||||
- name: make a mnt/koji link
|
||||
- name: Make a mnt/koji link
|
||||
ansible.builtin.file: state=link src=/mnt/fedora_koji/koji dest=/mnt/koji
|
||||
when: datacenter == "iad2"
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "flatpak_cache"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: flatpak_cache
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
vars:
|
||||
myhosts: "github2fedmsg:github2fedmsg_stg"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: github2fedmsg:github2fedmsg_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -41,7 +41,7 @@
|
|||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: deploy service-specific config
|
||||
- name: Deploy service-specific config
|
||||
hosts: github2fedmsg:github2fedmsg_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "ipa:ipa_stg"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: ipa:ipa_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -35,7 +35,7 @@
|
|||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: deploy ipa itself
|
||||
- name: Deploy ipa itself
|
||||
hosts: ipa:ipa_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -91,7 +91,7 @@
|
|||
# - ipa/server
|
||||
# - config
|
||||
|
||||
- name: do base role once more to revert any resolvconf changes
|
||||
- name: Do base role once more to revert any resolvconf changes
|
||||
hosts: ipa:ipa_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
myhosts: "ipsilon:ipsilon_stg"
|
||||
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: ipsilon:ipsilon_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -44,7 +44,7 @@
|
|||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: deploy ipsilon itself
|
||||
- name: Deploy ipsilon itself
|
||||
hosts: ipsilon:ipsilon_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -66,7 +66,7 @@
|
|||
|
||||
# This next block configures IPA, it only needs to be run on one member of the cluster.
|
||||
# Run it after setting up Ipsilon because the host need to be declared in IPA already.
|
||||
- name: setup IPA
|
||||
- name: Setup IPA
|
||||
hosts: ipa[0]:ipa_stg[0]
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
# Once the instance exists, configure it.
|
||||
|
||||
- name: make koji_hub server system
|
||||
- name: Make koji_hub server system
|
||||
hosts: koji_stg:koji
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -129,7 +129,7 @@
|
|||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: configure sshfs target on koji01
|
||||
- name: Configure sshfs target on koji01
|
||||
hosts: koji01.iad2.fedoraproject.org:koji01.stg.iad2.fedoraproject.org
|
||||
tags:
|
||||
- sshfs
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "kojipkgs"
|
||||
|
||||
- name: make the boxen be real for real
|
||||
- name: Make the boxen be real for real
|
||||
hosts: kojipkgs
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "logging"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: logging
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -49,7 +49,7 @@
|
|||
# We exclude some dirs from restorecon on updates on logservers as they are very large
|
||||
# and it takes a long long time to run restorecon over them.
|
||||
#
|
||||
- name: exclude some directories from selinux relabeling on updates
|
||||
- name: Exclude some directories from selinux relabeling on updates
|
||||
ansible.builtin.copy: src="{{ files }}/logserver/fixfiles_exclude_dirs" dest=/etc/selinux/fixfiles_exclude_dirs owner=root mode=0644
|
||||
|
||||
handlers:
|
||||
|
@ -71,7 +71,7 @@
|
|||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: dole out the service-specific config
|
||||
- name: Dole out the service-specific config
|
||||
hosts: log01.iad2.fedoraproject.org
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -90,7 +90,7 @@
|
|||
- geoip
|
||||
|
||||
tasks:
|
||||
- name: install needed packages
|
||||
- name: Install needed packages
|
||||
ansible.builtin.package: name={{ item }} state=present
|
||||
with_items:
|
||||
- httpd
|
||||
|
@ -103,5 +103,5 @@
|
|||
- gnuplot
|
||||
- mod_auth_gssapi
|
||||
|
||||
- name: set domain_can_mmap_files so collectd works
|
||||
- name: Set domain_can_mmap_files so collectd works
|
||||
seboolean: name=domain_can_mmap_files state=yes persistent=yes
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
vars:
|
||||
myhosts: "mailman:mailman_stg"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: mailman_stg:mailman
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -45,18 +45,18 @@
|
|||
# Database setup
|
||||
#
|
||||
|
||||
- name: prepare setting up the database
|
||||
- name: Prepare setting up the database
|
||||
hosts: db01.iad2.fedoraproject.org:db01.stg.iad2.fedoraproject.org
|
||||
gather_facts: no
|
||||
user: root
|
||||
|
||||
tasks:
|
||||
- name: install psycopg2 for the postgresql ansible modules
|
||||
- name: Install psycopg2 for the postgresql ansible modules
|
||||
ansible.builtin.package: name=python3-psycopg2 state=present
|
||||
tags:
|
||||
- packages
|
||||
|
||||
- name: setup the database
|
||||
- name: Setup the database
|
||||
hosts: db01.iad2.fedoraproject.org:db01.stg.iad2.fedoraproject.org
|
||||
gather_facts: no
|
||||
become: yes
|
||||
|
@ -68,23 +68,23 @@
|
|||
|
||||
tasks:
|
||||
# mailman auto-updates its schema, there can only be one admin user
|
||||
- name: mailman DB user
|
||||
- name: Mailman DB user
|
||||
postgresql_user: name=mailmanadmin password={{ mailman_mm_db_pass }}
|
||||
- name: hyperkitty DB admin user
|
||||
- name: Hyperkitty DB admin user
|
||||
postgresql_user: name=hyperkittyadmin password={{ mailman_hk_admin_db_pass }}
|
||||
- name: hyperkitty DB user
|
||||
- name: Hyperkitty DB user
|
||||
postgresql_user: name=hyperkittyapp password={{ mailman_hk_db_pass }}
|
||||
- name: databases creation
|
||||
- name: Databases creation
|
||||
postgresql_db: name={{ item }} owner="{{ item }}admin" encoding=UTF-8
|
||||
with_items:
|
||||
- mailman
|
||||
- hyperkitty
|
||||
- name: test database creation
|
||||
- name: Test database creation
|
||||
postgresql_db: name=test_hyperkitty owner=hyperkittyadmin encoding=UTF-8
|
||||
|
||||
|
||||
# Real MM/HK-specific work
|
||||
- name: setup mailman and hyperkitty
|
||||
- name: Setup mailman and hyperkitty
|
||||
hosts: mailman_stg:mailman
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -102,7 +102,7 @@
|
|||
user_sent_topics: ^org\.fedoraproject\.{{ env_short }}\.mailman\..*
|
||||
|
||||
tasks:
|
||||
- name: install more needed packages
|
||||
- name: Install more needed packages
|
||||
ansible.builtin.package:
|
||||
state: present
|
||||
name:
|
||||
|
@ -110,11 +110,11 @@
|
|||
tags:
|
||||
- packages
|
||||
|
||||
# - name: easy access to the postgresql databases
|
||||
# - name: Easy access to the postgresql databases
|
||||
# ansible.builtin.template: src=$files/mailman/pgpass.j2 dest=/root/.pgpass
|
||||
# owner=root group=root mode=0600
|
||||
|
||||
- name: start services
|
||||
- name: Start services
|
||||
service: state=started enabled=yes name={{ item }}
|
||||
with_items:
|
||||
- httpd
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
# Once the instance exists, configure it.
|
||||
|
||||
- name: configure mariadb server system
|
||||
- name: Configure mariadb server system
|
||||
hosts: db03.stg.iad2.fedoraproject.org:db03.iad2.fedoraproject.org
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "memcached:memcached_stg"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: memcached:memcached_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
vars:
|
||||
myhosts: "nagios"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: nagios
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -49,7 +49,7 @@
|
|||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: deploy service-specific config (just for production)
|
||||
- name: Deploy service-specific config (just for production)
|
||||
hosts: nagios
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -68,7 +68,7 @@
|
|||
- { role: nagios_server }
|
||||
|
||||
tasks:
|
||||
- name: install some packages which arent in playbooks
|
||||
- name: Install some packages which arent in playbooks
|
||||
ansible.builtin.package:
|
||||
state: present
|
||||
name:
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
vars:
|
||||
myhosts: "oci_registry:oci_registry_stg"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: oci_registry:oci_registry_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -53,7 +53,7 @@
|
|||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: setup docker distribution registry
|
||||
- name: Setup docker distribution registry
|
||||
hosts: oci_registry:oci_registry_stg
|
||||
vars_files:
|
||||
- /srv/web/infra/ansible/vars/global.yml
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "openqa:openqa_lab"
|
||||
|
||||
- name: setup base openQA host
|
||||
- name: Setup base openQA host
|
||||
hosts: openqa:openqa_lab
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -33,7 +33,7 @@
|
|||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: configure fedora-messaging queues on openQA servers
|
||||
- name: Configure fedora-messaging queues on openQA servers
|
||||
hosts: openqa:openqa_lab
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -146,7 +146,7 @@
|
|||
tags: ['rabbit']
|
||||
when: "fedora_nightlies_amqp_queue is defined"
|
||||
|
||||
- name: set up openQA server data NFS mounts (staging)
|
||||
- name: Set up openQA server data NFS mounts (staging)
|
||||
hosts: openqa_lab
|
||||
|
||||
vars_files:
|
||||
|
@ -169,7 +169,7 @@
|
|||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: set up openQA server data NFS mounts (prod)
|
||||
- name: Set up openQA server data NFS mounts (prod)
|
||||
hosts: openqa
|
||||
|
||||
vars_files:
|
||||
|
@ -192,7 +192,7 @@
|
|||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: configure openQA
|
||||
- name: Configure openQA
|
||||
hosts: openqa:openqa_lab
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
vars:
|
||||
myhosts: "os_control:os_control_stg"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: os_control:os_control_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -33,17 +33,17 @@
|
|||
group: root
|
||||
mode: "0770"
|
||||
|
||||
- name: copy oc rpm
|
||||
- name: Copy oc rpm
|
||||
ansible.builtin.copy:
|
||||
src: /srv/web/infra/bigfiles/openshiftboot/oc-client/oc-client.rpm
|
||||
dest: /root/oc-client.rpm
|
||||
|
||||
- name: make sure oc-client is installed
|
||||
- name: Make sure oc-client is installed
|
||||
dnf:
|
||||
name: /root/oc-client.rpm
|
||||
state: installed
|
||||
|
||||
- name: copy the jobs-summary script
|
||||
- name: Copy the jobs-summary script
|
||||
ansible.builtin.copy:
|
||||
src: "{{ files }}/scripts/jobs-summary"
|
||||
dest: /usr/local/bin/jobs-summary
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
vars:
|
||||
myhosts: "os_proxies"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: os_proxies
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -30,10 +30,10 @@
|
|||
tasks:
|
||||
- import_tasks: "{{ tasks_path }}/motd.yml"
|
||||
|
||||
- name: install haproxy
|
||||
- name: Install haproxy
|
||||
ansible.builtin.package: name=haproxy state=present
|
||||
|
||||
- name: install haproxy config
|
||||
- name: Install haproxy config
|
||||
ansible.builtin.copy: src="{{ files }}/communishift/haproxy.cfg" dest=/etc/haproxy/haproxy.cfg
|
||||
|
||||
- name: Turn on certain selinux booleans so haproxy can bind to ports
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "pagure:pagure_stg"
|
||||
|
||||
- name: make the boxen be real for real
|
||||
- name: Make the boxen be real for real
|
||||
hosts: pagure:pagure_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -34,7 +34,7 @@
|
|||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: deploy pagure itself
|
||||
- name: Deploy pagure itself
|
||||
hosts: pagure:pagure_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
vars:
|
||||
myhosts: "people"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: people
|
||||
user: root
|
||||
gather_facts: yes
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
- import_tasks: "{{ tasks_path }}/yumrepos.yml"
|
||||
|
||||
- name: mount project volume
|
||||
- name: Mount project volume
|
||||
mount: >
|
||||
name=/project
|
||||
src=/dev/mapper/vg_vm-project
|
||||
|
@ -32,7 +32,7 @@
|
|||
tags:
|
||||
- mount
|
||||
|
||||
- name: mount srv volume
|
||||
- name: Mount srv volume
|
||||
mount: >
|
||||
name=/srv
|
||||
src=/dev/mapper/vg_vm-srv
|
||||
|
@ -44,10 +44,10 @@
|
|||
tags:
|
||||
- mount
|
||||
|
||||
- name: create /srv/home directory
|
||||
- name: Create /srv/home directory
|
||||
ansible.builtin.file: path=/srv/home state=directory owner=root group=root
|
||||
|
||||
- name: bind mount home volume
|
||||
- name: Bind mount home volume
|
||||
mount: >
|
||||
name=/home
|
||||
src=/srv/home
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "pkgs_stg:pkgs"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: pkgs_stg:pkgs
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -38,7 +38,7 @@
|
|||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
- name: setup users on pkgs
|
||||
- name: Setup users on pkgs
|
||||
hosts: pkgs_stg:pkgs
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -54,7 +54,7 @@
|
|||
when: env == "staging"
|
||||
## The above should be deleted when we rebuild pkgs02 in future.
|
||||
|
||||
- name: setup dist-git on the box
|
||||
- name: Setup dist-git on the box
|
||||
hosts: pkgs_stg:pkgs
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
# Once the instance exists, configure it.
|
||||
|
||||
- name: configure postgresql server system
|
||||
- name: Configure postgresql server system
|
||||
hosts: db-fas01.stg.iad2.fedoraproject.org:db01.stg.iad2.fedoraproject.org:db-koji01.stg.iad2.fedoraproject.org:db-fas01.iad2.fedoraproject.org:db01.iad2.fedoraproject.org:db-koji01.iad2.fedoraproject.org:db-openqa01.iad2.fedoraproject.org:db-datanommer01.stg.iad2.fedoraproject.org:db-datanommer02.iad2.fedoraproject.org:db-riscv-koji01.iad2.fedoraproject.org
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
vars:
|
||||
myhosts: "proxies:proxies_stg:!proxy05.fedoraproject.org:!cloud_aws"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: proxies_stg:proxies
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -54,7 +54,7 @@
|
|||
group: root
|
||||
mode: "0644"
|
||||
|
||||
- name: set ip_conntrack_max to a high value as the proxies deal with lots of connections
|
||||
- name: Set ip_conntrack_max to a high value as the proxies deal with lots of connections
|
||||
sysctl: name=net.nf_conntrack_max value=26214400 state=present sysctl_set=yes reload=yes
|
||||
|
||||
handlers:
|
||||
|
@ -137,7 +137,7 @@
|
|||
# If this is an initial deployment, we need the initial ticketkey
|
||||
# If it's not, doesn't hurt to copy it over again
|
||||
#
|
||||
- name: deploy ticket key
|
||||
- name: Deploy ticket key
|
||||
ansible.builtin.copy: src=/root/ticketkey_{{env}}.tkey dest=/etc/httpd/ticketkey_{{env}}.tkey
|
||||
owner=root group=root mode=0600
|
||||
notify:
|
||||
|
@ -147,11 +147,11 @@
|
|||
# If this is an initial deployment, make sure docs are synced over.
|
||||
# Do not count these as changed ever
|
||||
#
|
||||
- name: make sure docs are synced. This could take a very very very logtime to finish
|
||||
- name: Make sure docs are synced. This could take a very very very logtime to finish
|
||||
ansible.builtin.shell: /usr/local/bin/lock-wrapper docs-sync "/usr/local/bin/docs-rsync" >& /dev/null
|
||||
changed_when: false
|
||||
ignore_errors: true
|
||||
|
||||
- name: make sure selinux contexts are right on srv
|
||||
- name: Make sure selinux contexts are right on srv
|
||||
ansible.builtin.command: restorecon -R /srv
|
||||
changed_when: false
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "rabbitmq:rabbitmq_stg"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: rabbitmq:rabbitmq_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -189,7 +189,7 @@
|
|||
# this is how you include other task lists
|
||||
- import_tasks: "{{ tasks_path }}/motd.yml"
|
||||
|
||||
- name: install skopeo and buildah for container management
|
||||
- name: Install skopeo and buildah for container management
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- skopeo
|
||||
|
@ -197,7 +197,7 @@
|
|||
tags:
|
||||
- containerrebuild
|
||||
|
||||
- name: install ansible for container automated rebuilds
|
||||
- name: Install ansible for container automated rebuilds
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- ansible
|
||||
|
@ -205,7 +205,7 @@
|
|||
tags:
|
||||
- containerrebuild
|
||||
|
||||
- name: set releng user keytab
|
||||
- name: Set releng user keytab
|
||||
ansible.builtin.copy:
|
||||
src: "{{private}}/files/keytabs/{{env}}/releng"
|
||||
dest: /etc/krb5.releng.keytab
|
||||
|
@ -215,7 +215,7 @@
|
|||
tags:
|
||||
- containerrebuild
|
||||
|
||||
- name: copy releng ssh key for rebuild fedpkg/distgit pushes
|
||||
- name: Copy releng ssh key for rebuild fedpkg/distgit pushes
|
||||
ansible.builtin.copy:
|
||||
src: "{{private}}/files/releng/sshkeys/container-rebuild-{{env}}"
|
||||
dest: /etc/pki/releng
|
||||
|
@ -225,7 +225,7 @@
|
|||
tags:
|
||||
- containerrebuild
|
||||
|
||||
- name: place relengpush script for automatic rebuilds
|
||||
- name: Place relengpush script for automatic rebuilds
|
||||
ansible.builtin.copy:
|
||||
src: "{{files}}/releng/relengpush"
|
||||
dest: "/usr/local/bin/relengpush"
|
||||
|
@ -235,7 +235,7 @@
|
|||
tags:
|
||||
- containerrebuild
|
||||
|
||||
- name: place relengpush int script for automatic rebuilds
|
||||
- name: Place relengpush int script for automatic rebuilds
|
||||
ansible.builtin.copy:
|
||||
src: "{{files}}/releng/relengpush-int"
|
||||
dest: "/usr/local/bin/relengpush-int"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "secondary"
|
||||
|
||||
- name: setup secondary arch download server
|
||||
- name: Setup secondary arch download server
|
||||
hosts: secondary
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -65,13 +65,13 @@
|
|||
- koji
|
||||
- python3-productmd
|
||||
|
||||
- name: add create-filelist script from quick-fedora-mirror
|
||||
- name: Add create-filelist script from quick-fedora-mirror
|
||||
ansible.builtin.copy: src="{{ files }}/scripts/create-filelist.py2" dest=/usr/local/bin/create-filelist mode=0755
|
||||
|
||||
- name: add cron script to update fullfiletimelist
|
||||
- name: Add cron script to update fullfiletimelist
|
||||
ansible.builtin.copy: src="{{ files }}/scripts/update-fullfiletimelist" dest=/usr/local/bin/update-fullfiletimelist mode=0755
|
||||
|
||||
- name: add cron script to prune old logs at /srv/pub/alt/linuxsystemroles/logs
|
||||
- name: Add cron script to prune old logs at /srv/pub/alt/linuxsystemroles/logs
|
||||
ansible.builtin.copy: src="{{ files }}/scripts/linuxsystemroles-logs-clean" dest=/usr/local/bin/linuxsystemroles-logs-clean mode=0755
|
||||
|
||||
- name: Update fullfiletimelist job
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
vars:
|
||||
myhosts: "sign_bridge"
|
||||
|
||||
- name: configure sign bridge server
|
||||
- name: Configure sign bridge server
|
||||
hosts: sign_bridge
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
vars:
|
||||
myhosts: "smtp_auth"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: smtp_auth
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
vars:
|
||||
myhosts: "smtp_mm"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: smtp_mm
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
vars:
|
||||
myhosts: "sundries:sundries_stg"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: sundries:sundries_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "tang"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: tang
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "torrent"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: torrent
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "value:value_stg"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: value:value_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
vars:
|
||||
myhosts: "wiki:wiki_stg"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: wiki:wiki_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars:
|
||||
myhosts: "zabbix_stg:zabbix"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: zabbix_stg:zabbix
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
vars:
|
||||
myhosts: "cloud-noc01.fedorainfracloud.org"
|
||||
|
||||
- name: make cloud noc hardware
|
||||
- name: Make cloud noc hardware
|
||||
hosts: cloud-noc01.fedorainfracloud.org
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -31,7 +31,7 @@
|
|||
tasks:
|
||||
- import_tasks: "{{ tasks_path }}/motd.yml"
|
||||
|
||||
- name: check if ntpd port is already known by selinux
|
||||
- name: Check if ntpd port is already known by selinux
|
||||
ansible.builtin.shell: semanage port -l | grep ntp
|
||||
register: ntp_selinux_port
|
||||
check_mode: no
|
||||
|
@ -41,7 +41,7 @@
|
|||
- config
|
||||
- selinux
|
||||
|
||||
- name: allow alternate ntpd port
|
||||
- name: Allow alternate ntpd port
|
||||
ansible.builtin.command: semanage port -a -t ntp_port_t -p tcp 124
|
||||
when: '"124" not in ntp_selinux_port'
|
||||
failed_when: false
|
||||
|
@ -49,7 +49,7 @@
|
|||
- config
|
||||
- selinux
|
||||
|
||||
- name: allow alternate ntpd port
|
||||
- name: Allow alternate ntpd port
|
||||
ansible.builtin.command: semanage port -a -t ntp_port_t -p udp 124
|
||||
when: '"124" not in ntp_selinux_port'
|
||||
failed_when: false
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
vars:
|
||||
myhosts: "noc-cc01.rdu-cc.fedoraproject.org"
|
||||
|
||||
- name: make cloud noc hardware
|
||||
- name: Make cloud noc hardware
|
||||
hosts: noc-cc01.rdu-cc.fedoraproject.org
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
@ -33,7 +33,7 @@
|
|||
tasks:
|
||||
- import_tasks: "{{ tasks_path }}/motd.yml"
|
||||
|
||||
- name: install some packages which arent in playbooks
|
||||
- name: Install some packages which arent in playbooks
|
||||
ansible.builtin.package:
|
||||
state: present
|
||||
name:
|
||||
|
@ -41,7 +41,7 @@
|
|||
- tcpdump
|
||||
- dhcp-server
|
||||
|
||||
- name: check if ntpd port is already known by selinux
|
||||
- name: Check if ntpd port is already known by selinux
|
||||
ansible.builtin.shell: semanage port -l | grep ntp
|
||||
register: ntp_selinux_port
|
||||
check_mode: no
|
||||
|
@ -51,7 +51,7 @@
|
|||
- config
|
||||
- selinux
|
||||
|
||||
- name: allow alternate ntpd port
|
||||
- name: Allow alternate ntpd port
|
||||
ansible.builtin.command: semanage port -a -t ntp_port_t -p tcp 124
|
||||
when: '"124" not in ntp_selinux_port'
|
||||
failed_when: false
|
||||
|
@ -59,7 +59,7 @@
|
|||
- config
|
||||
- selinux
|
||||
|
||||
- name: allow alternate ntpd port
|
||||
- name: Allow alternate ntpd port
|
||||
ansible.builtin.command: semanage port -a -t ntp_port_t -p udp 124
|
||||
when: '"124" not in ntp_selinux_port'
|
||||
failed_when: false
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
vars:
|
||||
myhosts: "autosign_stg"
|
||||
|
||||
- name: make the box be real
|
||||
- name: Make the box be real
|
||||
hosts: autosign:autosign_stg
|
||||
user: root
|
||||
gather_facts: true
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
tags:
|
||||
- fedora-messaging
|
||||
|
||||
- name: "create key/cert directory"
|
||||
- name: "Create key/cert directory"
|
||||
ansible.builtin.file: path=/etc/pki/rabbitmq/{{ item.username }}/
|
||||
owner={{ item.username }} group={{ item.username }}
|
||||
mode=0700 state=directory
|
||||
|
@ -19,7 +19,7 @@
|
|||
tags:
|
||||
- fedora-messaging
|
||||
|
||||
- name: "copy fedora messaging key"
|
||||
- name: "Copy fedora messaging key"
|
||||
ansible.builtin.copy: src={{ private }}/files/rabbitmq/{{ env }}/pki/private/{{ item.key }}{% if env == 'staging' %}.stg{% endif %}.key
|
||||
dest=/etc/pki/rabbitmq/{{ item.username }}/{{ item.key }}.key
|
||||
owner={{ item.username }} group=root mode=0600
|
||||
|
@ -27,7 +27,7 @@
|
|||
tags:
|
||||
- fedora-messaging
|
||||
|
||||
- name: "copy fedora messaging certificate"
|
||||
- name: "Copy fedora messaging certificate"
|
||||
ansible.builtin.copy: src={{ private }}/files/rabbitmq/{{ env }}/pki/issued/{{ item.key }}{% if env == 'staging' %}.stg{% endif %}.crt
|
||||
dest=/etc/pki/rabbitmq/{{ item.username }}/{{ item.key }}.crt
|
||||
owner={{ item.username }} group=root mode=0644
|
||||
|
@ -35,7 +35,7 @@
|
|||
tags:
|
||||
- fedora-messaging
|
||||
|
||||
- name: "copy fedora messaging ca.crt for readers"
|
||||
- name: "Copy fedora messaging ca.crt for readers"
|
||||
ansible.builtin.copy: src={{ private }}/files/rabbitmq/{{ env }}/pki/ca.crt
|
||||
dest=/etc/pki/rabbitmq/{{ item.username }}/ca.crt
|
||||
owner={{ item.username }} group=root mode=0644
|
||||
|
@ -43,7 +43,7 @@
|
|||
tags:
|
||||
- fedora-messaging
|
||||
|
||||
- name: "install the toml configuration file"
|
||||
- name: "Install the toml configuration file"
|
||||
ansible.builtin.template: src="messaging.toml.j2" dest="/etc/fedora-messaging/{{ item.username }}.toml"
|
||||
owner=root group=root mode=644
|
||||
vars:
|
||||
|
|
|
@ -11,5 +11,5 @@
|
|||
ansible.builtin.command: "/root/bin/oc apply -f /root/ocp4/openshift-apps/firmitas/buildconfig.yml"
|
||||
|
||||
# Start a build
|
||||
- name: "oc start-build {{ firmitas_application_name }}-build"
|
||||
- name: "Run oc start-build {{ firmitas_application_name }}-build"
|
||||
ansible.builtin.command: "/root/bin/oc start-build {{ firmitas_application_name }}-build -n {{ firmitas_namespace }}"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue