build_node_image.yml 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. ---
  2. - hosts: localhost
  3. gather_facts: no
  4. tasks:
  5. - name: provision resource group
  6. import_tasks: tasks/provision_instance.yml
  7. vars:
  8. image_prefix: "{{ openshift_azure_input_image_prefix }}"
  9. image_resource_group: "{{ openshift_azure_input_image_ns }}"
  10. create_args: --data-disk-sizes-gb 128
  11. - set_fact:
  12. openshift_node_bootstrap: True
  13. - hosts: nodes
  14. tasks:
  15. - set_fact:
  16. openshift_deployment_type: "{{ 'openshift-enterprise' if ansible_distribution == 'RedHat' else 'origin' }}"
  17. openshift_enable_origin_repo: False
  18. openshift_node_bootstrap: True
  19. skip_node_svc_handlers: True
  20. openshift_additional_repos: "{{ azure_node_repos[ansible_distribution] }}"
  21. openshift_node_include_control_plane: True
  22. openshift_control_plane_static_pod_location: /etc/origin/node/disabled/
  23. openshift_node_group_cloud_provider: azure
  24. openshift_node_image_prep_packages:
  25. - strace
  26. - tcpdump
  27. etcd_ip: ETCD_IP_REPLACE
  28. - name: add insights-client to package installs when on rhel
  29. set_fact:
  30. openshift_node_image_prep_packages: "{{ openshift_node_image_prep_packages | union(['insights-client']) }}"
  31. when: openshift_deployment_type == 'openshift-enterprise'
  32. - set_fact:
  33. openshift_additional_repos: "{{ openshift_additional_repos + [{'name': 'install_repo', 'baseurl': openshift_azure_install_repo, 'enabled': true, 'gpgcheck': false}] }}"
  34. when: openshift_azure_install_repo is defined and openshift_azure_install_repo
  35. - name: install centos-release-paas-common rpm
  36. yum:
  37. name: centos-release-paas-common
  38. state: present
  39. when: ansible_distribution == "CentOS"
  40. - name: configure yum repositories
  41. import_tasks: tasks/yum_certs.yml
  42. - name: update rpms
  43. import_role:
  44. name: os_update_latest
  45. vars:
  46. os_update_latest_reboot: True
  47. - name: install openshift
  48. import_playbook: ../../openshift-node/private/image_prep.yml
  49. - hosts: nodes
  50. tasks:
  51. - name: deconfigure yum repositories
  52. import_tasks: tasks/remove_yum.yml
  53. - name: record installed rpms
  54. yum:
  55. list: installed
  56. register: yum
  57. - name: run waagent deprovision
  58. shell: sleep 2 && waagent -deprovision+user -force
  59. async: 1
  60. poll: 0
  61. - hosts: localhost
  62. gather_facts: no
  63. tasks:
  64. - name: get current date/time
  65. shell: TZ=Etc/UTC date +%Y%m%d%H%M
  66. register: now
  67. - set_fact:
  68. openshift_rpm: "{{ hostvars[groups['nodes'][0]]['yum'].results | selectattr('name', 'match', '^(origin|atomic-openshift)$') | first }}"
  69. - set_fact:
  70. image_name: "{{ openshift_azure_output_image_prefix }}-{{ openshift_rpm.version | regex_replace('^(\\d+\\.\\d+).*', '\\1') }}-{{ now.stdout }}"
  71. - name: create image
  72. import_tasks: tasks/create_image_from_vm.yml
  73. vars:
  74. image_resource_group: "{{ openshift_azure_output_image_ns }}"
  75. image_tags:
  76. base_image: "{{ (input_image.stdout | from_json).name }}"
  77. kernel: "{{ hostvars[groups['nodes'][0]]['ansible_kernel'] }}"
  78. openshift: "{{ openshift_rpm.name }}-{{ openshift_rpm.version }}-{{ openshift_rpm.release }}.{{ openshift_rpm.arch }}"
  79. - name: create blob
  80. import_tasks: tasks/create_blob_from_vm.yml
  81. when: openshift_azure_storage_account is defined and openshift_azure_storage_account