machinery-tool 1.17.0 → 1.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (310) hide show
  1. checksums.yaml +4 -4
  2. data/.git_revision +1 -1
  3. data/NEWS +17 -1
  4. data/bin/machinery +1 -1
  5. data/export_helpers/merge_users_and_groups.pl.erb +1 -1
  6. data/html/comparison.html.haml +14 -9
  7. data/html/index.html.haml +5 -2
  8. data/html/landing_page.html.haml +4 -1
  9. data/html/partials/changed_managed_files.html.haml +2 -0
  10. data/html/partials/compare/alert.html.haml +1 -1
  11. data/html/partials/compare/unmanaged_file_list.html.haml +12 -0
  12. data/html/partials/config_files.html.haml +2 -0
  13. data/html/partials/landing_page/alert.html.haml +1 -1
  14. data/html/partials/unmanaged_files.html.haml +14 -0
  15. data/inspect_helpers/changed_files.sh +1 -1
  16. data/inspect_helpers/dpkg_unmanaged_files.sh +1 -1
  17. data/inspect_helpers/yum_repositories.py +1 -1
  18. data/lib/analyze_config_file_diffs_task.rb +1 -1
  19. data/lib/array.rb +1 -1
  20. data/lib/autoyast.rb +34 -34
  21. data/lib/build_task.rb +1 -1
  22. data/lib/cli.rb +21 -6
  23. data/lib/compare_task.rb +1 -1
  24. data/lib/comparison.rb +1 -1
  25. data/lib/config.rb +1 -1
  26. data/lib/config_base.rb +1 -1
  27. data/lib/config_task.rb +1 -1
  28. data/lib/constants.rb +2 -2
  29. data/lib/containerize_task.rb +1 -1
  30. data/lib/containerized_app.rb +1 -1
  31. data/lib/copy_task.rb +1 -1
  32. data/lib/current_user.rb +1 -1
  33. data/lib/deploy_task.rb +1 -1
  34. data/lib/docker_system.rb +4 -5
  35. data/lib/dpkg_database.rb +2 -2
  36. data/lib/element_filter.rb +1 -1
  37. data/lib/exceptions.rb +2 -2
  38. data/lib/export_task.rb +1 -1
  39. data/lib/exporter.rb +1 -1
  40. data/lib/file_diff.rb +1 -1
  41. data/lib/file_scope.rb +1 -1
  42. data/lib/file_validator.rb +1 -1
  43. data/lib/filter.rb +1 -1
  44. data/lib/filter_option_parser.rb +1 -1
  45. data/lib/helper.rb +1 -1
  46. data/lib/hint.rb +1 -1
  47. data/lib/html.rb +1 -1
  48. data/lib/inspect_task.rb +1 -1
  49. data/lib/inspector.rb +1 -1
  50. data/lib/json_schema_monkey_patch.rb +35 -0
  51. data/lib/json_validation_error_cleaner.rb +1 -1
  52. data/lib/json_validator.rb +1 -1
  53. data/lib/kiwi_config.rb +69 -67
  54. data/lib/list_task.rb +1 -1
  55. data/lib/local_system.rb +1 -1
  56. data/lib/logged_cheetah.rb +1 -1
  57. data/lib/machinery.rb +6 -2
  58. data/lib/machinery_helper.rb +28 -8
  59. data/lib/machinery_logger.rb +1 -1
  60. data/lib/man_task.rb +50 -5
  61. data/lib/managed_files_database.rb +24 -17
  62. data/lib/manifest.rb +3 -2
  63. data/lib/migration.rb +1 -1
  64. data/lib/mountpoints.rb +1 -1
  65. data/lib/move_task.rb +1 -1
  66. data/lib/object.rb +1 -1
  67. data/lib/remote_system.rb +2 -2
  68. data/lib/remove_task.rb +1 -1
  69. data/lib/renderer.rb +1 -1
  70. data/lib/renderer_helper.rb +1 -1
  71. data/lib/rpm.rb +1 -1
  72. data/lib/rpm_database.rb +1 -1
  73. data/lib/scope.rb +1 -1
  74. data/lib/scope_file_store.rb +1 -1
  75. data/lib/serve_html_task.rb +1 -1
  76. data/lib/server.rb +32 -2
  77. data/lib/show_task.rb +1 -1
  78. data/lib/system.rb +1 -1
  79. data/lib/system_description.rb +2 -2
  80. data/lib/system_description_memory_store.rb +1 -1
  81. data/lib/system_description_store.rb +1 -1
  82. data/lib/system_file.rb +1 -1
  83. data/lib/tarball.rb +1 -1
  84. data/lib/tee_io.rb +39 -0
  85. data/lib/try.rb +1 -1
  86. data/lib/ui.rb +1 -1
  87. data/lib/upgrade_format_task.rb +1 -1
  88. data/lib/validate_task.rb +1 -1
  89. data/lib/version.rb +2 -2
  90. data/lib/workload_mapper.rb +1 -1
  91. data/lib/workload_mapper_dsl.rb +1 -1
  92. data/lib/zypper.rb +3 -3
  93. data/machinery-helper/Rakefile +2 -8
  94. data/machinery-helper/file_utils.go +28 -0
  95. data/machinery-helper/file_utils_test.go +21 -0
  96. data/machinery-helper/machinery_helper.go +121 -8
  97. data/machinery-helper/machinery_helper_test.go +102 -0
  98. data/machinery-helper/mountpoints_test.go +33 -33
  99. data/machinery-helper/version.go +1 -1
  100. data/man/generated/machinery.1.gz +0 -0
  101. data/manual/custom_theme/base.html +42 -0
  102. data/manual/docs/CNAME +1 -0
  103. data/manual/docs/README.md +128 -0
  104. data/manual/docs/css/bootstrap.min.css +7 -0
  105. data/manual/docs/css/custom.css +788 -0
  106. data/manual/docs/css/fixed-positioning.css +45 -0
  107. data/manual/docs/custom.css +804 -0
  108. data/manual/docs/docs.md +7 -0
  109. data/manual/docs/favicon.png +0 -0
  110. data/manual/docs/hand3.png +0 -0
  111. data/manual/docs/img/arrow.png +0 -0
  112. data/manual/docs/img/background/1.png +0 -0
  113. data/manual/docs/img/background/2.png +0 -0
  114. data/manual/docs/img/background/3.png +0 -0
  115. data/manual/docs/img/background/4.png +0 -0
  116. data/manual/docs/img/background/5.png +0 -0
  117. data/manual/docs/img/background/6.png +0 -0
  118. data/manual/docs/img/background/7.png +0 -0
  119. data/manual/docs/img/bk-cloud.png +0 -0
  120. data/manual/docs/img/bk-sec-15.png +0 -0
  121. data/manual/docs/img/book.png +0 -0
  122. data/manual/docs/img/configuration-discovery.png +0 -0
  123. data/manual/docs/img/dot-line-left.png +0 -0
  124. data/manual/docs/img/dot-line-right.png +0 -0
  125. data/manual/docs/img/gear.png +0 -0
  126. data/manual/docs/img/gear2.png +0 -0
  127. data/manual/docs/img/gear3.png +0 -0
  128. data/manual/docs/img/hand.png +0 -0
  129. data/manual/docs/img/hand2.png +0 -0
  130. data/manual/docs/img/hand3.png +0 -0
  131. data/manual/docs/img/home2.png +0 -0
  132. data/manual/docs/img/moustache.png +0 -0
  133. data/manual/docs/img/navig.png +0 -0
  134. data/manual/docs/img/philo.png +0 -0
  135. data/manual/docs/img/service-migration.png +0 -0
  136. data/manual/docs/img/system-validation.png +0 -0
  137. data/manual/docs/img/ticket2.png +0 -0
  138. data/manual/docs/img/usecase-default.png +0 -0
  139. data/manual/docs/img/usecase1.png +0 -0
  140. data/manual/docs/img/usecase2.png +0 -0
  141. data/manual/docs/img/usecase3.png +0 -0
  142. data/manual/docs/img/usecase4.png +0 -0
  143. data/manual/docs/img/wheels.png +0 -0
  144. data/manual/docs/index.html +402 -0
  145. data/manual/docs/js/bootstrap.min.js +6 -0
  146. data/manual/docs/js/custom.js +148 -0
  147. data/manual/docs/js/jquery.js +4 -0
  148. data/manual/docs/js/jquery.nicescroll.min.js +116 -0
  149. data/manual/docs/js/jquery.pageslide.min.js +11 -0
  150. data/manual/docs/js/parallaxImg.js +146 -0
  151. data/manual/docs/js/skrollr.min.js +2 -0
  152. data/manual/docs/machinery-analyze.1.md +37 -0
  153. data/manual/docs/machinery-build.1.md +62 -0
  154. data/manual/docs/machinery-compare.1.md +63 -0
  155. data/manual/docs/machinery-config.1.md +45 -0
  156. data/manual/docs/machinery-copy.1.md +31 -0
  157. data/manual/docs/machinery-deploy.1.md +71 -0
  158. data/manual/docs/machinery-export-autoyast.1.md +58 -0
  159. data/manual/docs/machinery-export-kiwi.1.md +38 -0
  160. data/manual/docs/machinery-inspect-docker.1.md +108 -0
  161. data/manual/docs/machinery-inspect.1.md +145 -0
  162. data/manual/docs/machinery-list.1.md +51 -0
  163. data/manual/docs/machinery-man.1.md +16 -0
  164. data/manual/docs/machinery-move.1.md +29 -0
  165. data/manual/docs/machinery-remove.1.md +44 -0
  166. data/manual/docs/machinery-serve.1.md +45 -0
  167. data/manual/docs/machinery-show.1.md +63 -0
  168. data/manual/docs/machinery-upgrade-format.1.md +47 -0
  169. data/manual/docs/machinery-validate.1.md +34 -0
  170. data/manual/docs/machinery.ymp +114 -0
  171. data/manual/docs/machinery_main_general.1.md +139 -0
  172. data/manual/docs/machinery_main_scopes.1.md +98 -0
  173. data/manual/docs/machinery_main_usecases.1.md +49 -0
  174. data/manual/docs/machinery_security_implications.1.md +89 -0
  175. data/manual/docs/subcommand-template.1.md +46 -0
  176. data/manual/docs/wheels.png +0 -0
  177. data/manual/mkdocs.yml +30 -0
  178. data/manual/site/CNAME +1 -0
  179. data/manual/site/base.html +42 -0
  180. data/manual/site/css/bootstrap.min.css +7 -0
  181. data/manual/site/css/custom.css +788 -0
  182. data/manual/site/css/fixed-positioning.css +45 -0
  183. data/manual/site/custom.css +804 -0
  184. data/manual/site/docs/index.html +144 -0
  185. data/manual/site/favicon.png +0 -0
  186. data/manual/site/hand3.png +0 -0
  187. data/manual/site/img/arrow.png +0 -0
  188. data/manual/site/img/background/1.png +0 -0
  189. data/manual/site/img/background/2.png +0 -0
  190. data/manual/site/img/background/3.png +0 -0
  191. data/manual/site/img/background/4.png +0 -0
  192. data/manual/site/img/background/5.png +0 -0
  193. data/manual/site/img/background/6.png +0 -0
  194. data/manual/site/img/background/7.png +0 -0
  195. data/manual/site/img/bk-cloud.png +0 -0
  196. data/manual/site/img/bk-sec-15.png +0 -0
  197. data/manual/site/img/book.png +0 -0
  198. data/manual/site/img/configuration-discovery.png +0 -0
  199. data/manual/site/img/dot-line-left.png +0 -0
  200. data/manual/site/img/dot-line-right.png +0 -0
  201. data/manual/site/img/gear.png +0 -0
  202. data/manual/site/img/gear2.png +0 -0
  203. data/manual/site/img/gear3.png +0 -0
  204. data/manual/site/img/hand.png +0 -0
  205. data/manual/site/img/hand2.png +0 -0
  206. data/manual/site/img/hand3.png +0 -0
  207. data/manual/site/img/home2.png +0 -0
  208. data/manual/site/img/moustache.png +0 -0
  209. data/manual/site/img/navig.png +0 -0
  210. data/manual/site/img/philo.png +0 -0
  211. data/manual/site/img/service-migration.png +0 -0
  212. data/manual/site/img/system-validation.png +0 -0
  213. data/manual/site/img/ticket2.png +0 -0
  214. data/manual/site/img/usecase-default.png +0 -0
  215. data/manual/site/img/usecase1.png +0 -0
  216. data/manual/site/img/usecase2.png +0 -0
  217. data/manual/site/img/usecase3.png +0 -0
  218. data/manual/site/img/usecase4.png +0 -0
  219. data/manual/site/img/wheels.png +0 -0
  220. data/manual/site/index.html +402 -0
  221. data/manual/site/js/bootstrap.min.js +6 -0
  222. data/manual/site/js/custom.js +148 -0
  223. data/manual/site/js/jquery.js +4 -0
  224. data/manual/site/js/jquery.nicescroll.min.js +116 -0
  225. data/manual/site/js/jquery.pageslide.min.js +11 -0
  226. data/manual/site/js/parallaxImg.js +146 -0
  227. data/manual/site/js/skrollr.min.js +2 -0
  228. data/manual/site/machinery-analyze.1/index.html +167 -0
  229. data/manual/site/machinery-build.1/index.html +198 -0
  230. data/manual/site/machinery-compare.1/index.html +200 -0
  231. data/manual/site/machinery-config.1/index.html +175 -0
  232. data/manual/site/machinery-copy.1/index.html +164 -0
  233. data/manual/site/machinery-deploy.1/index.html +200 -0
  234. data/manual/site/machinery-export-autoyast.1/index.html +188 -0
  235. data/manual/site/machinery-export-kiwi.1/index.html +169 -0
  236. data/manual/site/machinery-inspect-docker.1/index.html +242 -0
  237. data/manual/site/machinery-inspect.1/index.html +283 -0
  238. data/manual/site/machinery-list.1/index.html +180 -0
  239. data/manual/site/machinery-man.1/index.html +148 -0
  240. data/manual/site/machinery-move.1/index.html +162 -0
  241. data/manual/site/machinery-remove.1/index.html +175 -0
  242. data/manual/site/machinery-serve.1/index.html +174 -0
  243. data/manual/site/machinery-show.1/index.html +199 -0
  244. data/manual/site/machinery-upgrade-format.1/index.html +173 -0
  245. data/manual/site/machinery-validate.1/index.html +161 -0
  246. data/manual/site/machinery.ymp +114 -0
  247. data/manual/site/machinery_main_general.1/index.html +260 -0
  248. data/manual/site/machinery_main_scopes.1/index.html +242 -0
  249. data/manual/site/machinery_main_usecases.1/index.html +182 -0
  250. data/manual/site/machinery_security_implications.1/index.html +223 -0
  251. data/manual/site/mkdocs/js/lunr-0.5.7.min.js +7 -0
  252. data/manual/site/mkdocs/js/mustache.min.js +1 -0
  253. data/manual/site/mkdocs/js/require.js +36 -0
  254. data/manual/site/mkdocs/js/search-results-template.mustache +4 -0
  255. data/manual/site/mkdocs/js/search.js +88 -0
  256. data/manual/site/mkdocs/js/text.js +390 -0
  257. data/manual/site/mkdocs/search_index.json +824 -0
  258. data/manual/site/sitemap.xml +152 -0
  259. data/manual/site/wheels.png +0 -0
  260. data/plugins/changed_managed_files/changed_managed_files_inspector.rb +1 -1
  261. data/plugins/changed_managed_files/changed_managed_files_model.rb +1 -1
  262. data/plugins/changed_managed_files/changed_managed_files_renderer.rb +1 -1
  263. data/plugins/changed_managed_files/schema/system-description-changed-managed-files.schema-v7.json +160 -0
  264. data/plugins/config_files/config_files_inspector.rb +1 -1
  265. data/plugins/config_files/config_files_model.rb +1 -1
  266. data/plugins/config_files/config_files_renderer.rb +1 -1
  267. data/plugins/config_files/schema/system-description-config-files.schema-v7.json +160 -0
  268. data/plugins/environment/environment_inspector.rb +1 -1
  269. data/plugins/environment/environment_model.rb +1 -1
  270. data/plugins/environment/schema/system-description-environment.schema-v7.json +17 -0
  271. data/plugins/groups/groups_inspector.rb +1 -1
  272. data/plugins/groups/groups_model.rb +1 -1
  273. data/plugins/groups/groups_renderer.rb +1 -1
  274. data/plugins/groups/schema/system-description-groups.schema-v7.json +49 -0
  275. data/plugins/os/os_inspector.rb +1 -1
  276. data/plugins/os/os_model.rb +1 -1
  277. data/plugins/os/os_renderer.rb +1 -1
  278. data/plugins/os/schema/system-description-os.schema-v7.json +21 -0
  279. data/plugins/packages/packages_inspector.rb +1 -1
  280. data/plugins/packages/packages_model.rb +1 -1
  281. data/plugins/packages/packages_renderer.rb +1 -1
  282. data/plugins/packages/schema/system-description-packages.schema-v7.json +115 -0
  283. data/plugins/patterns/patterns_inspector.rb +6 -6
  284. data/plugins/patterns/patterns_model.rb +1 -1
  285. data/plugins/patterns/patterns_renderer.rb +1 -1
  286. data/plugins/patterns/schema/system-description-patterns.schema-v7.json +58 -0
  287. data/plugins/repositories/repositories_inspector.rb +16 -16
  288. data/plugins/repositories/repositories_model.rb +1 -1
  289. data/plugins/repositories/repositories_renderer.rb +1 -1
  290. data/plugins/repositories/schema/system-description-repositories.schema-v7.json +165 -0
  291. data/plugins/services/schema/system-description-services.schema-v7.json +93 -0
  292. data/plugins/services/services_inspector.rb +1 -1
  293. data/plugins/services/services_model.rb +1 -1
  294. data/plugins/services/services_renderer.rb +1 -1
  295. data/plugins/unmanaged_files/schema/system-description-unmanaged-files.schema-v6.json +19 -61
  296. data/plugins/unmanaged_files/schema/system-description-unmanaged-files.schema-v7.json +124 -0
  297. data/plugins/unmanaged_files/unmanaged_files_inspector.rb +21 -436
  298. data/plugins/unmanaged_files/unmanaged_files_model.rb +2 -2
  299. data/plugins/unmanaged_files/unmanaged_files_renderer.rb +2 -2
  300. data/plugins/users/schema/system-description-users.schema-v7.json +86 -0
  301. data/plugins/users/users_inspector.rb +1 -1
  302. data/plugins/users/users_model.rb +1 -1
  303. data/plugins/users/users_renderer.rb +1 -1
  304. data/schema/migrations/migrate1to2.rb +1 -1
  305. data/schema/migrations/migrate6to7.rb +38 -0
  306. data/schema/system-description-global.schema-v7.json +43 -0
  307. data/tools/go.rb +92 -0
  308. data/tools/helper_builder.rb +16 -49
  309. metadata +182 -6
  310. data/man/generated/machinery.1.html +0 -1399
