Repos with recipes to deploy some infrastructure services
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 

64 rindas
2.4 KiB

  1. ---
  2. - name: Create
  3. hosts: localhost
  4. connection: local
  5. gather_facts: False
  6. vars_files:
  7. - vars/molecule.yml
  8. tasks:
  9. - set_fact:
  10. molecule_service_instances: "{{ molecule_yml.platforms | selectattr('is_service', 'defined') | selectattr('is_service') | list }}"
  11. - set_fact:
  12. molecule_platform_instances: "{{ molecule_yml.platforms | difference(molecule_service_instances) }}"
  13. - name: Create Dockerfiles from image names
  14. template:
  15. src: "Dockerfile.{{ item.dockerfile_tpl | default('default') }}.j2"
  16. dest: "{{ molecule_ephemeral_directory }}/Dockerfile_{{ item.image | regex_replace('[^a-zA-Z0-9_]', '_') }}"
  17. with_items: "{{ molecule_platform_instances }}"
  18. register: platforms
  19. - name: Discover local Docker images
  20. docker_image_facts:
  21. name: "molecule_pdns/{{ item.item.name }}"
  22. with_items: "{{ platforms.results }}"
  23. register: docker_images
  24. - name: Build an Ansible compatible image
  25. docker_image:
  26. path: "{{ molecule_ephemeral_directory }}"
  27. name: "molecule_pdns/{{ item.item.image }}"
  28. dockerfile: "{{ item.item.dockerfile | default(item.invocation.module_args.dest) }}"
  29. force: "{{ item.item.force | default(True) }}"
  30. with_items: "{{ platforms.results }}"
  31. when: platforms.changed or docker_images.results | map(attribute='images') | select('equalto', []) | list | count >= 0
  32. - name: Create molecule instance(s)
  33. docker_container:
  34. name: "{{ item.name }}"
  35. hostname: "{{ item.name }}"
  36. image: "{{ item.image }}"
  37. state: started
  38. recreate: False
  39. env: "{{ item.env | default(omit) }}"
  40. privileged: "no"
  41. volumes: "{{ item.volumes | default(omit) }}"
  42. with_items: "{{ molecule_service_instances }}"
  43. - name: Create the required Services instance(s)
  44. docker_container:
  45. name: "{{ item.name }}"
  46. hostname: "{{ item.name }}"
  47. image: "molecule_pdns/{{ item.image }}"
  48. links: "{{ molecule_service_instances | map(attribute='name') | list }}"
  49. command: "{{ item.command | default(omit) }}"
  50. state: started
  51. recreate: False
  52. privileged: "yes"
  53. volumes:
  54. # Mount the cgroups fs to allow SystemD to run into the containers
  55. - "/sys/fs/cgroup:/sys/fs/cgroup:ro"
  56. with_items: "{{ molecule_platform_instances }}"