Advertisement
Guest User

WIP apt repo sls

a guest
Jul 24th, 2013
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.58 KB | None | 0 0
  1. # repo_server/init.sls
  2. repo_server:
  3. apt.mydomain.com:
  4. ubuntu:
  5. base_dir: /srv/
  6. package_source: salt://repo_server/
  7. config:
  8. origin: myubunturepo
  9. description: My Custom Ubuntu APT Repo
  10. codenames:
  11. precise:
  12. main:
  13. archs:
  14. - i386
  15. - amd64
  16. non-free:
  17. archs:
  18. - i386
  19. - amd64
  20. debian:
  21. base_dir: /srv/
  22. package_source: salt://repo_server/
  23. config:
  24. origin: mydebianrepo
  25. description: My Custom Debian APT Repo
  26. codenames:
  27. wheezy:
  28. main:
  29. archs:
  30. - i386
  31. - amd64
  32. non-free:
  33. archs:
  34. - i386
  35. - amd64
  36. squeeze:
  37. main:
  38. archs:
  39. - i386
  40. - amd64
  41. non-free:
  42. archs:
  43. - i386
  44. - amd64
  45. apt.someotherdomain.com:
  46. ubuntu:
  47. base_dir: /srv/
  48. package_source: salt://repo_server/
  49. config:
  50. origin: anotherubunturepo
  51. description: My Other Custom Ubuntu APT Repo
  52. codenames:
  53. precise:
  54. main:
  55. archs:
  56. - i386
  57. - amd64
  58.  
  59. ================================================================
  60. # apt.sls
  61. repoadm:
  62. group:
  63. - present
  64. - system: True
  65. user.present:
  66. - gid: repoadm
  67. - home: /home/repoadm
  68. - shell: /bin/bash
  69. - system: True
  70. - require:
  71. - group: repoadm
  72.  
  73. apt_repo_packages:
  74. pkg.installed:
  75. - pkgs:
  76. - reprepro
  77. - gnupg
  78.  
  79. {%- for repo_name in pillar['repo_server'] %}
  80. {%- set dists = pillar['repo_server'][repo_name] %}
  81. {%- for dist_name in dists %}
  82. {%- set dist_config = pillar['repo_server'][repo_name][dist_name]['config'] %}
  83. {%- set codenames = pillar['repo_server'][repo_name][dist_name]['codenames'] %}
  84.  
  85. /srv/{{ repo_name }}/{{ dist_name }}/conf:
  86. file.directory:
  87. - user: repoadm
  88. - group: repoadm
  89. - mode: 755
  90. - makedirs: True
  91. - recurse:
  92. - user
  93. - group
  94. - mode
  95. - require:
  96. - user: repoadm
  97.  
  98. {%- for codename in codenames %}
  99. {%- set components = pillar['repo_server'][repo_name][dist_name]['codenames'][codename] %}
  100.  
  101. /srv/{{ repo_name }}/{{ dist_name }}/conf/distributions:
  102. file.managed:
  103. - source: salt://repo_server/templates/apt/conf/distributions.jinja
  104. - template: jinja
  105. - user: repoadm
  106. - group: repoadm
  107. - mode: 755
  108. - require:
  109. - user: repoadm
  110. - file: /srv/{{ repo_name }}/{{ dist_name }}/conf
  111. - context:
  112. origin: {{ dist_config['origin'] }}
  113. codename: {{ codename }}
  114. components: {{ components }}
  115. description: {{ dist_config['description'] }}
  116.  
  117. /srv/{{ repo_name }}/{{ dist_name }}/conf/override.{{ codename }}:
  118. file.managed:
  119. - source: salt://repo_server/templates/apt/conf/override.codename.jinja
  120. - template: jinja
  121. - user: repoadm
  122. - group: repoadm
  123. - mode: 755
  124. - require:
  125. - file: /srv/{{ repo_name }}/{{ dist_name }}/conf
  126.  
  127. {%- endfor %}
  128.  
  129. /srv/{{ repo_name }}/{{ dist_name }}/conf/options:
  130. file.managed:
  131. - source: salt://repo_server/templates/apt/conf/options.jinja
  132. - template: jinja
  133. - user: repoadm
  134. - group: repoadm
  135. - mode: 755
  136. - require:
  137. - file: /srv/{{ repo_name }}/{{ dist_name }}/conf
  138.  
  139. {%- endfor %}
  140. {%- endfor %}
  141.  
  142. ================================================================
  143. # repo_server/templates/apt/conf/distributions.jinja
  144. Origin: {{ origin }}
  145. Label: {{ origin }}-{{ codename }}
  146. Codename: {{ codename }}
  147. Architectures: need archs context here
  148. Components: {{ components }}
  149. Description: {{ description }}
  150. SignWith: yes
  151. DebOverride: override.{{ codename }}
  152. DscOverride: override.{{ codename }}
  153.  
  154. ================================================================
  155. # salt-call state.highstate
  156. ----------
  157. State: - group
  158. Name: repoadm
  159. Function: present
  160. Result: True
  161. Comment: Group repoadm is already present
  162. Changes:
  163. ----------
  164. State: - user
  165. Name: repoadm
  166. Function: present
  167. Result: True
  168. Comment: User repoadm is present and up to date
  169. Changes:
  170. ----------
  171. State: - file
  172. Name: /srv/apt.mydomain.com/debian/conf
  173. Function: directory
  174. Result: True
  175. Comment: Directory /srv/apt.mydomain.com/debian/conf updated
  176. Changes: /srv/apt.mydomain.com/debian/conf: New Dir
  177.  
  178. ----------
  179. State: - file
  180. Name: /srv/apt.mydomain.com/debian/conf/distributions
  181. Function: managed
  182. Result: True
  183. Comment: File /srv/apt.mydomain.com/debian/conf/distributions updated
  184. Changes: diff: New file
  185. group: repoadm
  186. mode: 755
  187. user: repoadm
  188.  
  189. ----------
  190. State: - file
  191. Name: /srv/apt.mydomain.com/debian/conf/options
  192. Function: managed
  193. Result: True
  194. Comment: File /srv/apt.mydomain.com/debian/conf/options updated
  195. Changes: diff: New file
  196. group: repoadm
  197. mode: 755
  198. user: repoadm
  199.  
  200. ----------
  201. State: - file
  202. Name: /srv/apt.mydomain.com/debian/conf/override.squeeze
  203. Function: managed
  204. Result: True
  205. Comment: File /srv/apt.mydomain.com/debian/conf/override.squeeze updated
  206. Changes: diff: New file
  207. group: repoadm
  208. mode: 755
  209. user: repoadm
  210.  
  211. ----------
  212. State: - file
  213. Name: /srv/apt.mydomain.com/debian/conf/override.wheezy
  214. Function: managed
  215. Result: True
  216. Comment: File /srv/apt.mydomain.com/debian/conf/override.wheezy updated
  217. Changes: diff: New file
  218. group: repoadm
  219. mode: 755
  220. user: repoadm
  221.  
  222. ----------
  223. State: - file
  224. Name: /srv/apt.mydomain.com/ubuntu/conf
  225. Function: directory
  226. Result: True
  227. Comment: Directory /srv/apt.mydomain.com/ubuntu/conf updated
  228. Changes: /srv/apt.mydomain.com/ubuntu/conf: New Dir
  229.  
  230. ----------
  231. State: - file
  232. Name: /srv/apt.mydomain.com/ubuntu/conf/distributions
  233. Function: managed
  234. Result: True
  235. Comment: File /srv/apt.mydomain.com/ubuntu/conf/distributions updated
  236. Changes: diff: New file
  237. group: repoadm
  238. mode: 755
  239. user: repoadm
  240.  
  241. ----------
  242. State: - file
  243. Name: /srv/apt.mydomain.com/ubuntu/conf/options
  244. Function: managed
  245. Result: True
  246. Comment: File /srv/apt.mydomain.com/ubuntu/conf/options updated
  247. Changes: diff: New file
  248. group: repoadm
  249. mode: 755
  250. user: repoadm
  251.  
  252. ----------
  253. State: - file
  254. Name: /srv/apt.mydomain.com/ubuntu/conf/override.precise
  255. Function: managed
  256. Result: True
  257. Comment: File /srv/apt.mydomain.com/ubuntu/conf/override.precise updated
  258. Changes: diff: New file
  259. group: repoadm
  260. mode: 755
  261. user: repoadm
  262.  
  263. ----------
  264. State: - file
  265. Name: /srv/apt.someotherdomain.com/ubuntu/conf
  266. Function: directory
  267. Result: True
  268. Comment: Directory /srv/apt.someotherdomain.com/ubuntu/conf updated
  269. Changes: /srv/apt.someotherdomain.com/ubuntu/conf: New Dir
  270.  
  271. ----------
  272. State: - file
  273. Name: /srv/apt.someotherdomain.com/ubuntu/conf/distributions
  274. Function: managed
  275. Result: True
  276. Comment: File /srv/apt.someotherdomain.com/ubuntu/conf/distributions updated
  277. Changes: diff: New file
  278. group: repoadm
  279. mode: 755
  280. user: repoadm
  281.  
  282. ----------
  283. State: - file
  284. Name: /srv/apt.someotherdomain.com/ubuntu/conf/options
  285. Function: managed
  286. Result: True
  287. Comment: File /srv/apt.someotherdomain.com/ubuntu/conf/options updated
  288. Changes: diff: New file
  289. group: repoadm
  290. mode: 755
  291. user: repoadm
  292.  
  293. ----------
  294. State: - file
  295. Name: /srv/apt.someotherdomain.com/ubuntu/conf/override.precise
  296. Function: managed
  297. Result: True
  298. Comment: File /srv/apt.someotherdomain.com/ubuntu/conf/override.precise updated
  299. Changes: diff: New file
  300. group: repoadm
  301. mode: 755
  302. user: repoadm
  303.  
  304. ----------
  305. State: - pkg
  306. Name: apt_repo_packages
  307. Function: installed
  308. Result: True
  309. Comment: All specified packages are already installed.
  310. Changes:
  311.  
  312. ================================================================
  313. root@apt:/srv# cat apt.mydomain.com/ubuntu/conf/distributions
  314. Origin: myubunturepo
  315. Label: myubunturepo-precise
  316. Codename: precise
  317. Architectures: need archs context here
  318. Components: {'non-free': {'archs': ['i386', 'amd64']}, 'main': {'archs': ['i386', 'amd64']}}
  319. Description: My Custom Ubuntu APT Repo
  320. SignWith: yes
  321. DebOverride: override.precise
  322. DscOverride: override.precise
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement