Merge "apiserver: mock socket.gethostbyname"
[yardstick.git] / ansible / build_yardstick_image.yml
index 9a65d3a..5f91585 100644 (file)
     sha256sums_filename: "{{ sha256sums_path|basename }}"
     sha256sums_url: "{{ lookup('env', 'SHA256SUMS_URL')|default('https://' ~ host ~ '/' ~ sha256sums_path, true) }}"
 
-    mountdir: "{{ lookup('env', 'mountdir')|default('/mnt/yardstick', true) }}"
     workspace: "{{ lookup('env', 'workspace')|default('/tmp/workspace/yardstick', true) }}"
     imgfile: "{{ workspace }}/yardstick-image.img"
     raw_imgfile_basename: "yardstick-{{ release }}-server.raw"
-    raw_imgfile: "{{ workspace }}/{{ raw_imgfile_basename }}"
   environment:
     PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin
 
 
     - package: name=parted state=present
 
+    - set_fact:
+        mountdir: "{{ lookup('env', 'mountdir')|default('/mnt/yardstick', true) }}"
+
+    - set_fact:
+        raw_imgfile: "{{ workspace }}/{{ raw_imgfile_basename }}"
+
   # cleanup non-lxd
     - name: unmount all old mount points
       mount:
@@ -69,7 +73,6 @@
         state: absent
 
     # download-common
-
     - name: remove {{ workspace }}
       file:
         path: "{{ workspace }}"
         sha256url: "{{ sha256sums_url }}"
         dest: "{{ image_dest }}"
 
-#    - get_url:
-#        url: "{{ sha256sums_url }}"
-#        force: yes
-#        dest: "{{ workspace }}/{{ sha256sums_filename }}"
-
-    # must use wget to workaround ubuntu cloud SSL certs checking failures
-#    - command: "curl -sS -o {{ workspace }}/{{ sha256sums_filename }} {{ sha256sums_url }}"
-
-
-#    - command: cat "{{ workspace }}/{{ sha256sums_filename }}"
-#      register: sha256sum_file
-#
-#    - set_fact:
-#        image_sha256: "{{ sha256sum_file.stdout|regex_search('^([a-f0-9]+).*' ~ img ~ '$', '\\1', multiline=True) }}"
-
-#    - get_url:
-#        url: "{{ image_url }}"
-#        force: yes
-#        dest: "{{ workspace }}/{{ image_filename }}"
-#        checksum: "sha256:{{ image_sha256 }}"
-#        register: fetch_image_status
-#        timeout: 300
-#        retries: 2
-#        until: fetch_image_status|succeeded
-
-#    - name: "Fetch {{ image_url }}"
-#    - command: "curl -sS -o {{ workspace }}/{{ image_filename }} {{ image_url }}"
-#      register: fetch_image_status
-#      timeout: 300
-#      retries: 2
-#      until: fetch_image_status|succeeded
-
-#    - name: Verify sha256sum of downloaded image
-#    - command: "sha256sum -c --ignore-missing {{ workspace }}/{{ sha256sums_filename }}"
-
-#    - name: create loop devices
-#      command: "mknod -m 660 /dev/loop{{ item }} b 7 {{ item }}"
-#      args:
-#        creates: "/dev/loop{{ item }}"
-#      with_seq:
-#        -
-
-    # download non-lxd
-
     - name: convert image to raw
       command: "qemu-img convert {{ image_dest }} {{ raw_imgfile }}"
 
-
-    # setup non-lxd
-
-#     - shell: echo -e "d\\nn\\np\\n1\\n\\n\\nw" | parted -l "{{ raw_imgfile }}"
-#    - parted:
-#        device: "{{ raw_imgfile }}"
-#        number: 1
-#        state: present
-
     - name: create mknod devices in chroot
       command: "mknod -m 0660 /dev/loop{{ item }} b 7 {{ item }}"
       args:
       with_sequence: start=0 end=9
       tags: mknod_devices
 
-#    - command: losetup --show --partscan --find "{{ raw_imgfile }}"
-#      register: loop_device_res
-#
-#    - debug:
-#        var: loop_device_res
-#        verbosity: 2
-#
-#    - set_fact:
-#        loop_device: "{{ loop_device_res.stdout.strip() }}"
-#
-#    - wait_for:
-#        path: "{{ loop_device }}"
-#        state: present
-#
-#    - command: losetup
-#    - command: dmsetup ls
-
     - name: find first partition device
 #      command: kpartx -l "{{ loop_device }}"
       command: kpartx -l "{{ raw_imgfile }}"
 
     - name: use kpartx to create device nodes for the raw image loop device
       # operate on the loop device to avoid /dev namespace missing devices
-#      command: kpartx -avs "{{ loop_device }}"
       command: kpartx -avs "{{ raw_imgfile }}"
 
     - name: parted dump raw image
-#      command: parted "{{ loop_device }}" print
       command: parted "{{ raw_imgfile }}" print
       register: parted_res
 
         image_fs_type: "{{ blkid_res.stdout.strip() }}"
 
     - name: make tmp disposable fstab
-      command: mktemp fake_fstab.XXXXXXXXXX
+      command: mktemp --tmpdir fake_fstab.XXXXXXXXXX
       register: mktemp_res
 
     - set_fact:
         name: "{{ mountdir }}"
         # fstype is required
         fstype: "{{ image_fs_type }}"
-        #fstab: "{{ fake_fstab }}"
+        # !!!!!!! this is required otherwise we add entries to /etc/fstab
+        # and prevent the system from booting
+        fstab: "{{ fake_fstab }}"
         state: mounted
 
     - name: mount chroot /proc
         src: none
         name: "{{ mountdir }}/proc"
         fstype: proc
-        #fstab: "{{ fake_fstab }}"
+        # !!!!!!! this is required otherwise we add entries to /etc/fstab
+        # and prevent the system from booting
+        fstab: "{{ fake_fstab }}"
         state: mounted
 
     - name: if arm copy qemu-aarch64-static into chroot
         dest: "{{ mountdir }}/usr/bin"
       when: 'YARD_IMG_ARCH == "arm64"'
 
-
-    # setup lxd
-#    - file: "path={{ mountdir }} state=directory"
-#
-#    - unarchive:
-#        src: "{{ image_filename }}"
-#        dest: "{{ mountdir }}"
-#        remote_src: yes
-
-    # end setup lxd
-
-    # modify
-
     - name: create ubuntu policy-rc.d workaround
       copy:
         content: "{{ '#!/bin/sh\nexit 101\n' }}"
         ansible_python_interpreter: /usr/bin/python3
         # set this host variable here
         nameserver_ip: "{{ ansible_dns.nameservers[0] }}"
+        image_type: vm
 
 - name: include {{ img_modify_playbook }}
   include: "{{ img_modify_playbook }}"
 
 - name: run post build tasks
   include: post_build_yardstick_image.yml
+
+- hosts: localhost
+
+  tasks:
+    - debug:
+        msg: "yardstick image = {{ raw_imgfile }}"