Ansible repo for digital ocean projects
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.

122 lines
3.3 KiB

  1. - hosts: mpdf
  2. gather_facts: true
  3. vars:
  4. mpdcount: 5
  5. path: /var/lib/mpd
  6. playlist_directory: /playlist/
  7. db_file: tag_cache
  8. log_dir: /var/log/
  9. log_file: mpd.log
  10. pid_file: pid
  11. state_file: state
  12. sticker_file: sticker
  13. user: mpd
  14. group: nogroup
  15. bind_to_address: "0.0.0.0"
  16. bind_address: "0.0.0.0"
  17. mpdport: 6600
  18. log_level: default
  19. gapless_mp3_playback: yes
  20. save_absolute_paths_in_playlists: yes
  21. metadata_to_use: artist,album,title,track,name,genre,date,composer,performer,disc
  22. auto_update: no
  23. auto_update_depth: 3
  24. follow_outside_symlinks: no
  25. follow_inside_symlinks: no
  26. zeroconf_enabled: no
  27. zeroconf_name: mpd
  28. default_permissions: read,add,control,admin
  29. stream: music
  30. stream_port: 6700
  31. stream_bind_address: "0.0.0.0"
  32. mixer_type: disabled
  33. replaygain: album
  34. replaygain_preamp: 0
  35. volume_normalization: no
  36. audio_buffer_size: 2048
  37. buffer_before_play: "1%"
  38. tasks:
  39. - name: Gather information about a specific droplet by name
  40. community.digitalocean.digital_ocean_droplet_info:
  41. oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
  42. name: mpdb1
  43. register: droplets
  44. #- name: Print return information from the previous task
  45. # ansible.builtin.debug:
  46. # msg : "{{ droplets.data[0] }}"
  47. - name: Install mpdf on hosts
  48. apt:
  49. name: mpd
  50. state: present
  51. - name: Install sshfs on hosts
  52. apt:
  53. name: sshfs
  54. state: present
  55. - name: setup config on hosts
  56. template:
  57. src: mpdf.conf.j2
  58. dest: "/etc/mpdf{{ item }}.conf"
  59. mode: 0644
  60. owner: root
  61. group: root
  62. loop: "{{ range(1,mpdcount|int + 1) }}"
  63. - name: mpdf var directory
  64. file:
  65. path: "/var/lib/mpd{{ item }}"
  66. state: directory
  67. owner: root
  68. group: root
  69. mode: '0777'
  70. loop: "{{ range(1,mpdcount|int + 1) }}"
  71. - name: mpdf playlist directory
  72. file:
  73. path: "/var/lib/mpd{{ item }}/playlist"
  74. state: directory
  75. owner: root
  76. group: root
  77. mode: '0755'
  78. loop: "{{ range(1,mpdcount|int + 1) }}"
  79. # - name: mpdf pid file
  80. # file:
  81. # path: "/var/lib/mpd{{ item }}/pid"
  82. # state: touch
  83. # owner: root
  84. # group: root
  85. # mode: '0755'
  86. #loop: "{{ range(1,count|int + 1) }}"
  87. - name: mpdf music directory
  88. file:
  89. path: "/var/lib/mpd{{ item }}/music"
  90. state: directory
  91. owner: root
  92. group: root
  93. mode: '0755'
  94. loop: "{{ range(1,mpdcount|int + 1) }}"
  95. - name: copy sticker.sql
  96. copy:
  97. src: "/var/lib/mpd/sticker.sql"
  98. dest: "/var/lib/mpd{{ item }}/sticker.sql"
  99. owner: root
  100. group: root
  101. mode: '0644'
  102. loop: "{{ range(1,mpdcount|int + 1) }}"
  103. - name: setup service on hosts
  104. template:
  105. src: mpdf.service.j2
  106. dest: "/usr/lib/systemd/system/mpdf{{ item }}.service"
  107. mode: 0644
  108. owner: root
  109. group: root
  110. loop: "{{ range(1,mpdcount|int + 1) }}"
  111. - name: mpd service start
  112. systemd:
  113. name: "mpdf{{ item }}"
  114. state: started
  115. enabled: yes
  116. masked: no
  117. daemon_reload: yes
  118. loop: "{{ range(1,mpdcount|int + 1) }}"