taskotron: cronjobs for imagefactory on dev

This commit is contained in:
Josef Skladanka 2016-02-16 12:18:58 +01:00
parent 7eacf03ebc
commit ed58720364
9 changed files with 104 additions and 31 deletions

View file

@ -47,6 +47,8 @@ artifacts_base_url: https://taskotron-dev.fedoraproject.org/artifacts
client_report_to_bodhi: 'False' client_report_to_bodhi: 'False'
imagesdir: /srv/diskimages
############################################################ ############################################################
# testcloud config # testcloud config
@ -68,8 +70,6 @@ buildmaster_pubkey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYzVmGYh6EHH8UAlgX6FI
# imagefactory config # imagefactory config
############################################################ ############################################################
imagefactory_user: imgfac_user imagefactory_host: qa11.qa.fedoraproject.org
imagefactory_user_home: '/home/{{imagefactory_user}}' imagefactory_baseurl: 'http://{{imagefactory_host}}:8075/imagefactory'
imagefactory_shared_dir: '{{imagefactory_user_home}}/images'

View file

@ -45,6 +45,7 @@ artifacts_base_url: https://taskotron.fedoraproject.org/artifacts
client_report_to_bodhi: 'False' client_report_to_bodhi: 'False'
imagesdir: /srv/diskimages
############################################################ ############################################################
# testcloud config # testcloud config
@ -60,3 +61,12 @@ buildslave_pubkey: 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3Fhg7qUJ1+3N2YficTWQGEPm
buildslave_private_sshkey_file: prod-buildslave-sshkey/prod_buildslave buildslave_private_sshkey_file: prod-buildslave-sshkey/prod_buildslave
buildslave_public_sshkey_file: prod-buildslave-sshkey/prod_buildslave.pub buildslave_public_sshkey_file: prod-buildslave-sshkey/prod_buildslave.pub
buildmaster_pubkey: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ0I2cVUiU0VBj0E0qd9knPffShU16LJYNTPz5IlgEaWtr4KQly1aC3uTNtDBy2fKX9YZxmupTPsQw0F3sneHosDZlpWSh8+iOOi5pT/hH3/YxwwT+Uq1X/8ebAcQ/OHUhMcDb6TWOw8PltaOFMGxhVq5yJtzViknxY+7Z0sbKCtzHEYM9ABKiVfxyyow31sPLAHiv4aLjOfJBE09mmR79TiTk797SYNA+LXVLO18h05kDy3Y/pufoPFA3+j3AFQW1WyFqFG3O62J4TJHxFwtXGyimDjXho/7Km0QvQOxBx8d7mhdA9oNYEo2pGUJeYcXNjj34Bc/4A2bjw2m8elkz' buildmaster_pubkey: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ0I2cVUiU0VBj0E0qd9knPffShU16LJYNTPz5IlgEaWtr4KQly1aC3uTNtDBy2fKX9YZxmupTPsQw0F3sneHosDZlpWSh8+iOOi5pT/hH3/YxwwT+Uq1X/8ebAcQ/OHUhMcDb6TWOw8PltaOFMGxhVq5yJtzViknxY+7Z0sbKCtzHEYM9ABKiVfxyyow31sPLAHiv4aLjOfJBE09mmR79TiTk797SYNA+LXVLO18h05kDy3Y/pufoPFA3+j3AFQW1WyFqFG3O62J4TJHxFwtXGyimDjXho/7Km0QvQOxBx8d7mhdA9oNYEo2pGUJeYcXNjj34Bc/4A2bjw2m8elkz'
############################################################
# imagefactory config
############################################################
imagefactory_host: qa11.qa.fedoraproject.org
imagefactory_baseurl: 'http://{{imagefactory_host}}:8075/imagefactory'

View file

