main.yml 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. ---
  2. - name: Install prereqs
  3. package:
  4. name:
  5. - gcc
  6. state: present
  7. - name: Extract heyu tarball v{{ heyu_version }}.tar.gz
  8. unarchive:
  9. src: v{{ heyu_version }}.tar.gz
  10. dest: /usr/local/src/
  11. creates: /usr/local/src/heyu-{{ heyu_version }}/
  12. register: heyu_copy
  13. - name: Create heyu user
  14. user:
  15. name: "{{ heyu_user }}"
  16. system: yes
  17. groups: dialout
  18. append: yes
  19. state: present
  20. - name: Create heyu config dir
  21. file:
  22. path: /etc/heyu
  23. state: directory
  24. owner: "{{ heyu_user }}"
  25. group: root
  26. mode: '0755'
  27. - name: Copy heyu config
  28. template:
  29. src: x10.conf.j2
  30. dest: /etc/heyu/x10.conf
  31. owner: "{{ heyu_user }}"
  32. group: root
  33. mode: '0644'
  34. notify:
  35. - restart heyu
  36. tags:
  37. - update
  38. - name: Compile and install heyu
  39. shell: "{{ item }}"
  40. args:
  41. chdir: /usr/local/src/heyu-{{ heyu_version }}
  42. loop:
  43. - './Configure'
  44. - 'make'
  45. - 'make install'
  46. when:
  47. - not heyu_copy.skipped
  48. - name: Create systemd service files
  49. template:
  50. src: "{{ item.src }}"
  51. dest: /etc/systemd/system/{{ item.dest }}
  52. owner: root
  53. group: root
  54. mode: '0644'
  55. loop:
  56. - { src: 'heyu.service.j2', dest: 'heyu.service' }
  57. - { src: 'x10-symlink.service.j2', dest: 'x10-symlink.service' }
  58. loop_control:
  59. label: "{{ item.dest }}"
  60. register: services
  61. - name: Reload systemd service files
  62. systemd:
  63. daemon_reload: yes
  64. when: services.changed
  65. - name: Start/enable systemd services
  66. systemd:
  67. name: "{{ item }}"
  68. state: started
  69. enabled: yes
  70. loop:
  71. - x10-symlink
  72. - heyu
  73. - name: Enable cronjobs
  74. cron:
  75. name: "{{ item.name }}"
  76. minute: "{{ item.minute | default('*') }}"
  77. hour: "{{ item.hour | default('*') }}"
  78. dom: "{{ item.dom | default('*') }}"
  79. month: "{{ item.month | default('*') }}"
  80. dow: "{{ item.dow | default('*') }}"
  81. job: "{{ item.job }}"
  82. with_items:
  83. - "{{ heyu_cronjobs }}"
  84. loop_control:
  85. label: "{{ item.name }}"
  86. when:
  87. - item.name is defined
  88. - item.name != ''
  89. - item.job is defined
  90. - item.job != ''
  91. tags:
  92. - update