main.yml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. ---
  2. # tasks file for ffdo.gitit
  3. - name: Ensure group for gitit exists
  4. group: name={{gitit_group}}
  5. - name: Ensure user for gitit exists
  6. user:
  7. name: "{{gitit_user}}"
  8. createhome: yes
  9. home: "{{gitit_data_dir}}"
  10. group: "{{gitit_group}}"
  11. - name: Ensure gitit ssh dir exists
  12. file:
  13. dest: "{{ gitit_data_dir }}/.ssh"
  14. state: directory
  15. mode: 0700
  16. owner: "{{ gitit_user }}"
  17. group: "{{ gitit_group }}"
  18. - name: Ensure gitit ssh key is up to date
  19. copy:
  20. content: "{{ wiki_git_private_key }}"
  21. dest: "{{ gitit_data_dir }}/.ssh/id_rsa"
  22. mode: 0600
  23. owner: "{{ gitit_user }}"
  24. group: "{{ gitit_group }}"
  25. - name: Ensure prerequisites for gitit are instaled
  26. apt: name={{item}} state=present update_cache=yes cache_valid_time=3600
  27. with_items:
  28. - git
  29. - gitit
  30. - name: Install gitit configuration
  31. template:
  32. src: conf.j2
  33. dest: "{{gitit_data_dir}}/gitit.conf"
  34. owner: "{{gitit_user}}"
  35. notify:
  36. - Restart gitit
  37. - name: Ensure static content directories exists
  38. file:
  39. dest: "{{gitit_data_dir}}/static/{{item}}"
  40. state: directory
  41. owner: "{{gitit_user}}"
  42. with_items:
  43. - css
  44. - img
  45. - name: Ensure template directory exists
  46. file:
  47. dest: "{{gitit_data_dir}}/templates"
  48. state: directory
  49. owner: "{{gitit_user}}"
  50. - name: Ensure custom footer exists
  51. template:
  52. src: footer.st.j2
  53. dest: "{{gitit_data_dir}}/templates/footer.st"
  54. owner: "{{gitit_user}}"
  55. - name: Ensure custom css exists
  56. template:
  57. src: custom.css.j2
  58. dest: "{{gitit_data_dir}}/static/css/custom.css"
  59. owner: "{{gitit_user}}"
  60. - name: Ensure wikidata directory exists
  61. file:
  62. dest: "{{gitit_data_dir}}/wikidata"
  63. state: directory
  64. owner: "{{gitit_user}}"
  65. - name: Clone wiki repo
  66. git:
  67. repo: "{{gitit_wiki_repo}}"
  68. dest: "{{gitit_data_dir}}/wikidata"
  69. key_file: "{{ gitit_data_dir }}/.ssh/id_rsa"
  70. accept_hostkey: yes
  71. umask: "002"
  72. - name: Ensure git hooks are in place
  73. copy:
  74. src: "{{ item }}"
  75. dest: "{{ gitit_data_dir }}/wikidata/.git/hooks/{{ item }}"
  76. owner: "{{gitit_user}}"
  77. mode: 0776
  78. with_items:
  79. - post-commit
  80. - post-update
  81. # TODO restore user data
  82. - name: Let acmetool generate a key and a certificate
  83. become: yes
  84. shell: /usr/bin/acmetool want --batch {{ wiki_domain }}
  85. notify: Restart nginx
  86. - name: Install nginx configs
  87. template:
  88. src: "nginx.j2"
  89. dest: "/etc/nginx/sites-available/wiki"
  90. notify:
  91. - Restart nginx
  92. - name: Activate nginx configurations
  93. file:
  94. src: /etc/nginx/sites-available/wiki
  95. dest: /etc/nginx/sites-enabled/wiki
  96. state: link
  97. notify:
  98. - Restart nginx
  99. - name: Install systemd unit
  100. register: gitit_systemd_unit
  101. template:
  102. src: systemd.j2
  103. dest: /etc/systemd/system/gitit.service
  104. - name: Systemd daemon-reload
  105. when: gitit_systemd_unit|changed
  106. shell: systemctl daemon-reload
  107. - name: Ensure gitit is started and enabled
  108. service: name=gitit state=started enabled=yes