init.sls 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. #
  2. # build
  3. #
  4. build:
  5. pkg.installed:
  6. - pkgs:
  7. - git
  8. - python
  9. - subversion
  10. - build-essential
  11. - gawk
  12. - unzip
  13. - libncurses-dev
  14. - libz-dev
  15. - libssl-dev
  16. - lua5.1
  17. user.present:
  18. - name: build
  19. - shell: /bin/bash
  20. - home: /home/build
  21. - createhome: True
  22. - gid_from_name: True
  23. - require:
  24. - group: build
  25. group.present:
  26. - name: build
  27. - system: False
  28. /home/build/.vimrc:
  29. file.managed:
  30. - source: salt://vim/vimrc
  31. - require:
  32. - user: build
  33. /home/build/.bashrc:
  34. file.managed:
  35. - source: salt://bash/bashrc.user
  36. - template: jinja
  37. - require:
  38. - user: build
  39. git-config:
  40. file.managed:
  41. - name: /home/build/.gitconfig
  42. - source: salt://build/gitconfig.build
  43. - user: build
  44. - group: build
  45. - require:
  46. - user: build
  47. build-git:
  48. file.directory:
  49. - name: /srv/build
  50. - user: build
  51. - group: build
  52. - mode: 755
  53. - require:
  54. - user: build
  55. git.latest:
  56. - name: gogs@git.ffho.net:FreifunkHochstift/ffho-firmware-build.git
  57. - target: /srv/build
  58. - user: build
  59. - update_head: False
  60. - require:
  61. - pkg: build
  62. - user: build
  63. - file: /home/build/.ssh/id_rsa
  64. - file: build-git
  65. firmware-git:
  66. file.directory:
  67. - name: /srv/build/output
  68. - user: build
  69. - mode: 755
  70. - require:
  71. - git: build-git
  72. git.latest:
  73. - name: gogs@git.ffho.net:FreifunkHochstift/ffho-firmware-website.git
  74. - target: /srv/build/output
  75. - branch: signing
  76. - user: build
  77. - update_head: False
  78. - require:
  79. - file: firmware-git
  80. /srv/build/opkg-keys:
  81. file.directory:
  82. - user: build
  83. - group: build
  84. - mode: 700
  85. - require:
  86. - git: build-git
  87. /srv/build/opkg-keys/key-build:
  88. file.managed:
  89. - contents_pillar: nodes:{{ grains['id'] }}:opkg:build:privkey
  90. - user: build
  91. - group: build
  92. - mode: 400
  93. - require:
  94. - file: /srv/build/opkg-keys
  95. /srv/build/opkg-keys/key-build.pub:
  96. file.managed:
  97. - contents_pillar: nodes:{{ grains['id'] }}:opkg:build:pubkey
  98. - user: build
  99. - group: build
  100. - mode: 400
  101. - require:
  102. - file: /srv/build/opkg-keys
  103. firmware.in.ffho.net:
  104. ssh_known_hosts.present:
  105. - user: build
  106. - enc: ecdsa
  107. - fingerprint: {{salt['pillar.get']('nodes:firmware.in.ffho.net:ssh:fingerprint',[])}}
  108. - require:
  109. - user: build
  110. /home/build/.ssh:
  111. file.directory:
  112. - user: build
  113. - group: build
  114. - mode: 700
  115. - require:
  116. - user: build
  117. # Create authorized_keys for build
  118. /home/build/.ssh/authorized_keys:
  119. file.managed:
  120. - source: salt://ssh/authorized_keys.tmpl
  121. - template: jinja
  122. username: build
  123. - user: build
  124. - group: build
  125. - mode: 644
  126. - require:
  127. - file: /home/build/.ssh
  128. /home/build/.ssh/id_rsa:
  129. file.managed:
  130. - contents_pillar: nodes:{{ grains['id'] }}:ssh:build:privkey
  131. - user: build
  132. - group: build
  133. - mode: 400
  134. - require:
  135. - file: /home/build/.ssh