From a1755eb2f0054d082dbd71ff8f63830f7c119a37 Mon Sep 17 00:00:00 2001 From: Jakub Kadlcik Date: Wed, 11 Sep 2019 23:04:22 +0200 Subject: [PATCH] copr: add a playbook to prepare builder in AWS The `builderpb_nova_aws.yml` playbook doesn't spin up a new instance yet. We currently have a one testing instance in AWS so the playbook always provisions that particular instance. --- .../files/provision/builderpb_nova_aws.yml | 44 +++++++++++++++++ .../files/provision/create_swap_file.yml | 47 +++++++++++++++++++ .../files/provision/terminatepb_nova_aws.yml | 0 3 files changed, 91 insertions(+) create mode 100644 roles/copr/backend/files/provision/builderpb_nova_aws.yml create mode 100644 roles/copr/backend/files/provision/create_swap_file.yml create mode 100644 roles/copr/backend/files/provision/terminatepb_nova_aws.yml diff --git a/roles/copr/backend/files/provision/builderpb_nova_aws.yml b/roles/copr/backend/files/provision/builderpb_nova_aws.yml new file mode 100644 index 0000000000..d7b1549b0f --- /dev/null +++ b/roles/copr/backend/files/provision/builderpb_nova_aws.yml @@ -0,0 +1,44 @@ +- name: check/create instance + hosts: 127.0.0.1 + gather_facts: False + + vars_files: + - vars.yml + - nova_cloud_vars.yml + + vars: + keypair: buildsys + max_spawn_time: 1100 + spawning_vm_user: "fedora" + image_name: "{{ builder_images.x86_64 }}" + + tasks: + - name: so far we have only one instance in AWS so it will always be the same address + set_fact: builder_ip="34.254.223.48" + + - name: add builder ip to the special group + local_action: add_host hostname="34.254.223.48" groupname=builder_temp_group + + +- name: provision builder + hosts: builder_temp_group + gather_facts: True + sudo: True + user: fedora + + vars_files: + - vars.yml + - nova_cloud_vars.yml + + vars: + ansible_python_interpreter: /usr/bin/python3 + swap_file_path: "/swapfile" + swap_file_size_mb: 1024 + + tasks: + - include: "create_swap_file.yml" + when: + - prepare_base_image is defined + + - include: "provision_builder_tasks.yml" + - include: "offloading_hack.yml" diff --git a/roles/copr/backend/files/provision/create_swap_file.yml b/roles/copr/backend/files/provision/create_swap_file.yml new file mode 100644 index 0000000000..c3b3df578f --- /dev/null +++ b/roles/copr/backend/files/provision/create_swap_file.yml @@ -0,0 +1,47 @@ +- name: Create swap file + command: dd if=/dev/zero of={{ swap_file_path }} bs=1024 count={{ swap_file_size_mb }}k + creates="{{ swap_file_path }}" + tags: + - swap.file.create + + +- name: Change swap file permissions + file: path="{{ swap_file_path }}" + owner=root + group=root + mode=0600 + tags: + - swap.file.permissions + + +- name: "Check swap file type" + command: file {{ swap_file_path }} + register: swapfile + tags: + - swap.file.mkswap + + +- name: Make swap file + command: "sudo mkswap {{ swap_file_path }}" + when: swapfile.stdout.find('swap file') == -1 + tags: + - swap.file.mkswap + + +- name: Write swap entry in fstab + mount: name=none + src={{ swap_file_path }} + fstype=swap + opts=sw + passno=0 + dump=0 + state=present + tags: + - swap.fstab + + +- name: Mount swap + command: "swapon {{ swap_file_path }}" + when: ansible_swaptotal_mb < 1 + tags: + - swap.file.swapon diff --git a/roles/copr/backend/files/provision/terminatepb_nova_aws.yml b/roles/copr/backend/files/provision/terminatepb_nova_aws.yml new file mode 100644 index 0000000000..e69de29bb2