main.yml 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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. # TODO restore user data
  72. - name: Let acmetool generate a key and a certificate
  73. become: yes
  74. shell: /usr/bin/acmetool want --batch {{ wiki_domain }}
  75. notify: Restart nginx
  76. - name: Install nginx configs
  77. template:
  78. src: "nginx.j2"
  79. dest: "/etc/nginx/sites-available/wiki"
  80. notify:
  81. - Restart nginx
  82. - name: Activate nginx configurations
  83. file:
  84. src: /etc/nginx/sites-available/wiki
  85. dest: /etc/nginx/sites-enabled/wiki
  86. state: link
  87. notify:
  88. - Restart nginx
  89. - name: Install systemd unit
  90. register: gitit_systemd_unit
  91. template:
  92. src: systemd.j2
  93. dest: /etc/systemd/system/gitit.service
  94. - name: Systemd daemon-reload
  95. when: gitit_systemd_unit|changed
  96. shell: systemctl daemon-reload
  97. - name: Ensure gitit is started and enabled
  98. service: name=gitit state=started enabled=yes