diff --git a/inventory/group_vars/resultsdb-prod b/inventory/group_vars/resultsdb-prod new file mode 100644 index 0000000000..2201a7e339 --- /dev/null +++ b/inventory/group_vars/resultsdb-prod @@ -0,0 +1,29 @@ +--- +# common items for the releng-* boxes +lvm_size: 50000 +mem_size: 4096 +num_cpus: 4 +# for systems that do not match the above - specify the same parameter in +# the host_vars/$hostname file + +tcp_ports: [ 80, 443, "{{ resultsdb_db_port }}" ] +fas_client_groups: sysadmin-qa +nrpe_procs_warn: 250 +nrpe_procs_crit: 300 + +virt_install_command: /usr/sbin/virt-install -n {{ inventory_hostname }} -r {{ mem_size }} + --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }} + --vcpus={{ num_cpus }} -l {{ ks_repo }} -x + "ksdevice=eth0 ks={{ ks_url }} console=tty0 console=ttyS0 + hostname={{ inventory_hostname }} nameserver={{ dns }} + ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none" + --network=bridge=br0,model=virtio --autostart --noautoconsole + +deployment_type: prod +resultsdb_db_host: db-qa01.qa.fedoraproject.org +resultsdb_db_port: 5432 +resultsdb_endpoint: '/resultsdb_api' +resultsdb_fe_endpoint: '/resultsdb' +resultsdb_db_name: resultsdb +allowed_hosts: + - 10.5.124 diff --git a/inventory/group_vars/taskotron-prod b/inventory/group_vars/taskotron-prod new file mode 100644 index 0000000000..676e7f7fb1 --- /dev/null +++ b/inventory/group_vars/taskotron-prod @@ -0,0 +1,27 @@ +--- +grokmirror_basedir: /var/lib/git/mirror +grokmirror_user: grokmirror +grokmirror_repos: + - { name: fedoraqa/rpmlint, url: 'https://bitbucket.org/fedoraqa/task-rpmlint.git'} + - { name: fedoraqa/depcheck, url: 'https://bitbucket.org/fedoraqa/task-depcheck.git'} + - { name: fedoraqa/upgradepath, url: 'https://bitbucket.org/fedoraqa/task-upgradepath.git'} +settings_dir: /etc/taskotron +buildmaster_db_host: db-qa01.qa.fedoraproject.org +buildmaster_db_name: buildmaster +buildmaster_template: taskotron.master.cfg.j2 +buildmaster_endpoint: taskmaster +buildslave_ssh_pubkey: '' +buildslave_port: 9989 +cgit_root_title: "Taskotron Git Mirror" +buildmaster_dir: /home/buildmaster/master +buildslave_dir: /home/buildslave/slave +master_dir: /home/buildmaster/master +master_user: buildmaster +external_hostname: taskotron.fedoraproject.org +resultsdb_url: http://resultsdb01.qa.fedoraproject.org/resultsdb/api/v1.0 +resultsdb_frontend_url: http://resultsdb01.qa.fedoraproject.org/ +resultsdb_external_url: https://taskotron.fedoraproject.org/resultsdb/ +resultsdb_endpoint: resultsdb +landingpage_title: "Taskotron" +deployment_type: prod +tcp_ports: [ 80, 443, "{{ buildslave_port }}" ] diff --git a/inventory/host_vars/resultsdb01.qa.fedoraproject.org b/inventory/host_vars/resultsdb01.qa.fedoraproject.org new file mode 100644 index 0000000000..1581188782 --- /dev/null +++ b/inventory/host_vars/resultsdb01.qa.fedoraproject.org @@ -0,0 +1,10 @@ +--- +nm: 255.255.255.0 +gw: 10.5.124.254 +dns: 10.5.126.21 +ks_url: http://10.5.126.23/repo/rhel/ks/kvm-fedora-20 +ks_repo: http://10.5.126.23/pub/fedora/linux/releases/20/Fedora/x86_64/os/ +volgroup: /dev/VirtGuests +eth0_ip: 10.5.124.207 +vmhost: virthost-comm02.qa.fedoraproject.org +datacenter: phx2 diff --git a/inventory/host_vars/taskotron01.qa.fedoraproject.org b/inventory/host_vars/taskotron01.qa.fedoraproject.org new file mode 100644 index 0000000000..6beb400779 --- /dev/null +++ b/inventory/host_vars/taskotron01.qa.fedoraproject.org @@ -0,0 +1,43 @@ +--- +nm: 255.255.255.0 +gw: 10.5.124.254 +dns: 10.5.126.21 +ks_url: http://10.5.126.23/repo/rhel/ks/kvm-fedora-20 +ks_repo: http://10.5.126.23/pub/fedora/linux/releases/20/Fedora/x86_64/os/ +volgroup: /dev/Guests00 +eth0_ip: 10.5.124.206 +vmhost: virthost-comm01.qa.fedoraproject.org +datacenter: phx2 +fas_client_groups: sysadmin-qa,sysadmin-main + +# default virt install command is for a single nic-device +# define in another group file for more nics (see buildvm) +virt_install_command: /usr/sbin/virt-install -n {{ inventory_hostname }} -r {{ mem_size }} + --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }} + --vcpus={{ num_cpus }} -l {{ ks_repo }} -x + "ks={{ ks_url }} ip={{ eth0_ip }} netmask={{ nm }} + gateway={{ gw }} dns={{ dns }} console=tty0 console=ttyS0 + hostname={{ inventory_hostname }}" + --network=bridge=br0 --autostart --noautoconsole + +public_hostname: taskotron.fedoraproject.org +fake_fedorainfra_endpoint: fakefedorainfra +buildmaster: 10.5.124.206 + +buildslaves: + - taskotron-client11 + - taskotron-client12 + - taskotron-client13 + - taskotron-client14 + - taskotron-client19 + - taskotron-client20 + - taskotron-client21 +i386_buildslaves: + - taskotron-client12 + - taskotron-client14 + - taskotron-client19 +x86_64_buildslaves: + - taskotron-client11 + - taskotron-client13 + - taskotron-client20 + - taskotron-client21 diff --git a/playbooks/groups/resultsdb-prod.yml b/playbooks/groups/resultsdb-prod.yml new file mode 100644 index 0000000000..c1f555a1d5 --- /dev/null +++ b/playbooks/groups/resultsdb-prod.yml @@ -0,0 +1,55 @@ +--- +# create a new resultsdb production server +# NOTE: make sure there is room/space for this server on the vmhost +# NOTE: most of these vars_path come from group_vars/mirrorlist or from hostvars + +- name: make resultsdb production + hosts: resultsdb-prod + user: root + gather_facts: False + accelerate: "{{ accelerated }}" + + vars_files: + - /srv/web/infra/ansible/vars/global.yml + - "{{ private }}/vars.yml" + - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml + + tasks: + - include: "{{ tasks }}/virt_instance_create.yml" + + handlers: + - include: "{{ handlers }}/restart_services.yml" + +- name: make the box be real + hosts: resultsdb-prod + user: root + gather_facts: True + accelerate: "{{ accelerated }}" + + vars_files: + - /srv/web/infra/ansible/vars/global.yml + - "{{ private }}/vars.yml" + - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml + + roles: + - { role: base, tags:['base'] } + - { role: rkhunter, tags:['rkhunter'] } + - { role: nagios_client, tags:['nagios_client'] } + - hosts + - { role: fas_client, tags:['fas_client'] } + - { role: collectd/base, tags:['collectd_base'] } + - { role: yum-cron, tags:['yumcron'] } + - { role: sudo, tags:['sudo'] } + - { role: taskotron/resultsdb-backend, tags: ['resultsdb-be'] } + - { role: taskotron/resultsdb-frontend, tags: ['resultsdb-fe'] } + + tasks: + # this is how you include other task lists + - include: "{{ tasks }}/yumrepos.yml" + - include: "{{ tasks }}/2fa_client.yml" + - include: "{{ tasks }}/motd.yml" + + handlers: + - include: "{{ handlers }}/restart_services.yml" + + diff --git a/playbooks/groups/taskotron-prod.yml b/playbooks/groups/taskotron-prod.yml new file mode 100644 index 0000000000..0ea772d0a2 --- /dev/null +++ b/playbooks/groups/taskotron-prod.yml @@ -0,0 +1,75 @@ +--- +# create a new taskotron production server +# NOTE: make sure there is room/space for this server on the vmhost +# NOTE: most of these vars_path come from group_vars/mirrorlist or from hostvars + +- name: make taskotron production + hosts: taskotron-prod + user: root + gather_facts: False + accelerate: "{{ accelerated }}" + + vars_files: + - /srv/web/infra/ansible/vars/global.yml + - "{{ private }}/vars.yml" + - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml + + tasks: + - include: "{{ tasks }}/virt_instance_create.yml" + + handlers: + - include: "{{ handlers }}/restart_services.yml" + +- name: make the box be real + hosts: taskotron-prod + user: root + gather_facts: True + accelerate: "{{ accelerated }}" + + vars_files: + - /srv/web/infra/ansible/vars/global.yml + - "{{ private }}/vars.yml" + - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml + + roles: + - { role: base, tags:['base'] } + - { role: rkhunter, tags:['rkhunter'] } + - { role: nagios_client, tags:['nagios_client'] } + - hosts + - { role: fas_client, tags:['fas_client'] } + - { role: collectd/base, tags:['collectd_base'] } + - { role: yum-cron, tags:['yumcron'] } + - { role: sudo, tags:['sudo'] } + + tasks: + # this is how you include other task lists + - include: "{{ tasks }}/yumrepos.yml" + - include: "{{ tasks }}/2fa_client.yml" + - include: "{{ tasks }}/motd.yml" + - include: "{{ tasks }}/apache.yml" + + handlers: + - include: "{{ handlers }}/restart_services.yml" + +- name: configure taskotron master + hosts: taskotron-prod + user: root + gather_facts: True + accelerate: "{{ accelerated }}" + + vars_files: + - /srv/web/infra/ansible/vars/global.yml + - "{{ private }}/vars.yml" + - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml + + roles: + - { role: taskotron/grokmirror, tags: ['grokmirror'] } +# - { role: taskotron/cgit, tags: ['cgit'] } + - { role: taskotron/buildmaster, tags: ['buildmaster'] } + - { role: taskotron/buildmaster-configure, tags: ['buildmasterconfig'] } + - { role: taskotron/taskotron-trigger, tags: ['trigger'] } + - { role: taskotron/taskotron-frontend, tags: ['frontend'] } + - { role: taskotron/fake_fedorainfra, tags: ['fakefedorainfra'] } + + handlers: + - include: "{{ handlers }}/restart_services.yml"