ansible role to deploy librenms on debian
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

main.yml 3.5KB

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"