ansible role to deploy librenms on debian
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. ---
  2. - name: install debian packages
  3. apt:
  4. name: "{{librenms_deb_packages}}"
  5. state: present
  6. - name: create librenms group
  7. group:
  8. name: "{{librenms_group}}"
  9. state: present
  10. system: yes
  11. - name: create librenms user
  12. user:
  13. name: "{{librenms_user}}"
  14. comment: "LibreNMS system user"
  15. shell: /sbin/nologin
  16. password_lock: yes
  17. home: "{{librenms_home}}"
  18. group: "{{librenms_group}}"
  19. system: yes
  20. - name: add apache user to librenms group
  21. user:
  22. name: www-data
  23. groups: "{{librenms_group}}"
  24. append: yes
  25. - name: download librenms
  26. unarchive:
  27. src: "https://github.com/librenms/librenms/archive/{{librenms_version}}.zip"
  28. dest: /tmp
  29. remote_src: yes
  30. creates: "/tmp/librenms-{{librenms_version}}/README.md"
  31. become: yes
  32. become_user: "{{librenms_user}}"
  33. - name: move librenms to its home
  34. copy:
  35. remote_src: yes
  36. src: "/tmp/librenms-{{librenms_version}}/"
  37. dest: "{{librenms_home}}"
  38. become: yes
  39. become_user: "{{librenms_user}}"
  40. - name: set directory owner
  41. file:
  42. dest: "{{librenms_home}}"
  43. owner: "{{librenms_user}}"
  44. group: "{{librenms_group}}"
  45. mode: 0770
  46. - name: Set the appropriate permissions
  47. file:
  48. path: "{{librenms_home}}"
  49. owner: "{{librenms_user}}"
  50. group: "{{librenms_group}}"
  51. mode: g+w
  52. recurse: true
  53. - name: Set the appropriate acl
  54. acl:
  55. path: "{{librenms_home}}/{{item}}"
  56. etype: group
  57. permissions: rwx
  58. recursive: true
  59. default: true
  60. state: present
  61. loop:
  62. - rrd
  63. - logs
  64. - storage
  65. - bootstrap/cache/
  66. - name: clean tmp
  67. debug: msg="TBD"
  68. - name: run composer
  69. command: ./scripts/composer_wrapper.php install --no-dev
  70. args:
  71. chdir: "{{librenms_home}}"
  72. creates: "{{librenms_home}}/composer.phar"
  73. become: yes
  74. become_user: "{{librenms_user}}"
  75. - name: setup config file
  76. template:
  77. src: config.php.j2
  78. dest: "{{librenms_home}}/config.php"
  79. owner: "{{librenms_user}}"
  80. group: "{{librenms_group}}"
  81. - name: setup database
  82. command: php build-base.php
  83. args:
  84. chdir: "{{librenms_home}}"
  85. become: true
  86. become_user: "{{librenms_user}}"
  87. - name: create admin account
  88. command: php adduser.php {{librenms_admin_user}} {{librenms_admin_pass}} 10
  89. args:
  90. chdir: "{{librenms_home}}"
  91. become: true
  92. become_user: "{{librenms_user}}"
  93. - name: enable apache modules
  94. apache2_module:
  95. state: present
  96. name: "{{item}}"
  97. loop:
  98. - rewrite
  99. - ssl
  100. notify:
  101. - restart apache
  102. - name: deploy apache template
  103. template:
  104. src: "{{librenms_apache_template}}"
  105. dest: /etc/apache2/sites-available/librenms.conf
  106. notify:
  107. - restart apache
  108. - name: enable librenms site
  109. file:
  110. src: /etc/apache2/sites-available/librenms.conf
  111. dest: /etc/apache2/sites-enabled/librenms.conf
  112. state: link
  113. notify:
  114. - restart apache
  115. - name: setup cron and logrotate
  116. copy:
  117. src: "{{librenms_home}}/{{ item.src }}"
  118. dest: "{{item.dest}}"
  119. remote_src: true
  120. loop:
  121. - { src: librenms.nonroot.cron, dest: /etc/cron.d/librenms }
  122. - { src: misc/librenms.logrotate, dest: /etc/logrotate.d/librenms }
  123. - name: make scripts exec
  124. file:
  125. path: "{{item}}"
  126. mode: "0555"
  127. loop:
  128. - /opt/librenms/cronic
  129. - /opt/librenms/discovery.php
  130. - /opt/librenms/alerts.php
  131. - /opt/librenms/billing-calculate.php
  132. - /opt/librenms/check-services.php
  133. - /opt/librenms/daily.sh
  134. - /opt/librenms/poll-billing.php
  135. - /opt/librenms/discovery-wrapper.py
  136. - /opt/librenms/poller-wrapper.py
  137. - /opt/librenms/poller.php
  138. - name: configure snmpd
  139. debug: msg="TBD"