@@ -0,0 +1,62 @@
1
+ # build — Build Image from System Description
2
+
3
+ ## SYNOPSIS
4
+
5
+ `machinery build` NAME -i IMAGE-DIR | --image-dir=IMAGE-DIR
6
+
7
+ `machinery` help build
8
+
9
+
10
+ ## DESCRIPTION
11
+
12
+ The `build` command builds an image from a system description. The image is a
13
+ system image in the qcow2 format, which can be used with the KVM hypervisor.
14
+ It can be run locally or deployed to a cloud environment.
15
+
16
+ `machinery` uses the image building command line tool
17
+ [KIWI](http://en.opensuse.org/Portal:KIWI) to perform the actual build. KIWI
18
+ data is stored to a temporary directory and cleaned up after the build. The KIWI
19
+ log is shown as output of the `build` command format for showing progress and
20
+ diagnosing errors.
21
+
22
+ When building an image, Machinery filters out some files which would break the
23
+ built image. The list of filters is shown at the beginning of the build.
24
+
25
+
26
+ ## ARGUMENTS
27
+
28
+ * `NAME` (required):
29
+ Use specified system description.
30
+
31
+
32
+ ## OPTIONS
33
+
34
+ * `-i IMAGE-DIR`, `--image-dir=IMAGE-DIR` (required):
35
+ Save image file under specified path.
36
+
37
+ * `-d`, `--enable-dhcp` (optional):
38
+ Enable DHCP client on first network card of built image
39
+
40
+ * `-s`, `--enable-ssh` (optional):
41
+ Enable SSH service in built image
42
+
43
+
44
+ ## PREREQUISITES
45
+
46
+ * The `build` command requires the packages `kiwi` and `kiwi-desc-vmxboot`.
47
+
48
+ * The necessary vmxboot template for the machinery being built must be
49
+ installed (i.e. if you want to build an openSUSE Leap machine then the
50
+ template `/usr/share/kiwi/image/vmxboot/suse-leap42.1` is required)
51
+
52
+ * All repositories in the system description must be accessible from the
53
+ build machine on which `machinery build` is called.
54
+
55
+ * Machinery can only build x86_64 images on x86_64 systems at the moment.
56
+
57
+ ## EXAMPLES
58
+
59
+ * To build an image from the system description named "tux" and to save the
60
+ image under the `/tmp/tux/` directory:
61
+
62
+ $ `machinery` build tux -i /tmp/tux/
@@ -0,0 +1,63 @@
1
+
2
+ # compare — Compare System Descriptions
3
+
4
+ ## SYNOPSIS
5
+
6
+ `machinery compare` [-s SCOPE | --scope=SCOPE] [-e EXCLUDE-SCOPE | --exclude-scope=EXCLUDE-SCOPE] [--no-pager] [--show-all] [--html] NAME1 NAME2
7
+
8
+ `machinery` help compare
9
+
10
+
11
+ ## DESCRIPTION
12
+
13
+ The `compare` command compares stored system descriptions. The scope option can
14
+ be used to limit the output to the given scopes.
15
+
16
+
17
+ ## ARGUMENTS
18
+
19
+ * `NAME1` (required):
20
+ First system description to compare.
21
+
22
+ * `NAME2` (required):
23
+ Second system description to compare.
24
+
25
+
26
+ ## OPTIONS
27
+
28
+ * `-s SCOPE`, `--scope=SCOPE` (optional):
29
+ Limit output to the specified scope.
30
+ See the [Scope section](#Scopes) for more information.
31
+
32
+ * `-e SCOPE`, `--exclude-scope=EXCLUDE-SCOPE` (optional):
33
+ Skip output of the specified scope.
34
+ See the [Scope section](#Scopes) for more information.
35
+
36
+ * `--no-pager` (optional):
37
+ Do not pipe output into a pager.
38
+
39
+ * `--show-all` (optional):
40
+ Show also common properties of the descriptions (not only the differences).
41
+
42
+ * `--html` (optional):
43
+ Shows the comparison of two system descriptions in the web browser.
44
+
45
+
46
+ ## EXAMPLES
47
+
48
+ * Compare system descriptions saved as `earth` and `moon`:
49
+
50
+ $ `machinery` compare earth moon
51
+
52
+ * Compare system descriptions, but limit the scope to repositories only:
53
+
54
+ $ `machinery` compare earth moon -s repositories
55
+
56
+ * Compare lists of changed managed files and include the common ones in the
57
+ list:
58
+
59
+ $ `machinery` compare earth moon --scope=changed-managed-files --show-all
60
+
61
+ * Compares system descriptions and shows the result in HTML format in your web browser:
62
+
63
+ $ `machinery` compare --html earth moon
@@ -0,0 +1,45 @@
1
+
2
+ # config — Configure Machinery
3
+
4
+ ## SYNOPSIS
5
+
6
+ `machinery config`
7
+
8
+ `machinery config` KEY
9
+
10
+ `machinery config` KEY=VALUE
11
+
12
+ `machinery` help config
13
+
14
+
15
+ ## DESCRIPTION
16
+
17
+ The `config` command shows or changes machinery's configuration.
18
+
19
+ If no arguments are passed the `config` command lists all configuration
20
+ entries and their values. If only the key is provided its value is shown.
21
+ If key and value are specified this configuration entry is set accordingly.
22
+
23
+ The configuration is stored in `~/.machinery/machinery.config`.
24
+
25
+ ## ARGUMENTS
26
+ * `KEY`:
27
+ Name of the configuration entry.
28
+
29
+ * `VALUE`:
30
+ Value of the configuration entry.
31
+
32
+
33
+ ## EXAMPLES
34
+
35
+ * Turn off hints:
36
+
37
+ $ `machinery` config hints=off
38
+
39
+ * Show current configuration of hints:
40
+
41
+ $ `machinery` config hints
42
+
43
+ * List all configuration entries and their values:
44
+
45
+ $ `machinery` config
@@ -0,0 +1,31 @@
1
+
2
+ # copy — Copy System Description
3
+
4
+ ## SYNOPSIS
5
+
6
+ `machinery copy`
7
+ FROM_NAME TO_NAME
8
+
9
+ `machinery` help copy
10
+
11
+
12
+ ## DESCRIPTION
13
+
14
+ The `copy` command copies a stored system description. It creates a new
15
+ description named TO_NAME containing the same content as the description
16
+ FROM_NAME.
17
+
18
+
19
+ ## ARGUMENTS
20
+ * `FROM_NAME` (required):
21
+ Name of the source system description.
22
+
23
+ * `TO_NAME` (required):
24
+ Name of the target system description.
25
+
26
+
27
+ ## EXAMPLES
28
+
29
+ * Create a copy of the system description `earth` under the name `moon`:
30
+
31
+ $ `machinery` copy earth moon
@@ -0,0 +1,71 @@
1
+
2
+ # deploy — Deploy Image to OpenStack Cloud
3
+
4
+ ## SYNOPSIS
5
+
6
+ `machinery deploy` NAME -c CONFIG_FILE | --cloud-config=CONFIG_FILE
7
+ [-i IMAGE_DIR | --image-dir=IMAGE_DIR]
8
+ [-n CLOUD_IMAGE_NAME | --cloud-image-name=CLOUD_IMAGE_NAME]
9
+ [-s | --insecure ]
10
+
11
+ `machinery` help [deploy]
12
+
13
+
14
+ ## DESCRIPTION
15
+
16
+ The `deploy` command builds and deploys an image to an OpenStack cloud.
17
+ This command is particularly useful for testing, debugging, or for validation.
18
+
19
+
20
+ > #### NOTE: Set Password for Unattended Work
21
+ > Machinery asks for a password when sourcing the configuration
22
+ > file. This interrupts the work flow and the user has to enter
23
+ > this password.
24
+ > If you prefer to leave it uninterrupted and unattented, remove
25
+ > the following line in your cloud configuration file (see the `-c` option):
26
+ >
27
+ > read -s OS_PASSWORD_INPUT
28
+ >
29
+ > and set the password in the `OS_PASSWORD` variable:
30
+ >
31
+ > export OS_PASSWORD=YOUR_PASSWORD
32
+
33
+
34
+ ## ARGUMENTS
35
+
36
+ * `NAME` (required):
37
+ Name of the system description.
38
+
39
+
40
+ ## OPTIONS
41
+
42
+ * `-c CONFIG_FILE`, `--cloud-config=CONFIG_FILE` (required):
43
+ Path to file where the cloud config (openrc.sh) is located.
44
+ The configuration file is sourced by Machinery.
45
+
46
+ * `-i IMAGE_DIR`, `--image-dir=IMAGE_DIR` (optional):
47
+ Image file under specific path.
48
+
49
+ * `-n CLOUD_IMAGE_NAME`, `--cloud-image-name=CLOUD_IMAGE_NAME` (required):
50
+ Name of the image in the cloud.
51
+
52
+ * `-s`, `--insecure` (optional):
53
+ Allow to make "insecure" HTTPS requests, without checking the SSL
54
+ certificate when uploading to the cloud.
55
+
56
+ ## PREREQUISITES
57
+
58
+ * The `deploy` command requires the packages `kiwi` for building the image
59
+ and `python-glanceclient` for uploading the image to the cloud.
60
+
61
+ ## SUPPORTED ARCHITECTURES
62
+
63
+ Machinery only supports deploying x86_64 images on x86_64 systems.
64
+
65
+ ## EXAMPLES
66
+
67
+ * Build an image under the system description named `jeos`.
68
+ Deploy it to the OpenStack cloud name `tux-cloud` by using the
69
+ configuration file `openrc.sh` in directory `tux`:
70
+
71
+ $ `machinery` deploy jeos -n tux-cloud -c tux/openrc.sh
@@ -0,0 +1,58 @@
1
+
2
+ # export-autoyast — Export System Description as AutoYasST profile
3
+
4
+ ## SYNOPSIS
5
+
6
+ `machinery export-autoyast` -a | --autoyast-dir NAME
7
+ --force
8
+
9
+ `machinery` help export-autoyast
10
+
11
+
12
+ ## DESCRIPTION
13
+
14
+ The `export-autoyast` subcommand exports a stored system description as a AutoYaST
15
+ profile.
16
+
17
+
18
+ ## ARGUMENTS
19
+
20
+ * `NAME` (required):
21
+ Name of the system description.
22
+
23
+
24
+ ## OPTIONS
25
+
26
+ * `-a AUTOYAST_DIR`, `--autoyast-dir=AUTOYAST_DIR` (required):
27
+ Write the AutoYaST profile to a subdirectory at the specified directory. The directory
28
+ will be created if it does not exist yet.
29
+
30
+ * `--force` (optional):
31
+ Overwrite existing system description
32
+
33
+
34
+ ## SYSTEM REGISTRATION
35
+
36
+ * To register a SLES 12 system automatically with AutoYaST, it is required to
37
+ edit the generated profile. The following example registers the system with
38
+ the SUSE Customer Center.
39
+
40
+ ```xml
41
+ <suse_register>
42
+ <do_registration config:type="boolean">true</do_registration>
43
+ <email>tux@example.com</email>
44
+ <reg_code>MY_SECRET_REGCODE</reg_code>
45
+ <install_updates config:type="boolean">true</install_updates>
46
+ <slp_discovery config:type="boolean">false</slp_discovery>
47
+ </suse_register>
48
+ ```
49
+
50
+ * More information can be found at the SUSE AutoYaST documentation.
51
+ https://www.suse.com/documentation/sles-12/singlehtml/book_autoyast/book_autoyast.html
52
+
53
+
54
+ ## EXAMPLES
55
+
56
+ * Export the `myhost` system description to `/tmp/myhost-autoyast`:
57
+
58
+ $ `machinery` export-autoyast myhost --autoyast-dir=/tmp
@@ -0,0 +1,38 @@
1
+
2
+ # export-kiwi — Export System Description as KIWI Image Description
3
+
4
+ ## SYNOPSIS
5
+
6
+ `machinery export-kiwi` -k | --kiwi-dir NAME
7
+ --force
8
+
9
+ `machinery` help export-kiwi
10
+
11
+
12
+ ## DESCRIPTION
13
+
14
+ The `export-kiwi` subcommand exports a stored system description as a KIWI
15
+ image description.
16
+
17
+
18
+ ## ARGUMENTS
19
+
20
+ * `NAME` (required):
21
+ Name of the system description.
22
+
23
+
24
+ ## OPTIONS
25
+
26
+ * `-k KIWI_DIR`, `--kiwi-dir=KIWI_DIR` (required):
27
+ Write the KIWI image description to a subdirectory at the specified directory. The directory
28
+ will be created if it does not exist yet.
29
+
30
+ * `--force` (optional):
31
+ Overwrite existing system description
32
+
33
+
34
+ ## EXAMPLES
35
+
36
+ * Export the `myhost` system description to `/tmp/myhost-kiwi`:
37
+
38
+ $ `machinery` export-kiwi myhost --kiwi-dir=/tmp
@@ -0,0 +1,108 @@
1
+
2
+ # inspect-container — Inspect Container
3
+
4
+ ## SYNOPSIS
5
+
6
+ `machinery inspect-container` [OPTIONS] IMAGENAME
7
+
8
+ `machinery inspect-container` [OPTIONS] IMAGEID
9
+
10
+ `machinery` help inspect-container
11
+
12
+
13
+ ## DESCRIPTION
14
+
15
+ The `inspect-container` command inspects a container image. It creates and starts the container from the provided image before inspection
16
+ and generates a system description from the gathered data. After the inspection the container will be killed and removed again.
17
+ This approach ensures that no containers and images are affected by the inspection.
18
+
19
+ Right now the container inspection only supports Docker images.
20
+
21
+ The system data is structured into scopes, controlled by the
22
+ `--scope` option.
23
+
24
+ **Note**:
25
+ Machinery will always inspect all specified scopes, and skip scopes which
26
+ trigger errors.
27
+
28
+
29
+ ## ARGUMENTS
30
+
31
+ * `IMAGENAME / IMAGEID` (required):
32
+ The name or id of the image to be inspected. The provided name or id will also be
33
+ used as the name of the stored system description unless another name is
34
+ provided with the `--name` option.
35
+
36
+
37
+ ## OPTIONS
38
+
39
+ * `-n NAME`, `--name=NAME` (optional):
40
+ Store the system description under the specified name.
41
+
42
+ * `-s SCOPE`, `--scope=SCOPE` (optional):
43
+ Inspect image for specified scope.
44
+ See the [Scope section](#Scopes) for more information.
45
+
46
+ * `-e SCOPE`, `--exclude-scope=EXCLUDE-SCOPE` (optional):
47
+ Inspect image for all scopes except the specified scope.
48
+ See the [Scope section](#Scopes) for more information.
49
+
50
+ * `-x`, `--extract-files` (optional):
51
+ Extract changed configuration and unmanaged files from the inspected container.
52
+ Shortcut for the combination of `--extract-changed-config-files`,
53
+ `--extract-unmanaged-files`, and `--extract-changed-managed-files`
54
+
55
+ * `--extract-changed-config-files` (optional):
56
+ Extract changed configuration files from the inspected image.
57
+
58
+ * `--extract-unmanaged-files` (optional):
59
+ Extract unmanaged files from the inspected image.
60
+
61
+ * `--extract-changed-managed-files` (optional):
62
+ Extract changed managed files from inspected image.
63
+
64
+ * `--skip-files` (optional):
65
+ Do not consider given files or directories during inspection. Either provide
66
+ one file or directory name or a list of names separated by commas. You can
67
+ also point to a file which contains a list of files to filter (one per line)
68
+ by adding an '@' before the path, e.g.
69
+
70
+ $ `machinery` inspect-container --skip-files=@/path/to/filter_file myimage
71
+
72
+ If a filename contains a comma it needs to be escaped, e.g.
73
+
74
+ $ `machinery` inspect-container --skip-files=/file\\,with_comma myimage
75
+
76
+ **Note**: File or directory names are not expanded, e.g. '../path' is taken
77
+ literally and not expanded.
78
+
79
+ * `--verbose` (optional):
80
+ Display the filters which are used during inspection.
81
+
82
+
83
+ ## PREREQUISITES
84
+
85
+ * Inspecting a container requires an image specified by the name or id.
86
+
87
+ * The image to be inspected needs to have the following commands:
88
+
89
+ * `rpm` or `dpkg`
90
+ * `zypper`, `yum` or `apt-cache`
91
+ * `rsync`
92
+ * `cat`
93
+ * `sed`
94
+ * `find`
95
+
96
+ ## EXAMPLES
97
+
98
+ * Inspect Docker container `myimage` and save system description under name 'MyContainer':
99
+
100
+ $ `machinery` inspect-container --name=MyContainer myimage
101
+
102
+ * Inspect Docker container `076f46c1bef1` and save system description under name 'MySecondContainer':
103
+
104
+ $ `machinery` inspect-container --name=MySecondContainer 076f46c1bef1
105
+
106
+ * Extract changed managed files and save them:
107
+
108
+ $ `machinery` inspect-container --scope=changed-managed-files --extract-files myimage