You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
2.1KB

  1. ---
  2. - import_tasks: local_facts.yaml
  3. - name: debian package requirements for buildbot
  4. apt:
  5. pkg:
  6. - python3-pip
  7. - fish
  8. - git
  9. - python-psycopg2 # for ansible
  10. - postgresql
  11. - python3-psycopg2
  12. - name: install buildbot
  13. pip:
  14. name: buildbot[bundle]
  15. executable: pip3
  16. - name: install gitea integration for buildbot
  17. pip:
  18. name: buildbot_gitea
  19. executable: pip3
  20. - name: install service_identity
  21. pip:
  22. name: service_identity
  23. executable: pip3
  24. - name: buildbot system group
  25. group:
  26. name: buildbot
  27. system: yes
  28. - name: buildbot system user
  29. user:
  30. name: buildbot
  31. group: buildbot
  32. system: yes
  33. home: /var/lib/buildbot
  34. shell: /usr/bin/fish
  35. - name: buildbot var directory
  36. file:
  37. path: /var/lib/buildbot
  38. state: directory
  39. owner: buildbot
  40. group: buildbot
  41. mode: 0700
  42. # source of unit file from https://github.com/buildbot/buildbot-contrib/blob/master/master/contrib/systemd/buildbot%40.service
  43. - name: buildbot systemd service unit
  44. copy:
  45. src: systemd/buildbot@.service
  46. dest: /etc/systemd/system/buildbot@.service
  47. notify: systemd daemon reload
  48. - import_tasks: database.yaml
  49. - name: initiate buildbot master configurations
  50. command: buildbot create-master --db {{buildbot_database_url}} --relocatable master
  51. become: true
  52. become_user: buildbot
  53. args:
  54. chdir: /var/lib/buildbot
  55. creates: /var/lib/buildbot/master
  56. - name: buildbot master config file
  57. template:
  58. src: buildbot/master.cfg.j2
  59. dest: /var/lib/buildbot/master/master.cfg
  60. notify: restart buildbot service
  61. - meta: flush_handlers
  62. - name: ensure buildbot service is running
  63. systemd:
  64. state: started
  65. name: buildbot@master.service
  66. - include_role:
  67. name: certificate
  68. vars:
  69. certificate_name: buildbot
  70. certificate_directory: /etc/ssl
  71. certificate_key_usage:
  72. - digitalSignature
  73. - keyEncipherment
  74. certificate_extended_key_usage:
  75. - serverAuth
  76. certificate_common_name: "{{ buildbot_server_name }}"
  77. - include_role:
  78. name: nginx
  79. vars:
  80. nginx_vhosts: "{{ buildbot_nginx_vhosts }}"