@ -48,6 +48,8 @@ artifacts_base_url: https://taskotron.stg.fedoraproject.org/artifacts
client_report_to_bodhi: 'False' client_report_to_bodhi: 'False'
imagesdir: /srv/diskimages
############################################################ ############################################################
# testcloud config # testcloud config
@ -63,3 +65,12 @@ buildslave_pubkey: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA4EOTNfPIvIjCLNRYauVquS2L
buildslave_private_sshkey_file: dev-buildslave-sshkey/dev_buildslave buildslave_private_sshkey_file: dev-buildslave-sshkey/dev_buildslave
buildslave_public_sshkey_file: dev-buildslave-sshkey/dev_buildslave.pub buildslave_public_sshkey_file: dev-buildslave-sshkey/dev_buildslave.pub
buildmaster_pubkey: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3cGfl2hdHA7PsP+ZrhhJDjrLnw8AdP3myMHb0/RHSCg7iPATR6CiljeU6oM0ZT0neKH4/DXtQr9zMT2OCrUXz/T94md8AzCbuLFrHPgSiJ5GciYyQ6E3edM7ATTU3qj1NsT/Uuiwqer/Sb7z1NrVWjzfyDXCSppHZfskQ3TDRVQFgAunrGmmUfbgOueftDXePHq8ozOf4v1bzR+9tCeqcfa0Xmzo/hpbav4IIhAoIJNknitw71BPFOd4ublNUzX7TLmi5zoxRxYU6F8rwm9kBMQ9+crpOpvHrY4qnk9Yq6TBt6UC/HbLwFhxCeU3s+cr2U4GmF/lk7sqo3Pz7Q3BR' buildmaster_pubkey: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3cGfl2hdHA7PsP+ZrhhJDjrLnw8AdP3myMHb0/RHSCg7iPATR6CiljeU6oM0ZT0neKH4/DXtQr9zMT2OCrUXz/T94md8AzCbuLFrHPgSiJ5GciYyQ6E3edM7ATTU3qj1NsT/Uuiwqer/Sb7z1NrVWjzfyDXCSppHZfskQ3TDRVQFgAunrGmmUfbgOueftDXePHq8ozOf4v1bzR+9tCeqcfa0Xmzo/hpbav4IIhAoIJNknitw71BPFOd4ublNUzX7TLmi5zoxRxYU6F8rwm9kBMQ9+crpOpvHrY4qnk9Yq6TBt6UC/HbLwFhxCeU3s+cr2U4GmF/lk7sqo3Pz7Q3BR'
############################################################
# imagefactory config
############################################################
imagefactory_host: qa11.qa.fedoraproject.org
imagefactory_baseurl: 'http://{{imagefactory_host}}:8075/imagefactory'

View file

@ -33,26 +33,8 @@
handlers: handlers:
- include: "{{ handlers }}/restart_services.yml" - include: "{{ handlers }}/restart_services.yml"
- name: configure taskotron client host
hosts: taskotron-dev-client-hosts:taskotron-stg-client-hosts:taskotron-prod-client-hosts
user: root
gather_facts: True
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
roles:
- { role: taskotron/taskotron-client, tags: ['taskotronclient'] }
- { role: taskotron/buildslave, tags: ['buildslave'] }
- { role: taskotron/buildslave-configure, tags: ['buildslaveconfigure'] }
handlers:
- include: "{{ handlers }}/restart_services.yml"
- name: configure taskotron imagefactory - name: configure taskotron imagefactory
hosts: qa11.qa.fedoraproject.org hosts: '{{imagefactory_host}}'
user: root user: root
gather_facts: True gather_facts: True
@ -67,3 +49,23 @@
handlers: handlers:
- include: "{{ handlers }}/restart_services.yml" - include: "{{ handlers }}/restart_services.yml"
- name: configure taskotron client host
hosts: taskotron-dev-client-hosts:taskotron-stg-client-hosts:taskotron-prod-client-hosts
user: root
gather_facts: True
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
roles:
- { role: taskotron/taskotron-client, tags: ['taskotronclient'] }
- { role: taskotron/imagefactory-client, tags: ['imagefactoryclient'] }
- { role: taskotron/buildslave, tags: ['buildslave'] }
- { role: taskotron/buildslave-configure, tags: ['buildslaveconfigure'] }
handlers:
- include: "{{ handlers }}/restart_services.yml"

