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
@@ -1,1399 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
- <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
- <title>machinery(1) - Machinery — A Systems Management Toolkit for Linux</title>
7
- <style type='text/css' media='all'>
8
- /* style: man */
9
- body#manpage {margin:0}
10
- .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
- .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
- .mp h2 {margin:10px 0 0 0}
13
- .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
- .mp h3 {margin:0 0 0 4ex}
15
- .mp dt {margin:0;clear:left}
16
- .mp dt.flush {float:left;width:8ex}
17
- .mp dd {margin:0 0 0 9ex}
18
- .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
- .mp pre {margin-bottom:20px}
20
- .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
- .mp h2+pre,.mp h3+pre {margin-top:5px}
22
- .mp img {display:block;margin:auto}
23
- .mp h1.man-title {display:none}
24
- .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
25
- .mp h2 {font-size:16px;line-height:1.25}
26
- .mp h1 {font-size:20px;line-height:2}
27
- .mp {text-align:justify;background:#fff}
28
- .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
- .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
- .mp u {text-decoration:underline}
31
- .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
- .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
- .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
34
- .mp b.man-ref {font-weight:normal;color:#434241}
35
- .mp pre {padding:0 4ex}
36
- .mp pre code {font-weight:normal;color:#434241}
37
- .mp h2+pre,h3+pre {padding-left:0}
38
- ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
39
- ol.man-decor {width:100%}
40
- ol.man-decor li.tl {text-align:left}
41
- ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
- ol.man-decor li.tr {text-align:right;float:right}
43
- </style>
44
- </head>
45
- <!--
46
- The following styles are deprecated and will be removed at some point:
47
- div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
-
49
- The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
- .man-navigation should be used instead.
51
- -->
52
- <body id='manpage'>
53
- <div class='mp' id='man'>
54
-
55
- <div class='man-navigation' style='display:none'>
56
- <a href="#SYNOPSIS">SYNOPSIS</a>
57
- <a href="#DESCRIPTION">DESCRIPTION</a>
58
- <a href="#WORK-FLOW-EXAMPLES">WORK FLOW EXAMPLES</a>
59
- <a href="#CONCEPTUAL-OVERVIEW">CONCEPTUAL OVERVIEW</a>
60
- <a href="#OPTIONS-FOR-ALL-SUBCOMMANDS">OPTIONS FOR ALL SUBCOMMANDS</a>
61
- <a href="#analyze-Analyze-System-Description">analyze — Analyze System Description</a>
62
- <a href="#build-Build-Image-from-System-Description">build — Build Image from System Description</a>
63
- <a href="#compare-Compare-System-Descriptions">compare — Compare System Descriptions</a>
64
- <a href="#config-Configure-Machinery">config — Configure Machinery</a>
65
- <a href="#copy-Copy-System-Description">copy — Copy System Description</a>
66
- <a href="#deploy-Deploy-Image-to-OpenStack-Cloud">deploy — Deploy Image to OpenStack Cloud</a>
67
- <a href="#export-autoyast-Export-System-Description-as-AutoYasST-profile">export-autoyast — Export System Description as AutoYasST profile</a>
68
- <a href="#export-kiwi-Export-System-Description-as-KIWI-Image-Description">export-kiwi — Export System Description as KIWI Image Description</a>
69
- <a href="#inspect-Inspect-Running-System">inspect — Inspect Running System</a>
70
- <a href="#inspect-container-Inspect-Container">inspect-container — Inspect Container</a>
71
- <a href="#list-List-System-Descriptions">list — List System Descriptions</a>
72
- <a href="#man-Shows-Man-Page">man — Shows Man Page</a>
73
- <a href="#move-Move-System-Description">move — Move System Description</a>
74
- <a href="#remove-Remove-System-Descriptions">remove — Remove System Descriptions</a>
75
- <a href="#serve-Serve-System-Descriptions-Using-A-Web-Server">serve — Serve System Descriptions Using A Web Server</a>
76
- <a href="#show-Show-System-Description">show — Show System Description</a>
77
- <a href="#upgrade-format-Upgrade-System-Description">upgrade-format — Upgrade System Description</a>
78
- <a href="#validate-Validate-System-Description">validate — Validate System Description</a>
79
- <a href="#FILES-AND-DEVICES">FILES AND DEVICES</a>
80
- <a href="#ENVIRONMENT">ENVIRONMENT</a>
81
- <a href="#COPYRIGHT">COPYRIGHT</a>
82
- </div>
83
-
84
- <ol class='man-decor man-head man head'>
85
- <li class='tl'>machinery(1)</li>
86
- <li class='tc'></li>
87
- <li class='tr'>machinery(1)</li>
88
- </ol>
89
-
90
- <h1>Machinery — A Systems Management Toolkit for Linux</h1>
91
- <!--
92
-
93
- General procedure:
94
-
95
- 1. Add the short description of a new command into the COMMANDS section
96
- 2. Copy the subcommand-template.1.md to machinery-SUBCOMMAND.1.md
97
- 3. Insert your description in your machinery-SUBCOMMAND.1.md file
98
-
99
- -->
100
-
101
-
102
- <h2 id="SYNOPSIS">SYNOPSIS</h2>
103
-
104
- <p><code>machinery</code> SUBCOMMAND [options] <br />
105
- <code>machinery</code> help [SUBCOMMAND]</p>
106
-
107
- <h2 id="DESCRIPTION">DESCRIPTION</h2>
108
-
109
- <p>Machinery is a systems management toolkit for Linux. It supports configuration
110
- discovery, system validation, and service migration. Machinery is based on the
111
- idea of an universal system description. Machinery has a set of commands which
112
- work with this system description. These commands can be combined to form work
113
- flows. Machinery is targeted at the system administrator of the data center.</p>
114
-
115
- <h2 id="WORK-FLOW-EXAMPLES">WORK FLOW EXAMPLES</h2>
116
-
117
- <h3 id="Inspect-a-System-and-Show-Results">Inspect a System and Show Results</h3>
118
-
119
- <ul>
120
- <li><code>machinery inspect --extract-files --name=NAME HOSTNAME</code></li>
121
- <li><code>machinery show NAME</code></li>
122
- </ul>
123
-
124
-
125
- <h3 id="Inspect-Two-Systems-and-Compare-Them">Inspect Two Systems and Compare Them</h3>
126
-
127
- <ul>
128
- <li><code>machinery inspect HOSTNAME1</code></li>
129
- <li><code>machinery inspect HOSTNAME2</code></li>
130
- <li><code>machinery compare HOSTNAME1 HOSTNAME2</code></li>
131
- </ul>
132
-
133
-
134
- <h3 id="Fully-Inspect-a-System-and-Export-a-Kiwi-Description">Fully Inspect a System and Export a Kiwi Description</h3>
135
-
136
- <ul>
137
- <li><code>machinery inspect --extract-files HOSTNAME</code></li>
138
- <li><code>machinery export-kiwi --kiwi-dir=~/kiwi HOSTNAME</code></li>
139
- </ul>
140
-
141
-
142
- <h3 id="Fully-Inspect-a-System-and-Export-an-AutoYaST-Profile">Fully Inspect a System and Export an AutoYaST Profile</h3>
143
-
144
- <ul>
145
- <li><code>machinery inspect --extract-files HOSTNAME</code></li>
146
- <li><code>machinery export-autoyast --autoyast-dir=~/autoyast HOSTNAME</code></li>
147
- </ul>
148
-
149
-
150
- <h3 id="Fully-Inspect-a-System-and-Deploy-a-Replicate-to-the-Cloud">Fully Inspect a System and Deploy a Replicate to the Cloud</h3>
151
-
152
- <ul>
153
- <li><code>machinery inspect --extract-files HOSTNAME</code></li>
154
- <li><code>machinery deploy --cloud-config=~/openrc.sh HOSTNAME</code></li>
155
- </ul>
156
-
157
-
158
- <h3 id="How-to-upgrade-a-SLES-11-SP3-system-to-SLES-12">How to upgrade a SLES 11 SP3 system to SLES 12</h3>
159
-
160
- <ul>
161
- <li>Machinery can help you to upgrade without affecting the original system.
162
- For more details please read the Wiki Page: <br />
163
- https://github.com/SUSE/machinery/wiki/How-to-upgrade-a-SLES-11-SP3-system-to-SLES-12</li>
164
- </ul>
165
-
166
-
167
- <h2 id="CONCEPTUAL-OVERVIEW">CONCEPTUAL OVERVIEW</h2>
168
-
169
- <p>Machinery's core concept is the complete representation of a system by a
170
- universal system description.
171
- System descriptions are managed independently of the described
172
- systems which allows for system state conservation and offline preparation of
173
- modifications.</p>
174
-
175
- <p>Machinery's subcommands work on the system description as the connecting
176
- element.
177
- System descriptions are obtained by inspecting systems, importing from other
178
- formats, manual creation or merging other descriptions.
179
- Machinery can store and modify system descriptions to allow changes to
180
- described state of the system.
181
- System descriptions can be compared to find similarities and differences
182
- between them or analyzed to deepen the knowledge about particular aspects of
183
- the system.
184
- System descriptions may be exported to other formats and can be used to
185
- migrate or replicate systems.</p>
186
-
187
- <p>Subcommands can be combined in different ways to accomodate higher-level work
188
- flows and use cases.
189
- These are some implemented and planned use cases:</p>
190
-
191
- <p>Migrate a physical system to a virtual environment:</p>
192
-
193
- <ul>
194
- <li>Inspect a system to obtain a system description</li>
195
- <li>Export the system description to a Kiwi configuration</li>
196
- <li>Build a cloud image from the configuration</li>
197
- <li>Deploy the image to the cloud</li>
198
- </ul>
199
-
200
-
201
- <p>Migrate a system while changing the configuration:</p>
202
-
203
- <ul>
204
- <li>Inspect a system to obtain a system description</li>
205
- <li>Modify the system description</li>
206
- <li>Build image for deployment</li>
207
- </ul>
208
-
209
-
210
- <p>Using Machinery as an extension from other formats:</p>
211
-
212
- <ul>
213
- <li>Import AutoYaST profile as system description</li>
214
- <li>Build image for deployment</li>
215
- </ul>
216
-
217
-
218
- <p>Machinery provides an extensible set of tools which can be combined to create
219
- higher-level work flows.
220
- It is designed for environments which focus on automation, integration
221
- of diverse tools and accountable management.
222
- Machinery integrates with existing configuration management solutions to
223
- address use cases currently not covered by them.</p>
224
-
225
- <h3 id="The-machinery-Command">The machinery Command</h3>
226
-
227
- <p>Machinery is implemented as a command line tool named <code>machinery</code>. The
228
- <code>machinery</code> command has several subcommands for specific tasks. All
229
- subcommands work with the same system description identified by an optional
230
- name which can be used by all subcommands.</p>
231
-
232
- <h3 id="Scopes">Scopes</h3>
233
-
234
- <p>The system description is structured into "scopes". A scope covers a specific
235
- part of the configuration of the inspected system such as installed packages,
236
- repositories, or configuration files.</p>
237
-
238
- <p>For example, if you are only interested in the installed packages, limit the
239
- scope to <code>packages</code>. This will output only the requested information.</p>
240
-
241
- <p>Machinery supports the following scopes:</p>
242
-
243
- <ul>
244
- <li>os</li>
245
- </ul>
246
-
247
-
248
- <p>Contains information about the operating system, name, version, and
249
- architecture of the inspected system.</p>
250
-
251
- <ul>
252
- <li>packages</li>
253
- </ul>
254
-
255
-
256
- <p>Contains information on all installed RPM packages installed on the
257
- inspected system.</p>
258
-
259
- <ul>
260
- <li>patterns</li>
261
- </ul>
262
-
263
-
264
- <p>Contains all patterns installed on the inspected system. A pattern is a
265
- collection of software packages.
266
- The meaning of software patterns depends on the package manager of the
267
- distribution. Therefore, the pattern scope on SUSE based systems uses the
268
- <code>zypper</code> command to obtain the information about installed pattern names.</p>
269
-
270
- <ul>
271
- <li>repositories</li>
272
- </ul>
273
-
274
-
275
- <p>Contains all information about software repositories configured on the
276
- inspected system. The information about repositories depends on the package
277
- manager of the distribution. Thus on SUSE-based systems the <code>zypper</code> command
278
- is used. Machinery collects the following information from each configured repository:</p>
279
-
280
- <ul>
281
- <li><p>The alias name of the repository.</p></li>
282
- <li><p>The repository type, rpm-md and YaST types that are used on SUSE systems.</p></li>
283
- <li><p>The path to the repository. This could be a local path, a remote location,
284
- a device, or a file.</p></li>
285
- <li><p>A boolean flag that indicates if this repository is in use or not.</p></li>
286
- <li><p>A boolean flag that indicates if this repository should update the locally
287
- stored metadata files with metadata files from the origin automatically or
288
- not.</p></li>
289
- <li><p>A boolean flag that indicates if packages which would be installed from
290
- this repository should be checked by their gpg key or not.</p></li>
291
- <li><p>A numeric value for a priority. The priority of a repository is compared
292
- to the priorities of all other activated repositories. Values can
293
- range from 1 (highest) to 99 (lowest, default).</p></li>
294
- <li><p>users</p></li>
295
- </ul>
296
-
297
-
298
- <p>Contains information about the system users including user and group ids,
299
- login information, such as password hashes and - if available - additional
300
- password properties.</p>
301
-
302
- <ul>
303
- <li>groups</li>
304
- </ul>
305
-
306
-
307
- <p>Contains information about the system groups such as group attributes and the
308
- list of group members.</p>
309
-
310
- <ul>
311
- <li>services</li>
312
- </ul>
313
-
314
-
315
- <p>Services are applications running in the background doing continuous work
316
- or waiting for requests to do work.
317
- The scope determines which services are configured to be started in which
318
- runlevel. It uses the <code>chkconfig</code> command to obtain that information.
319
- The xinetd services that are also displayed by <code>chkconfig</code> are switched
320
- on/off by editing config files and are ignored in this context.</p>
321
-
322
- <ul>
323
- <li>config_files</li>
324
- </ul>
325
-
326
-
327
- <p>Contains all configuration files which have been changed since they were
328
- installed.
329
- Configuration files are all those files which are marked as such in the
330
- package which has installed them. A configuration file change is reported
331
- if its content or its attributes like Linux permission bits or ownership
332
- have changed.</p>
333
-
334
- <ul>
335
- <li>changed_managed_files</li>
336
- </ul>
337
-
338
-
339
- <p>Contains the names and contents of all non-configuration files which have
340
- been changed compared to the files in the package. A file change is reported
341
- if its content or its attributes like Linux permission bits or ownership
342
- have changed.</p>
343
-
344
- <ul>
345
- <li>unmanaged_files</li>
346
- </ul>
347
-
348
-
349
- <p>Contains the names and contents of all files which are not part of any RPM
350
- package. The list of unmanaged files contains only plain files and
351
- directories. Special files like device nodes, named pipes and Unix domain
352
- sockets are ignored. The directories <code>/tmp</code>, <code>/var/tmp</code>, <code>/.snapshots/</code>,
353
- <code>/var/run</code> and special mounts like procfs and sysfs are ignored, too.
354
- If a directory is in this list, no file or directory below it belongs to a
355
- RPM package.</p>
356
-
357
- <p>Meta data information of unmanaged files is only available if the files were
358
- extracted during inspection.</p>
359
-
360
- <p>Using the <code>--extract-unmanaged-files</code> option, the files are transferred from
361
- the system and stored in the system description. Depending on the content of
362
- the inspected system, the amount of data stored may be huge.</p>
363
-
364
- <h3 id="System-Description">System Description</h3>
365
-
366
- <p>The System Description format and file structure is documented in the machinery
367
- wiki: <a href="https://github.com/SUSE/machinery/wiki/System-Description-Format" data-bare-link="true">https://github.com/SUSE/machinery/wiki/System-Description-Format</a></p>
368
-
369
- <p>Machinery validates descriptions on load. It checks that the JSON structure of
370
- the manifest file, which contains the primary and meta data of a description, is
371
- correct and it adheres to the schema. Validation errors are reported as warnings.
372
- It also checks that the information about extracted files is consistent. Missing
373
- files or extra files without reference in the manifest are treated also as
374
- warnings. All other issues are errors which need to be fixed so that Machinery
375
- can use the description</p>
376
-
377
- <p>To manually validate a description use the <code>machinery validate</code> command.</p>
378
-
379
- <h3 id="Use-Cases">Use Cases</h3>
380
-
381
- <p>Some of the important use cases of Machinery are:</p>
382
-
383
- <ul>
384
- <li><p>Inspecting a System and Collecting Information</p>
385
-
386
- <p>Collecting a variety of information. Limit the gathered
387
- information with scopes (see section about scopes). Each inspection step
388
- updates the system description.</p></li>
389
- <li><p>Reviewing System Description</p>
390
-
391
- <p>After a successful inspection, the system description can be displayed on
392
- the console or the output can be fed into other tools.</p></li>
393
- <li><p>Cloning a System</p>
394
-
395
- <p>An inspected system can be cloned. The inspection step returns a system
396
- description which is used as the basis for cloning physical or virtual
397
- instances. Machinery can build a system image from the description, which
398
- can then for example be deployed to a cloud.</p></li>
399
- </ul>
400
-
401
-
402
- <h2 id="OPTIONS-FOR-ALL-SUBCOMMANDS">OPTIONS FOR ALL SUBCOMMANDS</h2>
403
-
404
- <dl>
405
- <dt><code>--version</code></dt><dd><p>Displays version of <code>machinery</code> tool. Exit when done.</p></dd>
406
- <dt class="flush"><code>--debug</code></dt><dd><p>Enable debug mode. Machinery writes additional information into the log
407
- file which can be useful to track down problems.</p></dd>
408
- </dl>
409
-
410
-
411
- <h2 id="analyze-Analyze-System-Description">analyze — Analyze System Description</h2>
412
-
413
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
414
-
415
- <p><code>machinery analyze</code> NAME -o | --operation=OPERATION</p>
416
-
417
- <p><code>machinery</code> help analyze</p>
418
-
419
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
420
-
421
- <p>The <code>analyze</code> subcommand analyzes an existing system description and enriches
422
- it with additional information. Supported operations are:</p>
423
-
424
- <dl>
425
- <dt><code>config-file-diffs</code></dt><dd>Generates the diffs between the extracted changed config files from the
426
- system and the original versions from the RPM packages.
427
- The diffs can be shown using <code>machinery show --show-diffs</code></dd>
428
- </dl>
429
-
430
-
431
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
432
-
433
- <dl>
434
- <dt><code>NAME</code> (required)</dt><dd>Name of the system description.</dd>
435
- </dl>
436
-
437
-
438
- <h3 id="OPTIONS">OPTIONS</h3>
439
-
440
- <dl>
441
- <dt><code>-o OPERATION</code>, <code>--operation=OPERATION</code> (required)</dt><dd>The analyze operation to perform.</dd>
442
- </dl>
443
-
444
-
445
- <h3 id="EXAMPLES">EXAMPLES</h3>
446
-
447
- <dl>
448
- <dt>Analyze the config file diffs for the <code>myhost</code> system description:</dt><dd><p></p>
449
-
450
- <p>$ <code>machinery</code> analyze myhost --operation=config-file-diffs</p></dd>
451
- </dl>
452
-
453
-
454
- <h2 id="build-Build-Image-from-System-Description">build — Build Image from System Description</h2>
455
-
456
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
457
-
458
- <p><code>machinery build</code> NAME -i IMAGE-DIR | --image-dir=IMAGE-DIR</p>
459
-
460
- <p><code>machinery</code> help build</p>
461
-
462
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
463
-
464
- <p>The <code>build</code> command builds an image from a system description. The image is a
465
- system image in the qcow2 format, which can be used with the KVM hypervisor.
466
- It can be run locally or deployed to a cloud environment.</p>
467
-
468
- <p><code>machinery</code> uses the image building command line tool
469
- <a href="http://en.opensuse.org/Portal:KIWI">KIWI</a> to perform the actual build. KIWI
470
- data is stored to a temporary directory and cleaned up after the build. The KIWI
471
- log is shown as output of the <code>build</code> command format for showing progress and
472
- diagnosing errors.</p>
473
-
474
- <p>When building an image, Machinery filters out some files which would break the
475
- built image. The list of filters is shown at the beginning of the build.</p>
476
-
477
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
478
-
479
- <dl>
480
- <dt><code>NAME</code> (required)</dt><dd>Use specified system description.</dd>
481
- </dl>
482
-
483
-
484
- <h3 id="OPTIONS">OPTIONS</h3>
485
-
486
- <dl>
487
- <dt><code>-i IMAGE-DIR</code>, <code>--image-dir=IMAGE-DIR</code> (required)</dt><dd><p>Save image file under specified path.</p></dd>
488
- <dt><code>-d</code>, <code>--enable-dhcp</code> (optional)</dt><dd><p>Enable DHCP client on first network card of built image</p></dd>
489
- <dt><code>-s</code>, <code>--enable-ssh</code> (optional)</dt><dd><p>Enable SSH service in built image</p></dd>
490
- </dl>
491
-
492
-
493
- <h3 id="PREREQUISITES">PREREQUISITES</h3>
494
-
495
- <ul>
496
- <li><p>The <code>build</code> command requires the packages <code>kiwi</code> and <code>kiwi-desc-vmxboot</code>.</p></li>
497
- <li><p>The necessary vmxboot template for the machinery being built must be
498
- installed (i.e. if you want to build an openSUSE Leap machine then the
499
- template <code>/usr/share/kiwi/image/vmxboot/suse-leap42.1</code> is required)</p></li>
500
- <li><p>All repositories in the system description must be accessible from the
501
- build machine on which <code>machinery build</code> is called.</p></li>
502
- <li><p>Machinery can only build x86_64 images on x86_64 systems at the moment.</p></li>
503
- </ul>
504
-
505
-
506
- <h3 id="EXAMPLES">EXAMPLES</h3>
507
-
508
- <ul>
509
- <li><p>To build an image from the system description named "tux" and to save the
510
- image under the <code>/tmp/tux/</code> directory:</p>
511
-
512
- <p>$ <code>machinery</code> build tux -i /tmp/tux/</p></li>
513
- </ul>
514
-
515
-
516
- <h2 id="compare-Compare-System-Descriptions">compare — Compare System Descriptions</h2>
517
-
518
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
519
-
520
- <p><code>machinery compare</code> [-s SCOPE | --scope=SCOPE] [-e EXCLUDE-SCOPE | --exclude-scope=EXCLUDE-SCOPE] [--no-pager] [--show-all] [--html] NAME1 NAME2</p>
521
-
522
- <p><code>machinery</code> help compare</p>
523
-
524
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
525
-
526
- <p>The <code>compare</code> command compares stored system descriptions. The scope option can
527
- be used to limit the output to the given scopes.</p>
528
-
529
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
530
-
531
- <dl>
532
- <dt><code>NAME1</code> (required)</dt><dd><p>First system description to compare.</p></dd>
533
- <dt><code>NAME2</code> (required)</dt><dd><p>Second system description to compare.</p></dd>
534
- </dl>
535
-
536
-
537
- <h3 id="OPTIONS">OPTIONS</h3>
538
-
539
- <dl>
540
- <dt><code>-s SCOPE</code>, <code>--scope=SCOPE</code> (optional)</dt><dd><p>Limit output to the specified scope.
541
- See the <a href="#Scopes" data-bare-link="true">Scope section</a> for more information.</p></dd>
542
- <dt><code>-e SCOPE</code>, <code>--exclude-scope=EXCLUDE-SCOPE</code> (optional)</dt><dd><p>Skip output of the specified scope.
543
- See the <a href="#Scopes" data-bare-link="true">Scope section</a> for more information.</p></dd>
544
- <dt><code>--no-pager</code> (optional)</dt><dd><p>Do not pipe output into a pager.</p></dd>
545
- <dt><code>--show-all</code> (optional)</dt><dd><p>Show also common properties of the descriptions (not only the differences).</p></dd>
546
- <dt><code>--html</code> (optional)</dt><dd><p>Shows the comparison of two system descriptions in the web browser.</p></dd>
547
- </dl>
548
-
549
-
550
- <h3 id="EXAMPLES">EXAMPLES</h3>
551
-
552
- <ul>
553
- <li><p>Compare system descriptions saved as <code>earth</code> and <code>moon</code>:</p>
554
-
555
- <p>$ <code>machinery</code> compare earth moon</p></li>
556
- <li><p>Compare system descriptions, but limit the scope to repositories only:</p>
557
-
558
- <p>$ <code>machinery</code> compare earth moon -s repositories</p></li>
559
- <li><p>Compare lists of changed managed files and include the common ones in the
560
- list:</p>
561
-
562
- <p>$ <code>machinery</code> compare earth moon --scope=changed-managed-files --show-all</p></li>
563
- <li><p>Compares system descriptions and shows the result in HTML format in your web browser:</p>
564
-
565
- <p> $ machinery compare --html earth moon</p></li>
566
- </ul>
567
-
568
-
569
- <h2 id="config-Configure-Machinery">config — Configure Machinery</h2>
570
-
571
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
572
-
573
- <p><code>machinery config</code></p>
574
-
575
- <p><code>machinery config</code> KEY</p>
576
-
577
- <p><code>machinery config</code> KEY=VALUE</p>
578
-
579
- <p><code>machinery</code> help config</p>
580
-
581
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
582
-
583
- <p>The <code>config</code> command shows or changes machinery's configuration.</p>
584
-
585
- <p>If no arguments are passed the <code>config</code> command lists all configuration
586
- entries and their values. If only the key is provided its value is shown.
587
- If key and value are specified this configuration entry is set accordingly.</p>
588
-
589
- <p>The configuration is stored in <code>~/.machinery/machinery.config</code>.</p>
590
-
591
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
592
-
593
- <dl>
594
- <dt class="flush"><code>KEY</code></dt><dd><p>Name of the configuration entry.</p></dd>
595
- <dt class="flush"><code>VALUE</code></dt><dd><p>Value of the configuration entry.</p></dd>
596
- </dl>
597
-
598
-
599
- <h3 id="EXAMPLES">EXAMPLES</h3>
600
-
601
- <dl>
602
- <dt>Turn off hints:</dt><dd><p></p>
603
-
604
- <p>$ <code>machinery</code> config hints=off</p></dd>
605
- <dt>Show current configuration of hints:</dt><dd><p></p>
606
-
607
- <p>$ <code>machinery</code> config hints</p></dd>
608
- <dt>List all configuration entries and their values:</dt><dd><p></p>
609
-
610
- <p>$ <code>machinery</code> config</p></dd>
611
- </dl>
612
-
613
-
614
- <h2 id="copy-Copy-System-Description">copy — Copy System Description</h2>
615
-
616
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
617
-
618
- <p><code>machinery copy</code>
619
- FROM_NAME TO_NAME</p>
620
-
621
- <p><code>machinery</code> help copy</p>
622
-
623
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
624
-
625
- <p>The <code>copy</code> command copies a stored system description. It creates a new
626
- description named TO_NAME containing the same content as the description
627
- FROM_NAME.</p>
628
-
629
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
630
-
631
- <dl>
632
- <dt><code>FROM_NAME</code> (required)</dt><dd><p>Name of the source system description.</p></dd>
633
- <dt><code>TO_NAME</code> (required)</dt><dd><p>Name of the target system description.</p></dd>
634
- </dl>
635
-
636
-
637
- <h3 id="EXAMPLES">EXAMPLES</h3>
638
-
639
- <dl>
640
- <dt>Create a copy of the system description <code>earth</code> under the name <code>moon</code>:</dt><dd><p></p>
641
-
642
- <p>$ <code>machinery</code> copy earth moon</p></dd>
643
- </dl>
644
-
645
-
646
- <h2 id="deploy-Deploy-Image-to-OpenStack-Cloud">deploy — Deploy Image to OpenStack Cloud</h2>
647
-
648
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
649
-
650
- <p><code>machinery deploy</code> NAME -c CONFIG_FILE | --cloud-config=CONFIG_FILE
651
- [-i IMAGE_DIR | --image-dir=IMAGE_DIR]
652
- [-n CLOUD_IMAGE_NAME | --cloud-image-name=CLOUD_IMAGE_NAME]
653
- [-s | --insecure ]</p>
654
-
655
- <p><code>machinery</code> help [deploy]</p>
656
-
657
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
658
-
659
- <p>The <code>deploy</code> command builds and deploys an image to an OpenStack cloud.
660
- This command is particularly useful for testing, debugging, or for validation.</p>
661
-
662
- <blockquote><h4 id="NOTE-Set-Password-for-Unattended-Work">NOTE: Set Password for Unattended Work</h4>
663
-
664
- <p>Machinery asks for a password when sourcing the configuration
665
- file. This interrupts the work flow and the user has to enter
666
- this password.
667
- If you prefer to leave it uninterrupted and unattented, remove
668
- the following line in your cloud configuration file (see the <code>-c</code> option):</p>
669
-
670
- <p> read -s OS_PASSWORD_INPUT</p>
671
-
672
- <p>and set the password in the <code>OS_PASSWORD</code> variable:</p>
673
-
674
- <pre><code>export OS_PASSWORD=YOUR_PASSWORD
675
- </code></pre></blockquote>
676
-
677
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
678
-
679
- <dl>
680
- <dt><code>NAME</code> (required)</dt><dd>Name of the system description.</dd>
681
- </dl>
682
-
683
-
684
- <h3 id="OPTIONS">OPTIONS</h3>
685
-
686
- <dl>
687
- <dt><code>-c CONFIG_FILE</code>, <code>--cloud-config=CONFIG_FILE</code> (required)</dt><dd><p>Path to file where the cloud config (openrc.sh) is located.
688
- The configuration file is sourced by Machinery.</p></dd>
689
- <dt><code>-i IMAGE_DIR</code>, <code>--image-dir=IMAGE_DIR</code> (optional)</dt><dd><p>Image file under specific path.</p></dd>
690
- <dt><code>-n CLOUD_IMAGE_NAME</code>, <code>--cloud-image-name=CLOUD_IMAGE_NAME</code> (required)</dt><dd><p>Name of the image in the cloud.</p></dd>
691
- <dt><code>-s</code>, <code>--insecure</code> (optional)</dt><dd><p>Allow to make "insecure" HTTPS requests, without checking the SSL
692
- certificate when uploading to the cloud.</p></dd>
693
- </dl>
694
-
695
-
696
- <h3 id="PREREQUISITES">PREREQUISITES</h3>
697
-
698
- <ul>
699
- <li>The <code>deploy</code> command requires the packages <code>kiwi</code> for building the image
700
- and <code>python-glanceclient</code> for uploading the image to the cloud.</li>
701
- </ul>
702
-
703
-
704
- <h3 id="SUPPORTED-ARCHITECTURES">SUPPORTED ARCHITECTURES</h3>
705
-
706
- <p>Machinery only supports deploying x86_64 images on x86_64 systems.</p>
707
-
708
- <h3 id="EXAMPLES">EXAMPLES</h3>
709
-
710
- <ul>
711
- <li><p>Build an image under the system description named <code>jeos</code>.
712
- Deploy it to the OpenStack cloud name <code>tux-cloud</code> by using the
713
- configuration file <code>openrc.sh</code> in directory <code>tux</code>:</p>
714
-
715
- <p>$ <code>machinery</code> deploy jeos -n tux-cloud -c tux/openrc.sh</p></li>
716
- </ul>
717
-
718
-
719
- <h2 id="export-autoyast-Export-System-Description-as-AutoYasST-profile">export-autoyast — Export System Description as AutoYasST profile</h2>
720
-
721
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
722
-
723
- <p><code>machinery export-autoyast</code> -a | --autoyast-dir NAME
724
- --force</p>
725
-
726
- <p><code>machinery</code> help export-autoyast</p>
727
-
728
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
729
-
730
- <p>The <code>export-autoyast</code> subcommand exports a stored system description as a AutoYaST
731
- profile.</p>
732
-
733
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
734
-
735
- <dl>
736
- <dt><code>NAME</code> (required)</dt><dd>Name of the system description.</dd>
737
- </dl>
738
-
739
-
740
- <h3 id="OPTIONS">OPTIONS</h3>
741
-
742
- <dl>
743
- <dt><code>-a AUTOYAST_DIR</code>, <code>--autoyast-dir=AUTOYAST_DIR</code> (required)</dt><dd><p>Write the AutoYaST profile to a subdirectory at the specified directory. The directory
744
- will be created if it does not exist yet.</p></dd>
745
- <dt><code>--force</code> (optional)</dt><dd><p>Overwrite existing system description</p></dd>
746
- </dl>
747
-
748
-
749
- <h3 id="SYSTEM-REGISTRATION">SYSTEM REGISTRATION</h3>
750
-
751
- <ul>
752
- <li><p>To register a SLES 12 system automatically with AutoYaST, it is required to
753
- edit the generated profile. The following example registers the system with
754
- the SUSE Customer Center.</p>
755
-
756
- <pre><code class="xml">&lt;suse_register&gt;
757
- &lt;do_registration config:type="boolean"&gt;true&lt;/do_registration&gt;
758
- &lt;email&gt;tux@example.com&lt;/email&gt;
759
- &lt;reg_code&gt;MY_SECRET_REGCODE&lt;/reg_code&gt;
760
- &lt;install_updates config:type="boolean"&gt;true&lt;/install_updates&gt;
761
- &lt;slp_discovery config:type="boolean"&gt;false&lt;/slp_discovery&gt;
762
- &lt;/suse_register&gt;
763
- </code></pre></li>
764
- <li>More information can be found at the SUSE AutoYaST documentation.
765
- https://www.suse.com/documentation/sles-12/singlehtml/book_autoyast/book_autoyast.html</li>
766
- </ul>
767
-
768
-
769
- <h3 id="EXAMPLES">EXAMPLES</h3>
770
-
771
- <dl>
772
- <dt>Export the <code>myhost</code> system description to <code>/tmp/myhost-autoyast</code>:</dt><dd><p></p>
773
-
774
- <p>$ <code>machinery</code> export-autoyast myhost --autoyast-dir=/tmp</p></dd>
775
- </dl>
776
-
777
-
778
- <h2 id="export-kiwi-Export-System-Description-as-KIWI-Image-Description">export-kiwi — Export System Description as KIWI Image Description</h2>
779
-
780
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
781
-
782
- <p><code>machinery export-kiwi</code> -k | --kiwi-dir NAME
783
- --force</p>
784
-
785
- <p><code>machinery</code> help export-kiwi</p>
786
-
787
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
788
-
789
- <p>The <code>export-kiwi</code> subcommand exports a stored system description as a KIWI
790
- image description.</p>
791
-
792
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
793
-
794
- <dl>
795
- <dt><code>NAME</code> (required)</dt><dd>Name of the system description.</dd>
796
- </dl>
797
-
798
-
799
- <h3 id="OPTIONS">OPTIONS</h3>
800
-
801
- <dl>
802
- <dt><code>-k KIWI_DIR</code>, <code>--kiwi-dir=KIWI_DIR</code> (required)</dt><dd><p>Write the KIWI image description to a subdirectory at the specified directory. The directory
803
- will be created if it does not exist yet.</p></dd>
804
- <dt><code>--force</code> (optional)</dt><dd><p>Overwrite existing system description</p></dd>
805
- </dl>
806
-
807
-
808
- <h3 id="EXAMPLES">EXAMPLES</h3>
809
-
810
- <dl>
811
- <dt>Export the <code>myhost</code> system description to <code>/tmp/myhost-kiwi</code>:</dt><dd><p></p>
812
-
813
- <p>$ <code>machinery</code> export-kiwi myhost --kiwi-dir=/tmp</p></dd>
814
- </dl>
815
-
816
-
817
- <h2 id="inspect-Inspect-Running-System">inspect — Inspect Running System</h2>
818
-
819
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
820
-
821
- <p><code>machinery inspect</code> <a href="#OPTIONS" title="OPTIONS" data-bare-link="true">OPTIONS</a> HOSTNAME</p>
822
-
823
- <p><code>machinery</code> help inspect</p>
824
-
825
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
826
-
827
- <p>The <code>inspect</code> command inspects a running system and generates a system
828
- description from the gathered data.</p>
829
-
830
- <p>The system data is structured into scopes, controlled by the
831
- <code>--scope</code> option.</p>
832
-
833
- <p><strong>Note</strong>:
834
- Machinery will always inspect all specified scopes, and skip scopes which
835
- trigger errors.</p>
836
-
837
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
838
-
839
- <dl>
840
- <dt><code>HOSTNAME</code> (required)</dt><dd>The host name of the system to be inspected. The host name will also be
841
- used as the name of the stored system description unless another name is
842
- provided with the <code>--name</code> option.</dd>
843
- </dl>
844
-
845
-
846
- <h3 id="OPTIONS">OPTIONS</h3>
847
-
848
- <dl>
849
- <dt><code>-n NAME</code>, <code>--name=NAME</code> (optional)</dt><dd><p>Store the system description under the specified name.</p></dd>
850
- <dt><code>-s SCOPE</code>, <code>--scope=SCOPE</code> (optional)</dt><dd><p>Inspect system for specified scope.
851
- See the <a href="#Scopes" data-bare-link="true">Scope section</a> for more information.</p></dd>
852
- <dt><code>-e SCOPE</code>, <code>--exclude-scope=EXCLUDE-SCOPE</code> (optional)</dt><dd><p>Inspect system for all scopes except the specified scope.
853
- See the <a href="#Scopes" data-bare-link="true">Scope section</a> for more information.</p></dd>
854
- <dt><code>-r USER</code>, <code>--remote-user=USER</code> (optional)</dt><dd><p>Defines the user which is used to access the inspected system via SSH.
855
- This user needs to be allowed to run certain commands using sudo (see
856
- PREREQUISITES for more information).
857
- To change the default-user use <code>machinery config remote-user=USER</code></p></dd>
858
- <dt><code>-p SSH-PORT</code>, <code>--ssh-port SSH-PORT</code> (optional)</dt><dd><p>Specifies the SSH port of the remote SSH server.</p></dd>
859
- <dt><code>-i SSH-IDENTITY-FILE</code>, <code>--ssh-identity-file SSH-IDENTITY-FILE</code> (optional)</dt><dd><p>Specifies the SSH private key what should be used to authenticate with the
860
- remote SSH server. Keys with a passphrase are not allowed here. Use the ssh-agent
861
- instead.</p></dd>
862
- <dt><code>-x</code>, <code>--extract-files</code> (optional)</dt><dd><p>Extract changed configuration and unmanaged files from the inspected system.
863
- Shortcut for the combination of <code>--extract-changed-config-files</code>,
864
- <code>--extract-unmanaged-files</code>, and <code>--extract-changed-managed-files</code></p></dd>
865
- <dt><code>--extract-changed-config-files</code> (optional)</dt><dd><p>Extract changed configuration files from the inspected system.</p></dd>
866
- <dt><code>--extract-unmanaged-files</code> (optional)</dt><dd><p>Extract unmanaged files from the inspected system.</p></dd>
867
- <dt><code>--extract-changed-managed-files</code> (optional)</dt><dd><p>Extract changed managed files from inspected system.</p></dd>
868
- <dt><code>--skip-files</code> (optional)</dt><dd><p>Do not consider given files or directories during inspection. Either provide
869
- one file or directory name or a list of names separated by commas. You can
870
- also point to a file which contains a list of files to filter (one per line)
871
- by adding an '@' before the path, e.g.</p>
872
-
873
- <p> $ <code>machinery</code> inspect --skip-files=@/path/to/filter_file myhost</p>
874
-
875
- <p>If a filename contains a comma it needs to be escaped, e.g.</p>
876
-
877
- <p> $ <code>machinery</code> inspect --skip-files=/file\,with_comma myhost</p>
878
-
879
- <p><strong>Note</strong>: File or directory names are not expanded, e.g. '../path' is taken
880
- literally and not expanded.</p></dd>
881
- <dt><code>--verbose</code> (optional)</dt><dd><p>Display the filters which are used during inspection.</p></dd>
882
- </dl>
883
-
884
-
885
- <h3 id="PREREQUISITES">PREREQUISITES</h3>
886
-
887
- <ul>
888
- <li><p>Inspecting a local system requires running <code>machinery</code> as root.</p></li>
889
- <li><p>Inspecting a remote system requires passwordless SSH login as root on the
890
- inspected system.
891
- Use <code>ssh-agent</code> or asymmetric keys (you can transfer the current SSH key
892
- via <code>ssh-copy-id</code> to the inspected host, e.g.: <code>ssh-copy-id root@HOSTNAME</code>)</p></li>
893
- <li><p>The system to be inspected needs to have the following commands:</p>
894
-
895
- <ul>
896
- <li><code>rpm</code> or <code>dpkg</code></li>
897
- <li><code>zypper</code>, <code>yum</code> or <code>apt-cache</code></li>
898
- <li><code>rsync</code></li>
899
- <li><code>chkconfig</code>, <code>initctl</code> or <code>systemctl</code></li>
900
- <li><code>cat</code></li>
901
- <li><code>sed</code></li>
902
- <li><code>find</code></li>
903
- <li><code>tar</code></li>
904
- </ul>
905
- </li>
906
- <li><p>When inspecting as non-root the user has to have the following command
907
- whitelist given in the sudoers file.</p>
908
-
909
- <dl>
910
- <dt>On rpm based systems, like SUSE or Red Hat:</dt><dd><p></p>
911
-
912
- <p>machinery ALL=(ALL) NOPASSWD: /usr/bin/find,/usr/bin/cat,/bin/cat,/usr/bin/rsync,/bin/rpm -Va *,/bin/tar --create *,/usr/bin/stat</p></dd>
913
- <dt>On dpkg based systems, like Debian or Ubuntu:</dt><dd><p></p>
914
-
915
- <p>machinery ALL=(ALL) NOPASSWD: /usr/bin/find,/usr/bin/cat,/bin/cat,/usr/bin/rsync,/bin/tar --create *,/usr/bin/stat,/usr/bin/dpkg,/bin/readlink</p></dd>
916
- </dl>
917
- </li>
918
- <li><p>To add a remote <code>machinery</code> user run as root:</p>
919
-
920
- <h1><code>useradd -m machinery -c "remote user for machinery"</code></h1>
921
-
922
- <p>To configure a password for the new user run:</p>
923
-
924
- <h1><code>passwd machinery</code></h1></li>
925
- </ul>
926
-
927
-
928
- <h3 id="EXAMPLES">EXAMPLES</h3>
929
-
930
- <ul>
931
- <li><p>Inspect remote system <code>myhost</code> and save system description under name
932
- 'MySystem':</p>
933
-
934
- <p>$ <code>machinery</code> inspect --name=MySystem myhost</p></li>
935
- <li><p>Inspect the installed packages of your local system and save system description
936
- under the name 'localhost' (you need to become root):</p>
937
-
938
- <p># <code>machinery</code> inspect --scope="packages" localhost</p></li>
939
- <li><p>Extracts changed managed files and saves them in the same way as changed
940
- configuration files are saved:</p>
941
-
942
- <p>$ <code>machinery</code> inspect --scope=changed-managed-files --extract-files myhost</p></li>
943
- <li><p>To inspect the remote system <code>myhost</code> with the user <code>machinery</code>:</p>
944
-
945
- <p>$ <code>machinery</code> inspect --remote-user machinery myhost</p></li>
946
- </ul>
947
-
948
-
949
- <h2 id="inspect-container-Inspect-Container">inspect-container — Inspect Container</h2>
950
-
951
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
952
-
953
- <p><code>machinery inspect-container</code> <a href="#OPTIONS" title="OPTIONS" data-bare-link="true">OPTIONS</a> IMAGENAME</p>
954
-
955
- <p><code>machinery inspect-container</code> <a href="#OPTIONS" title="OPTIONS" data-bare-link="true">OPTIONS</a> IMAGEID</p>
956
-
957
- <p><code>machinery</code> help inspect-container</p>
958
-
959
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
960
-
961
- <p>The <code>inspect-container</code> command inspects a container image. It creates and starts the container from the provided image before inspection
962
- and generates a system description from the gathered data. After the inspection the container will be killed and removed again.
963
- This approach ensures that no containers and images are affected by the inspection.</p>
964
-
965
- <p>Right now we support only images from the type <code>docker</code>.</p>
966
-
967
- <p>The system data is structured into scopes, controlled by the
968
- <code>--scope</code> option.</p>
969
-
970
- <p><strong>Note</strong>:
971
- Machinery will always inspect all specified scopes, and skip scopes which
972
- trigger errors.</p>
973
-
974
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
975
-
976
- <dl>
977
- <dt><code>IMAGENAME / IMAGEID</code> (required)</dt><dd>The name or id of the image to be inspected. The provided name or id will also be
978
- used as the name of the stored system description unless another name is
979
- provided with the <code>--name</code> option.</dd>
980
- </dl>
981
-
982
-
983
- <h3 id="OPTIONS">OPTIONS</h3>
984
-
985
- <dl>
986
- <dt><code>-n NAME</code>, <code>--name=NAME</code> (optional)</dt><dd><p>Store the system description under the specified name.</p></dd>
987
- <dt><code>-s SCOPE</code>, <code>--scope=SCOPE</code> (optional)</dt><dd><p>Inspect image for specified scope.
988
- See the <a href="#Scopes" data-bare-link="true">Scope section</a> for more information.</p></dd>
989
- <dt><code>-e SCOPE</code>, <code>--exclude-scope=EXCLUDE-SCOPE</code> (optional)</dt><dd><p>Inspect image for all scopes except the specified scope.
990
- See the <a href="#Scopes" data-bare-link="true">Scope section</a> for more information.</p></dd>
991
- <dt><code>-x</code>, <code>--extract-files</code> (optional)</dt><dd><p>Extract changed configuration and unmanaged files from the inspected container.
992
- Shortcut for the combination of <code>--extract-changed-config-files</code>,
993
- <code>--extract-unmanaged-files</code>, and <code>--extract-changed-managed-files</code></p></dd>
994
- <dt><code>--extract-changed-config-files</code> (optional)</dt><dd><p>Extract changed configuration files from the inspected image.</p></dd>
995
- <dt><code>--extract-unmanaged-files</code> (optional)</dt><dd><p>Extract unmanaged files from the inspected image.</p></dd>
996
- <dt><code>--extract-changed-managed-files</code> (optional)</dt><dd><p>Extract changed managed files from inspected image.</p></dd>
997
- <dt><code>--skip-files</code> (optional)</dt><dd><p>Do not consider given files or directories during inspection. Either provide
998
- one file or directory name or a list of names separated by commas. You can
999
- also point to a file which contains a list of files to filter (one per line)
1000
- by adding an '@' before the path, e.g.</p>
1001
-
1002
- <p> $ <code>machinery</code> inspect-container --skip-files=@/path/to/filter_file mycontainer</p>
1003
-
1004
- <p>If a filename contains a comma it needs to be escaped, e.g.</p>
1005
-
1006
- <p> $ <code>machinery</code> inspect-container --skip-files=/file\,with_comma mycontainer</p>
1007
-
1008
- <p><strong>Note</strong>: File or directory names are not expanded, e.g. '../path' is taken
1009
- literally and not expanded.</p></dd>
1010
- <dt><code>--verbose</code> (optional)</dt><dd><p>Display the filters which are used during inspection.</p></dd>
1011
- </dl>
1012
-
1013
-
1014
- <h3 id="PREREQUISITES">PREREQUISITES</h3>
1015
-
1016
- <ul>
1017
- <li><p>Inspecting a container requires an image specified by the name or id.</p></li>
1018
- <li><p>The image to be inspected needs to have the following commands:</p>
1019
-
1020
- <ul>
1021
- <li><code>rpm</code> or <code>dpkg</code></li>
1022
- <li><code>zypper</code>, <code>yum</code> or <code>apt-cache</code></li>
1023
- <li><code>rsync</code></li>
1024
- <li><code>cat</code></li>
1025
- <li><code>sed</code></li>
1026
- <li><code>find</code></li>
1027
- </ul>
1028
- </li>
1029
- </ul>
1030
-
1031
-
1032
- <h3 id="EXAMPLES">EXAMPLES</h3>
1033
-
1034
- <dl>
1035
- <dt>Inspect docker-container <code>mycontainer</code> and save system description under name 'MyContainer':</dt><dd><p></p>
1036
-
1037
- <p>$ <code>machinery</code> inspect-container --name=MyContainer mycontainer</p></dd>
1038
- <dt>Inspect docker-container <code>076f46c1bef1</code> and save system description under name 'MySecondContainer':</dt><dd><p></p>
1039
-
1040
- <p>$ <code>machinery</code> inspect-container --name=MySecondContainer 076f46c1bef1</p></dd>
1041
- <dt>Extracts changed managed files and saves them:</dt><dd><p></p>
1042
-
1043
- <p>$ <code>machinery</code> inspect-container --scope=changed-managed-files --extract-files mycontainer</p></dd>
1044
- </dl>
1045
-
1046
-
1047
- <h2 id="list-List-System-Descriptions">list — List System Descriptions</h2>
1048
-
1049
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
1050
-
1051
- <p><code>machinery list</code> [OPTIONS] [NAME[,NAME2[,NAME3]]]</p>
1052
-
1053
- <p><code>machinery</code> help list</p>
1054
-
1055
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
1056
-
1057
- <p>List the specified system descriptions if parameter name is given.
1058
- List all available system descriptions in the internal database if no name parameter is given.
1059
- The list is sorted alphabetically and contains a name and the
1060
- scopes for each system.</p>
1061
-
1062
- <h3 id="OPTIONS">OPTIONS</h3>
1063
-
1064
- <dl>
1065
- <dt><code>--verbose</code> (optional)</dt><dd>Print additional information about the origin of scopes.
1066
- Currently displays [HOSTNAME] and (DATE).</dd>
1067
- <dt><code>--short</code> (optional)</dt><dd>List only descripton names.</dd>
1068
- <dt><code>--html</code> (optional)</dt><dd>Run a web server and open the list of system descriptions in HTML format in
1069
- your web browser using the <code>xdg-open</code> command.</dd>
1070
- </dl>
1071
-
1072
-
1073
- <h3 id="EXAMPLES">EXAMPLES</h3>
1074
-
1075
- <dl>
1076
- <dt>Lists the two specified system descriptions <code>a</code> and <code>b</code>:</dt><dd><p></p>
1077
-
1078
- <p>$ <code>machinery</code> list a b</p></dd>
1079
- <dt>Lists all available system descriptions:</dt><dd><p></p>
1080
-
1081
- <p>$ <code>machinery</code> list</p></dd>
1082
- <dt>Same as previous command, but additionally prints the date of each scope:</dt><dd><p></p>
1083
-
1084
- <p>$ <code>machinery</code> list --verbose</p></dd>
1085
- <dt>Lists all available system description names without any additional details:</dt><dd><p></p>
1086
-
1087
- <p>$ <code>machinery</code> list --short</p></dd>
1088
- <dt>Opens HTML view of list of all available system descriptions in web browser:</dt><dd><p></p>
1089
-
1090
- <p>$ <code>machinery</code> list --html</p></dd>
1091
- </dl>
1092
-
1093
-
1094
- <h2 id="man-Shows-Man-Page">man — Shows Man Page</h2>
1095
-
1096
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
1097
-
1098
- <p> <code>machinery man</code></p>
1099
-
1100
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
1101
-
1102
- <p>The <code>man</code> command shows the Machinery man page.</p>
1103
-
1104
- <h2 id="move-Move-System-Description">move — Move System Description</h2>
1105
-
1106
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
1107
-
1108
- <p><code>machinery move</code>
1109
- FROM_NAME TO_NAME</p>
1110
-
1111
- <p><code>machinery</code> help move</p>
1112
-
1113
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
1114
-
1115
- <p>The <code>move</code> command renames a stored system description from <code>FROM_NAME</code> to <code>TO_NAME</code>.</p>
1116
-
1117
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
1118
-
1119
- <dl>
1120
- <dt><code>FROM_NAME</code> (required)</dt><dd><p>Current name of the system description.</p></dd>
1121
- <dt><code>TO_NAME</code> (required)</dt><dd><p>New name of the system description.</p></dd>
1122
- </dl>
1123
-
1124
-
1125
- <h3 id="EXAMPLES">EXAMPLES</h3>
1126
-
1127
- <dl>
1128
- <dt>Rename the system description <code>earth</code> to <code>moon</code>:</dt><dd><p></p>
1129
-
1130
- <p>$ <code>machinery</code> move earth moon</p></dd>
1131
- </dl>
1132
-
1133
-
1134
- <h2 id="remove-Remove-System-Descriptions">remove — Remove System Descriptions</h2>
1135
-
1136
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
1137
-
1138
- <p><code>machinery remove</code> [--all]
1139
- [NAME[,NAME2[,NAME3]]]</p>
1140
-
1141
- <p><code>machinery</code> help remove</p>
1142
-
1143
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
1144
-
1145
- <p>The <code>remove</code> command removes all specified system descriptions.</p>
1146
-
1147
- <h3 id="OPTIONS">OPTIONS</h3>
1148
-
1149
- <dl>
1150
- <dt><code>--all</code> (optional)</dt><dd><p>Remove all stored system descriptions.</p></dd>
1151
- <dt><code>--verbose</code> (optional)</dt><dd><p>Explain what is being done.</p></dd>
1152
- </dl>
1153
-
1154
-
1155
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
1156
-
1157
- <dl>
1158
- <dt><code>NAME...</code> (required)</dt><dd>Remove specified system descriptions.</dd>
1159
- </dl>
1160
-
1161
-
1162
- <h3 id="EXAMPLES">EXAMPLES</h3>
1163
-
1164
- <dl>
1165
- <dt>Remove the system description stored as <code>earth</code>:</dt><dd><p></p>
1166
-
1167
- <p>$ <code>machinery</code> remove earth</p></dd>
1168
- <dt>Remove the system descriptions stored as <code>earth</code> and <code>moon</code>:</dt><dd><p></p>
1169
-
1170
- <p>$ <code>machinery</code> remove earth moon</p></dd>
1171
- <dt>Remove all stored system descriptions:</dt><dd><p></p>
1172
-
1173
- <p>$ <code>machinery</code> remove --all</p></dd>
1174
- </dl>
1175
-
1176
-
1177
- <h2 id="serve-Serve-System-Descriptions-Using-A-Web-Server">serve — Serve System Descriptions Using A Web Server</h2>
1178
-
1179
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
1180
-
1181
- <p><code>machinery serve</code> [-p PORT | --port=PORT] [--public]</p>
1182
-
1183
- <p><code>machinery</code> help serve</p>
1184
-
1185
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
1186
-
1187
- <p>The <code>serve</code> command spawns a web server to view system descriptions as an HTML
1188
- view.</p>
1189
-
1190
- <p>By default the server is available from http://127.0.0.1:7585 but both the
1191
- IP address and the port can be configured using the according options.</p>
1192
-
1193
- <p>Specific descriptions are available from http://127.0.0.1:7585/NAME, where NAME
1194
- is the name of the system description. If no name is specified in the URL an
1195
- overview of all descriptions is served.</p>
1196
-
1197
- <h3 id="OPTIONS">OPTIONS</h3>
1198
-
1199
- <dl>
1200
- <dt><code>-p PORT</code>, <code>--port=PORT</code> (optional)</dt><dd><p>Specify the port on which the web server will serve the HTML view: Default: 7585</p>
1201
-
1202
- <p>Ports can be selected in a range between 2-65535. Ports between 2 and 1023 can only be
1203
- chosen when <code>machinery</code> will be executed as <code>root</code> user.</p></dd>
1204
- <dt><code>--public</code> (optional)</dt><dd><p>Specifying this option, lets the server listen on each configured IP address. By default
1205
- the server will only listen on the localhost IP address 127.0.0.1</p></dd>
1206
- </dl>
1207
-
1208
-
1209
- <h3 id="EXAMPLES">EXAMPLES</h3>
1210
-
1211
- <dl>
1212
- <dt>Start the server with default options:</dt><dd><p></p>
1213
-
1214
- <p>$ <code>machinery</code> serve</p></dd>
1215
- <dt>Make the server available to other machines on the network on port 3000:</dt><dd><p></p>
1216
-
1217
- <p>$ <code>machinery</code> serve --public --port 3000</p></dd>
1218
- </dl>
1219
-
1220
-
1221
- <h2 id="show-Show-System-Description">show — Show System Description</h2>
1222
-
1223
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
1224
-
1225
- <p><code>machinery show</code> [-s SCOPE | --scope=SCOPE] [-e EXCLUDE-SCOPE | --exclude-scope=EXCLUDE-SCOPE] [--no-pager] [--show-diffs] [--html] NAME</p>
1226
-
1227
- <p><code>machinery</code> help show</p>
1228
-
1229
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
1230
-
1231
- <p>The <code>show</code> command displays a stored system description.
1232
- Scopes are supported and limit the output to the given scope.
1233
- The hostname of the inspected system and the last modification
1234
- in local time are shown in the title of each scope section.</p>
1235
-
1236
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
1237
-
1238
- <dl>
1239
- <dt><code>NAME</code> (required)</dt><dd>Use specified system description.</dd>
1240
- </dl>
1241
-
1242
-
1243
- <h3 id="OPTIONS">OPTIONS</h3>
1244
-
1245
- <dl>
1246
- <dt><code>-s SCOPE</code>, <code>--scope=SCOPE</code> (optional)</dt><dd><p>Limit output to the specified scope.
1247
- See the <a href="#Scopes" data-bare-link="true">Scope section</a> for more information.
1248
- If displaying information related to a scope fails, <code>show</code> will print an error message what has failed.
1249
- In case of an error, no content is displayed.</p></dd>
1250
- <dt><code>-e EXCLUDE-SCOPE</code>, <code>--exclude-scope=EXCLUDE-SCOPE</code> (optional)</dt><dd><p>Skip output of the specified scope.
1251
- See the <a href="#Scopes" data-bare-link="true">Scope section</a> for more information.</p></dd>
1252
- <dt><code>--no-pager</code> (optional)</dt><dd><p>Do not pipe output into a pager.</p></dd>
1253
- <dt><code>--show-diffs</code> (optional)</dt><dd><p>Include the generated diffs in the output if available (see <code>machinery help analyze</code>
1254
- for more information).</p></dd>
1255
- <dt><code>--html</code> (optional)</dt><dd><p>Run a web server and open the system description in HTML format in your web browser using the
1256
- <code>xdg-open</code> command.</p></dd>
1257
- <dt><code>--verbose</code> (optional)</dt><dd><p>Display the filters which were applied before showing the system description.</p></dd>
1258
- </dl>
1259
-
1260
-
1261
- <h3 id="EXAMPLES">EXAMPLES</h3>
1262
-
1263
- <dl>
1264
- <dt>Show the system description taken from the last inspection, saved as <code>earth</code>:</dt><dd><p></p>
1265
-
1266
- <p>$ <code>machinery</code> show earth</p></dd>
1267
- <dt>Show the system description, but limit the scope to repositories only:</dt><dd><p></p>
1268
-
1269
- <p>$ <code>machinery</code> show earth -s repositories</p></dd>
1270
- <dt>Show the list of changed managed files:</dt><dd><p></p>
1271
-
1272
- <p>$ <code>machinery</code> show earth --scope=changed-managed-files</p></dd>
1273
- </dl>
1274
-
1275
-
1276
- <h2 id="upgrade-format-Upgrade-System-Description">upgrade-format — Upgrade System Description</h2>
1277
-
1278
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
1279
-
1280
- <p><code>machinery upgrade-format</code> --all</p>
1281
-
1282
- <p><code>machinery upgrade-format</code> NAME</p>
1283
-
1284
- <p><code>machinery</code> help upgrade-format</p>
1285
-
1286
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
1287
-
1288
- <p>The <code>upgrade-format</code> command upgrades a system description to the latest format
1289
- version.</p>
1290
-
1291
- <p>The <code>format</code> in this context is the structure of the internal system description
1292
- data. If the format version of a system description does not match the current
1293
- <code>machinery</code> format version, <code>machinery</code> is no longer able to work with the data
1294
- until it is upgraded. The current format version can be retrieved using
1295
- <code>machinery --version</code>. The format version of a system description can be found
1296
- in the <code>meta</code> section of the according <code>manifest.json</code> file.</p>
1297
-
1298
- <p>If the <code>--all</code> switch is given all local descriptions will be upgraded.</p>
1299
-
1300
- <h3 id="OPTIONS">OPTIONS</h3>
1301
-
1302
- <dl>
1303
- <dt><code>--all</code> (optional)</dt><dd>Upgrade all stored system descriptions.</dd>
1304
- </dl>
1305
-
1306
-
1307
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
1308
-
1309
- <dl>
1310
- <dt><code>NAME</code> (optional)</dt><dd>Upgrade specified system description.</dd>
1311
- </dl>
1312
-
1313
-
1314
- <h3 id="EXAMPLES">EXAMPLES</h3>
1315
-
1316
- <dl>
1317
- <dt>Upgrade the system description stored as <code>earth</code>:</dt><dd><p></p>
1318
-
1319
- <p>$ <code>machinery</code> upgrade-format earth</p></dd>
1320
- <dt>Upgrade all stored system descriptions:</dt><dd><p></p>
1321
-
1322
- <p>$ <code>machinery</code> upgrade-format --all</p></dd>
1323
- </dl>
1324
-
1325
-
1326
- <h2 id="validate-Validate-System-Description">validate — Validate System Description</h2>
1327
-
1328
- <h3 id="SYNOPSIS">SYNOPSIS</h3>
1329
-
1330
- <p><code>machinery validate</code> NAME</p>
1331
-
1332
- <p><code>machinery</code> help validate</p>
1333
-
1334
- <h3 id="DESCRIPTION">DESCRIPTION</h3>
1335
-
1336
- <p>The <code>validate</code> subcommand validates an existing system description.
1337
- It checks, that the description has the correct structure and the data stored
1338
- there conforms to the required schema. It also verifies that all extracted files
1339
- are present on disk and that all files have meta information.</p>
1340
-
1341
- <p>In case of issues errors are shown with additional information.</p>
1342
-
1343
- <p>The main purpose of this command is to verify the system description after
1344
- manually editing it.</p>
1345
-
1346
- <h3 id="ARGUMENTS">ARGUMENTS</h3>
1347
-
1348
- <dl>
1349
- <dt><code>NAME</code> (required)</dt><dd>Name of the system description.</dd>
1350
- </dl>
1351
-
1352
-
1353
- <h3 id="EXAMPLES">EXAMPLES</h3>
1354
-
1355
- <dl>
1356
- <dt>Validate the system description with the name <code>myhost</code>:</dt><dd><p></p>
1357
-
1358
- <p>$ <code>machinery</code> validate myhost</p></dd>
1359
- </dl>
1360
-
1361
-
1362
- <h2 id="FILES-AND-DEVICES">FILES AND DEVICES</h2>
1363
-
1364
- <dl>
1365
- <dt><code>~/.machinery/machinery.config</code>:</dt><dd><p></p>
1366
-
1367
- <p>Configuration file.</p></dd>
1368
- <dt><code>~/.machinery/machinery.log</code>:</dt><dd><p></p>
1369
-
1370
- <p>Central log file, in the format date, time, process id, and log message.</p></dd>
1371
- <dt><code>eth0</code> (SLE11) and <code>lan0</code> (SLE12):</dt><dd><p></p>
1372
-
1373
- <p>First network device is used when DHCP in built image is enabled.</p></dd>
1374
- </dl>
1375
-
1376
-
1377
- <h2 id="ENVIRONMENT">ENVIRONMENT</h2>
1378
-
1379
- <dl>
1380
- <dt><code>MACHINERY_LOG_FILE</code>:</dt><dd><p></p>
1381
-
1382
- <p>Location of Machinery's log file (defaults to <code>~/.machinery/machinery.log</code>)</p></dd>
1383
- </dl>
1384
-
1385
-
1386
- <h2 id="COPYRIGHT">COPYRIGHT</h2>
1387
-
1388
- <p>Copyright (c) 2013-2015 <a href="http://www.suse.com">SUSE LLC</a></p>
1389
-
1390
-
1391
- <ol class='man-decor man-foot man foot'>
1392
- <li class='tl'></li>
1393
- <li class='tc'>January 2016</li>
1394
- <li class='tr'>machinery(1)</li>
1395
- </ol>
1396
-
1397
- </div>
1398
- </body>
1399
- </html>