init.sls 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #
  2. # firmware
  3. #
  4. firmware-pkgs:
  5. pkg.installed:
  6. - pkgs:
  7. - git
  8. - pandoc
  9. user.present:
  10. - name: firmware
  11. - shell: /bin/bash
  12. - home: /home/firmware
  13. - createhome: True
  14. - gid_from_name: True
  15. firmware-git:
  16. file.directory:
  17. - name: {{salt['pillar.get']('nodes:' ~ grains['id'] ~ ':path:firmware', [])}}
  18. - user: firmware
  19. - group: firmware
  20. - mode: 755
  21. - require:
  22. - user: firmware
  23. git.latest:
  24. - name: gogs@git.ffho.net:FreifunkHochstift/ffho-firmware-website.git
  25. - target: {{salt['pillar.get']('nodes:' ~ grains['id'] ~ ':path:firmware', [])}}
  26. - user: firmware
  27. - update_head: False
  28. - require:
  29. - pkg: firmware-pkgs
  30. - user: firmware
  31. - file: firmware-git
  32. - file: /home/firmware/.ssh/id_rsa
  33. firmware-changelog:
  34. cmd.run:
  35. - name: FORCE=1 /usr/local/sbin/update-firmware
  36. - creates: {{salt['pillar.get']('nodes:' ~ grains['id'] ~ ':path:firmware', [])}}/stable/Changelog.html
  37. - user: firmware
  38. - group: firmware
  39. - watch:
  40. - git: firmware-git
  41. - require:
  42. - user: firmware
  43. - file: /usr/local/sbin/update-firmware
  44. /home/firmware/.ssh:
  45. file.directory:
  46. - user: firmware
  47. - group: firmware
  48. - mode: 700
  49. - require:
  50. - user: firmware
  51. /home/firmware/.ssh/authorized_keys:
  52. file.managed:
  53. - contents_pillar: nodes:masterbuilder.in.ffho.net:ssh:build:pubkey
  54. - user: firmware
  55. - group: firmware
  56. - mode: 644
  57. - require:
  58. - file: /home/firmware/.ssh
  59. /home/firmware/.ssh/id_rsa:
  60. file.managed:
  61. - contents_pillar: nodes:{{ grains['id'] }}:ssh:firmware:privkey
  62. - user: firmware
  63. - group: firmware
  64. - mode: 400
  65. - require:
  66. - file: /home/firmware/.ssh
  67. firmware-cron:
  68. cron.present:
  69. - name: /usr/local/sbin/update-firmware
  70. - identifier: firmware-cron
  71. - user: firmware
  72. - minute: 42
  73. - require:
  74. - user: firmware
  75. - file: /usr/local/sbin/update-firmware
  76. /usr/local/sbin/update-firmware:
  77. file.managed:
  78. - source: salt://firmware/update-firmware
  79. - template: jinja
  80. - mode: 755