View file

@ -0,0 +1,2 @@
---
extra_enablerepos: ''

View file

@ -0,0 +1,33 @@
---
- name: create directory for git clone
file: path=/var/lib/fedoraqa state=directory owner=root group=root mode=1755
when: deployment_type in ['dev']
- name: create directory for configuration
file: path=/etc/taskotron_base_images state=directory owner=root group=root mode=0755
when: deployment_type in ['dev']
- name: create directory for disposable clients images
file: path={{ imagesdir }} state=directory owner=root group={{ slaves_group }} mode=1755
when: deployment_type in ['dev']
- name: Check out our imagefactory tools
git:
repo: https://bitbucket.org/fedoraqa/base_images
dest: '/var/lib/fedoraqa/base_images'
update: yes
when: deployment_type in ['dev']
- name: Generate configuration
template: src=config.ini.j2 dest=/etc/taskotron_base_images/config.ini owner=root group=root mode=0644
- name: Download/update images
command: '/var/lib/fedoraqa/base_images/get_latest_image/get_latest_image.py update --get-missing --outdir {{imagesdir}} {{imagesdir}}'
when: deployment_type in ['dev']
- name: Create cronjob to download new images
cron:
name: "Download new images from ImageFactory"
special_time: hourly
job: '/var/lib/fedoraqa/base_images/get_latest_image/get_latest_image.py update --get-missing --outdir {{imagesdir}} {{imagesdir}}'
when: deployment_type in ['dev']

View file

@ -0,0 +1,6 @@
[default]
imgfac_base_url={{imagefactory_baseurl}}
repourl_base=http://dl.fedoraproject.org/pub/fedora/linux/
rawhide=24
download_dir={{imagesdir}}

View file

@ -15,14 +15,23 @@
- name: enable imagefactory - name: enable imagefactory
service: name=imagefactoryd state=started enabled=yes service: name=imagefactoryd state=started enabled=yes
- name: add the imgfac user - name: create directory for git clone
user: name={{imagefactory_user}} file: path=/var/lib/fedoraqa state=directory owner=root group=root mode=1755
- name: create directory for shared built images
file: path={{ imagefactory_shared_dir }} state=directory owner={{ imagefactory_user }} group={{ imagefactory_user }} mode=1755
- name: Check out our imagefactory tools - name: Check out our imagefactory tools
git: git:
repo: https://bitbucket.org/fedoraqa/base_images repo: https://bitbucket.org/fedoraqa/base_images
dest: '{{imagefactory_user_home}}/base_images' dest: '/var/lib/fedoraqa/base_images'
update: yes update: yes
- name: Create cronjob to build new images
cron:
name: "Build new taskotron_cloud images in ImageFactory"
hour: "3"
job: '/var/lib/fedoraqa/base_images/trigger_build/trigger_build.py build --release 23 --arch x86_64 --flavor="taskotron_cloud" --disksize="3G"'
- name: Create cronjob to prune old
cron:
name: "Prune old taskotron_cloud images in ImageFactory"
hour: "5"
job: '/var/lib/fedoraqa/base_images/trigger_build/trigger_build.py prune-old --keep 5'

View file

@ -51,8 +51,8 @@
file: path=/var/log/taskotron state=directory owner={{ slave_user }} group={{ slave_user }} mode=1755 file: path=/var/log/taskotron state=directory owner={{ slave_user }} group={{ slave_user }} mode=1755
when: deployment_type == 'local' when: deployment_type == 'local'
- name: create /srv/diskimages for disposable clients images - name: create directory for disposable clients images
file: path=/srv/diskimages state=directory owner=root group={{ slaves_group }} mode=1755 file: path={{ imagesdir }} state=directory owner=root group={{ slaves_group }} mode=1755
when: deployment_type in ['dev', 'stg', 'prod'] when: deployment_type in ['dev', 'stg', 'prod']
- name: ensure buildslaves group exists - name: ensure buildslaves group exists