machinery-tool 1.21.0 → 1.22.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/.git_revision +1 -1
  3. data/NEWS +8 -0
  4. data/html/index.html.haml +8 -7
  5. data/html/partials/changed_config_files.html.haml +1 -1
  6. data/html/partials/changed_managed_files.html.haml +1 -1
  7. data/html/partials/unmanaged_files.html.haml +2 -2
  8. data/lib/cli.rb +26 -4
  9. data/lib/diff_widget.rb +73 -0
  10. data/lib/dpkg_database.rb +16 -1
  11. data/lib/haml_helpers.rb +60 -0
  12. data/lib/kiwi_config.rb +7 -0
  13. data/lib/machinery.rb +3 -0
  14. data/lib/man_task.rb +3 -2
  15. data/lib/move_task.rb +1 -0
  16. data/lib/remote_system.rb +4 -0
  17. data/lib/server.rb +2 -105
  18. data/lib/static_html.rb +75 -0
  19. data/lib/system.rb +2 -1
  20. data/lib/system_description.rb +10 -0
  21. data/lib/version.rb +1 -1
  22. data/machinery-helper/version.go +1 -1
  23. data/man/generated/machinery.1.gz +0 -0
  24. data/manual/docs/README.md +8 -16
  25. data/manual/docs/docs.md +42 -4
  26. data/manual/docs/index.html +6 -2
  27. data/manual/docs/machinery-analyze.1.md +6 -10
  28. data/manual/docs/machinery-build.1.md +7 -11
  29. data/manual/docs/machinery-compare.1.md +5 -10
  30. data/manual/docs/machinery-config.1.md +4 -7
  31. data/manual/docs/machinery-copy.1.md +5 -10
  32. data/manual/docs/machinery-deploy.1.md +8 -12
  33. data/manual/docs/machinery-export-autoyast.1.md +10 -17
  34. data/manual/docs/machinery-export-html.1.md +32 -0
  35. data/manual/docs/machinery-export-kiwi.1.md +7 -12
  36. data/manual/docs/{machinery-inspect-docker.1.md → machinery-inspect-container.1.md} +10 -15
  37. data/manual/docs/machinery-inspect.1.md +10 -15
  38. data/manual/docs/machinery-list.1.md +4 -8
  39. data/manual/docs/machinery-man.1.md +4 -6
  40. data/manual/docs/machinery-move.1.md +4 -8
  41. data/manual/docs/machinery-remove.1.md +5 -10
  42. data/manual/docs/machinery-serve.1.md +5 -9
  43. data/manual/docs/machinery-show.1.md +7 -11
  44. data/manual/docs/machinery-upgrade-format.1.md +5 -9
  45. data/manual/docs/machinery-validate.1.md +4 -8
  46. data/manual/docs/machinery_main_general.1.md +33 -51
  47. data/manual/docs/machinery_main_scopes.1.md +13 -14
  48. data/manual/docs/{machinery_security_implications.1.md → machinery_main_security_implications.1.md} +15 -15
  49. data/manual/docs/machinery_main_usecases.1.md +2 -30
  50. data/manual/mkdocs.yml +9 -9
  51. data/manual/site/docs/index.html +71 -25
  52. data/manual/site/index.html +6 -2
  53. data/manual/site/machinery-analyze.1/index.html +34 -27
  54. data/manual/site/machinery-build.1/index.html +35 -28
  55. data/manual/site/machinery-compare.1/index.html +33 -26
  56. data/manual/site/machinery-config.1/index.html +32 -25
  57. data/manual/site/machinery-copy.1/index.html +33 -27
  58. data/manual/site/machinery-deploy.1/index.html +36 -29
  59. data/manual/site/machinery-export-autoyast.1/index.html +38 -32
  60. data/manual/site/machinery-export-html.1/index.html +175 -0
  61. data/manual/site/machinery-export-kiwi.1/index.html +35 -28
  62. data/manual/site/machinery-inspect-container.1/index.html +249 -0
  63. data/manual/site/machinery-inspect.1/index.html +38 -31
  64. data/manual/site/machinery-list.1/index.html +32 -25
  65. data/manual/site/machinery-man.1/index.html +32 -26
  66. data/manual/site/machinery-move.1/index.html +32 -25
  67. data/manual/site/machinery-remove.1/index.html +33 -26
  68. data/manual/site/machinery-serve.1/index.html +33 -26
  69. data/manual/site/machinery-show.1/index.html +35 -28
  70. data/manual/site/machinery-upgrade-format.1/index.html +33 -26
  71. data/manual/site/machinery-validate.1/index.html +32 -25
  72. data/manual/site/machinery_main_general.1/index.html +63 -70
  73. data/manual/site/machinery_main_scopes.1/index.html +41 -36
  74. data/manual/site/machinery_main_security_implications.1/index.html +228 -0
  75. data/manual/site/machinery_main_usecases.1/index.html +30 -48
  76. data/manual/site/mkdocs/search_index.json +246 -201
  77. data/manual/site/sitemap.xml +40 -30
  78. data/plugins/os/os_inspector.rb +1 -1
  79. data/plugins/packages/packages.yml +1 -1
  80. data/plugins/patterns/patterns.yml +2 -5
  81. data/plugins/repositories/repositories.yml +2 -2
  82. data/plugins/unmanaged_files/unmanaged_files.yml +3 -3
  83. data/plugins/unmanaged_files/unmanaged_files_renderer.rb +1 -1
  84. metadata +11 -5
  85. data/manual/docs/subcommand-template.1.md +0 -46
@@ -2,202 +2,212 @@
2
2
  "docs": [
3
3
  {
4
4
  "location": "/docs/",
5
- "text": "Machinery Documentation\n\n\nThis is the documentation of Machinery.\n\n\n\n\nOverview\n\n\nScopes\n\n\nUse cases",
5
+ "text": "Machinery Documentation\n\n\nWelcome! The Machinary documentation is a reference aimed at system administrators.\nIt will give you an overview of Machinery itself, its subcommands, and usage examples.\n\n\nWhat is Machinery?\n\n\nMachinery is a systems management toolkit for Linux. It supports configuration\ndiscovery, system validation, and service migration. Machinery is based on the\nidea of a universal system description. Machinery has a set of commands which\nwork with this system description. These commands can be combined to form work\nflows. Machinery is targeted at the system administrator of the data center.\n\n\nWork Flow Examples\n\n\nInspect a System and Show Results\n\n\n\n\nmachinery inspect --extract-files --name=NAME HOSTNAME\n\n\nmachinery show NAME\n\n\n\n\nExport System Description as HTML\n\n\n\n\nmachinery export-html --html-dir=tmp NAME\n\n\n\n\nInspect Two Systems and Compare Them\n\n\n\n\nmachinery inspect HOSTNAME1\n\n\nmachinery inspect HOSTNAME2\n\n\nmachinery compare HOSTNAME1 HOSTNAME2\n\n\n\n\nFully Inspect a System and Export a Kiwi Description\n\n\n\n\nmachinery inspect --extract-files HOSTNAME\n\n\nmachinery export-kiwi --kiwi-dir=~/kiwi HOSTNAME\n\n\n\n\nFully Inspect a System and Export an AutoYaST Profile\n\n\n\n\nmachinery inspect --extract-files HOSTNAME\n\n\nmachinery export-autoyast --autoyast-dir=~/autoyast HOSTNAME\n\n\n\n\nFully Inspect a System and Deploy a Replicate to the Cloud\n\n\n\n\nmachinery inspect --extract-files HOSTNAME\n\n\nmachinery deploy --cloud-config=~/openrc.sh HOSTNAME\n\n\n\n\nHow to upgrade a SLES 11 SP3 system to SLES 12\n\n\n\n\nMachinery can help you to upgrade without affecting the original system.\n For more details please read the Wiki Page: \nHow to upgrade a SLES 11 SP3 system to SLES 12\n.\n\n\n\n\nFor a more detailed overview see \nGeneral Overview\n.",
6
6
  "title": "Welcome"
7
7
  },
8
8
  {
9
9
  "location": "/docs/#machinery-documentation",
10
- "text": "This is the documentation of Machinery. Overview Scopes Use cases",
10
+ "text": "Welcome! The Machinary documentation is a reference aimed at system administrators.\nIt will give you an overview of Machinery itself, its subcommands, and usage examples.",
11
11
  "title": "Machinery Documentation"
12
12
  },
13
13
  {
14
- "location": "/machinery_main_general.1/",
15
- "text": "Machinery \u2014 A Systems Management Toolkit for Linux\n\n\nSYNOPSIS\n\n\nmachinery\n SUBCOMMAND [options] \n\n\nmachinery\n help [SUBCOMMAND]\n\n\nDESCRIPTION\n\n\nMachinery is a systems management toolkit for Linux. It supports configuration\ndiscovery, system validation, and service migration. Machinery is based on the\nidea of an universal system description. Machinery has a set of commands which\nwork with this system description. These commands can be combined to form work\nflows. Machinery is targeted at the system administrator of the data center.\n\n\nWORK FLOW EXAMPLES\n\n\nInspect a System and Show Results\n\n\n\n\nmachinery inspect --extract-files --name=NAME HOSTNAME\n\n\nmachinery show NAME\n\n\n\n\nInspect Two Systems and Compare Them\n\n\n\n\nmachinery inspect HOSTNAME1\n\n\nmachinery inspect HOSTNAME2\n\n\nmachinery compare HOSTNAME1 HOSTNAME2\n\n\n\n\nFully Inspect a System and Export a Kiwi Description\n\n\n\n\nmachinery inspect --extract-files HOSTNAME\n\n\nmachinery export-kiwi --kiwi-dir=~/kiwi HOSTNAME\n\n\n\n\nFully Inspect a System and Export an AutoYaST Profile\n\n\n\n\nmachinery inspect --extract-files HOSTNAME\n\n\nmachinery export-autoyast --autoyast-dir=~/autoyast HOSTNAME\n\n\n\n\nFully Inspect a System and Deploy a Replicate to the Cloud\n\n\n\n\nmachinery inspect --extract-files HOSTNAME\n\n\nmachinery deploy --cloud-config=~/openrc.sh HOSTNAME\n\n\n\n\nHow to upgrade a SLES 11 SP3 system to SLES 12\n\n\n\n\nMachinery can help you to upgrade without affecting the original system.\n For more details please read the Wiki Page: \n\n https://github.com/SUSE/machinery/wiki/How-to-upgrade-a-SLES-11-SP3-system-to-SLES-12\n\n\n\n\nCONCEPTUAL OVERVIEW\n\n\nMachinery's core concept is the complete representation of a system by a\nuniversal system description.\nSystem descriptions are managed independently of the described\nsystems which allows for system state conservation and offline preparation of\nmodifications.\n\n\nMachinery's subcommands work on the system description as the connecting\nelement.\nSystem descriptions are obtained by inspecting systems, importing from other\nformats, manual creation or merging other descriptions.\nMachinery can store and modify system descriptions to allow changes to\ndescribed state of the system.\nSystem descriptions can be compared to find similarities and differences\nbetween them or analyzed to deepen the knowledge about particular aspects of\nthe system.\nSystem descriptions may be exported to other formats and can be used to\nmigrate or replicate systems.\n\n\nSubcommands can be combined in different ways to accomodate higher-level work\nflows and use cases.\nThese are some implemented and planned use cases:\n\n\nMigrate a physical system to a virtual environment:\n\n\n\n\nInspect a system to obtain a system description\n\n\nExport the system description to a Kiwi configuration\n\n\nBuild a cloud image from the configuration\n\n\nDeploy the image to the cloud\n\n\n\n\nMigrate a system while changing the configuration:\n\n\n\n\nInspect a system to obtain a system description\n\n\nModify the system description\n\n\nBuild image for deployment\n\n\n\n\nUsing Machinery as an extension from other formats:\n\n\n\n\nImport AutoYaST profile as system description\n\n\nBuild image for deployment\n\n\n\n\nMachinery provides an extensible set of tools which can be combined to create\nhigher-level work flows.\nIt is designed for environments which focus on automation, integration\nof diverse tools and accountable management.\nMachinery integrates with existing configuration management solutions to\naddress use cases currently not covered by them.\n\n\nThe machinery Command\n\n\nMachinery is implemented as a command line tool named \nmachinery\n. The\n\nmachinery\n command has several subcommands for specific tasks. All\nsubcommands work with the same system description identified by an optional\nname which can be used by all subcommands.\n\n\nScopes\n\n\nThe system description is structured into \"scopes\". A scope covers a specific\npart of the configuration of the inspected system such as installed packages,\nrepositories, or changed configuration files.\n\n\nFor example, if you are only interested in the installed packages, limit the\nscope to \npackages\n. This will output only the requested information.\n\n\nThe the \nscopes documentation\n for a list of all supported scopes.\n\n\nFILES AND DEVICES\n\n\n\n\n\n\n~/.machinery/machinery.config\n:\n\n\nConfiguration file.\n\n\n\n\n\n\n~/.machinery/machinery.log\n:\n\n\nCentral log file, in the format date, time, process id, and log message.\n\n\n\n\n\n\neth0\n (SLE11) and \nlan0\n (SLE12):\n\n\nFirst network device is used when DHCP in built image is enabled.\n\n\n\n\n\n\nENVIRONMENT\n\n\n\n\n\n\nMACHINERY_LOG_FILE\n:\n\n\nLocation of Machinery's log file (defaults to \n~/.machinery/machinery.log\n)\n\n\n\n\n\n\nCOPYRIGHT\n\n\nCopyright (c) 2013-2016 \nSUSE LLC",
16
- "title": "General"
14
+ "location": "/docs/#what-is-machinery",
15
+ "text": "Machinery is a systems management toolkit for Linux. It supports configuration\ndiscovery, system validation, and service migration. Machinery is based on the\nidea of a universal system description. Machinery has a set of commands which\nwork with this system description. These commands can be combined to form work\nflows. Machinery is targeted at the system administrator of the data center.",
16
+ "title": "What is Machinery?"
17
17
  },
18
18
  {
19
- "location": "/machinery_main_general.1/#machinery-a-systems-management-toolkit-for-linux",
19
+ "location": "/docs/#work-flow-examples",
20
20
  "text": "",
21
- "title": "Machinery \u2014 A Systems Management Toolkit for Linux"
22
- },
23
- {
24
- "location": "/machinery_main_general.1/#synopsis",
25
- "text": "machinery SUBCOMMAND [options] machinery help [SUBCOMMAND]",
26
- "title": "SYNOPSIS"
21
+ "title": "Work Flow Examples"
27
22
  },
28
23
  {
29
- "location": "/machinery_main_general.1/#description",
30
- "text": "Machinery is a systems management toolkit for Linux. It supports configuration\ndiscovery, system validation, and service migration. Machinery is based on the\nidea of an universal system description. Machinery has a set of commands which\nwork with this system description. These commands can be combined to form work\nflows. Machinery is targeted at the system administrator of the data center.",
31
- "title": "DESCRIPTION"
32
- },
33
- {
34
- "location": "/machinery_main_general.1/#work-flow-examples",
35
- "text": "",
36
- "title": "WORK FLOW EXAMPLES"
37
- },
38
- {
39
- "location": "/machinery_main_general.1/#inspect-a-system-and-show-results",
24
+ "location": "/docs/#inspect-a-system-and-show-results",
40
25
  "text": "machinery inspect --extract-files --name=NAME HOSTNAME machinery show NAME",
41
26
  "title": "Inspect a System and Show Results"
42
27
  },
43
28
  {
44
- "location": "/machinery_main_general.1/#inspect-two-systems-and-compare-them",
29
+ "location": "/docs/#export-system-description-as-html",
30
+ "text": "machinery export-html --html-dir=tmp NAME",
31
+ "title": "Export System Description as HTML"
32
+ },
33
+ {
34
+ "location": "/docs/#inspect-two-systems-and-compare-them",
45
35
  "text": "machinery inspect HOSTNAME1 machinery inspect HOSTNAME2 machinery compare HOSTNAME1 HOSTNAME2",
46
36
  "title": "Inspect Two Systems and Compare Them"
47
37
  },
48
38
  {
49
- "location": "/machinery_main_general.1/#fully-inspect-a-system-and-export-a-kiwi-description",
39
+ "location": "/docs/#fully-inspect-a-system-and-export-a-kiwi-description",
50
40
  "text": "machinery inspect --extract-files HOSTNAME machinery export-kiwi --kiwi-dir=~/kiwi HOSTNAME",
51
41
  "title": "Fully Inspect a System and Export a Kiwi Description"
52
42
  },
53
43
  {
54
- "location": "/machinery_main_general.1/#fully-inspect-a-system-and-export-an-autoyast-profile",
44
+ "location": "/docs/#fully-inspect-a-system-and-export-an-autoyast-profile",
55
45
  "text": "machinery inspect --extract-files HOSTNAME machinery export-autoyast --autoyast-dir=~/autoyast HOSTNAME",
56
46
  "title": "Fully Inspect a System and Export an AutoYaST Profile"
57
47
  },
58
48
  {
59
- "location": "/machinery_main_general.1/#fully-inspect-a-system-and-deploy-a-replicate-to-the-cloud",
49
+ "location": "/docs/#fully-inspect-a-system-and-deploy-a-replicate-to-the-cloud",
60
50
  "text": "machinery inspect --extract-files HOSTNAME machinery deploy --cloud-config=~/openrc.sh HOSTNAME",
61
51
  "title": "Fully Inspect a System and Deploy a Replicate to the Cloud"
62
52
  },
63
53
  {
64
- "location": "/machinery_main_general.1/#how-to-upgrade-a-sles-11-sp3-system-to-sles-12",
65
- "text": "Machinery can help you to upgrade without affecting the original system.\n For more details please read the Wiki Page: \n https://github.com/SUSE/machinery/wiki/How-to-upgrade-a-SLES-11-SP3-system-to-SLES-12",
54
+ "location": "/docs/#how-to-upgrade-a-sles-11-sp3-system-to-sles-12",
55
+ "text": "Machinery can help you to upgrade without affecting the original system.\n For more details please read the Wiki Page: How to upgrade a SLES 11 SP3 system to SLES 12 . For a more detailed overview see General Overview .",
66
56
  "title": "How to upgrade a SLES 11 SP3 system to SLES 12"
67
57
  },
58
+ {
59
+ "location": "/machinery_main_general.1/",
60
+ "text": "Machinery \u2014 A Systems Management Toolkit for Linux\n\n\nSynopsis\n\n\nmachinery\n SUBCOMMAND [options] \n\n\nmachinery\n help [SUBCOMMAND]\n\n\nConceptual Overview\n\n\nMachinery's core concept is the complete representation of a system by a\nuniversal system description.\nSystem descriptions are managed independently of the described\nsystems which allows for system state conservation and offline preparation of\nmodifications.\n\n\nMachinery's subcommands work on the system description as the connecting\nelement.\nSystem descriptions are obtained by inspecting systems, importing from other\nformats, manual creation or merging existing descriptions.\nMachinery can store and modify system descriptions to allow changes to\ndescribed state of the system.\nSystem descriptions can be compared to find similarities and differences\nbetween them or analyzed to deepen the knowledge about particular aspects of\nthe system.\nSystem descriptions may be exported to other formats and can be used to\nmigrate or replicate systems.\n\n\nSubcommands can be combined in different ways to accommodate higher-level work\nflows and use cases.\nThese are some implemented and planned use cases:\n\n\nMigrate a physical system to a virtual environment:\n\n\n\n\nInspect a system to obtain a system description\n\n\nExport the system description to a Kiwi configuration\n\n\nBuild a cloud image from the configuration\n\n\nDeploy the image to the cloud\n\n\n\n\nMigrate a system while changing the configuration:\n\n\n\n\nInspect a system to obtain a system description\n\n\nModify the system description\n\n\nBuild image for deployment\n\n\n\n\nUsing Machinery as an extension from other formats:\n\n\n\n\nImport AutoYaST profile as system description\n\n\nBuild image for deployment\n\n\n\n\nMachinery provides an extensible set of tools which can be combined to create\nhigher-level work flows.\nIt is designed for environments which focus on automation, integration\nof diverse tools and accountable management.\nMachinery integrates with existing configuration management solutions to\naddress use cases currently not covered by them.\n\n\nThe machinery Command\n\n\nMachinery is implemented as a command line tool named \nmachinery\n. The\n\nmachinery\n command has several subcommands for specific tasks. All\nsubcommands work with the same system description identified by an optional\nname which can be used by all subcommands.\n\n\nSystem Description\n\n\nThe System Description format and file structure is documented in the machinery\nwiki: \nSystem Description Format\n.\n\n\nMachinery validates descriptions on load. It checks that the JSON structure of\nthe manifest file, which contains the primary and meta data of a description, is \ncorrect and it adheres to the schema. Validation errors are reported as warnings.\nIt also checks that the information about extracted files is consistent. Missing\nfiles or extra files without reference in the manifest are treated also as\nwarnings. All other issues are errors which need to be fixed so that Machinery\ncan use the description.\nTo manually validate a description use the \nmachinery validate\n command.\n\n\nScopes\n\n\nThe system description is structured into \"scopes\". A scope covers a specific\npart of the configuration of the inspected system such as installed packages,\nrepositories, or changed configuration files.\n\n\nFor example, if you are only interested in the installed packages, limit the\nscope to \npackages\n. This will output only the requested information.\n\n\nSee the \nScopes documentation\n for a list of all supported scopes.\n\n\nOptions for All Subcommands\n\n\n\n\n\n\n\n\n\n--version\n:\n Displays version of \nmachinery\n tool. Exit when done.\n\n\n\n\n\n\n--debug\n:\n Enable debug mode. Machinery writes additional information into the log\n file which can be useful to track down problems.\n\n\n\n\n\n\nFiles and Devices\n\n\n\n\n\n\n~/.machinery/machinery.config\n:\n\n\nConfiguration file.\n\n\n\n\n\n\n~/.machinery/machinery.log\n:\n\n\nCentral log file, in the format date, time, process id, and log message.\n\n\n\n\n\n\nem1 (openSUSE 13.2 / openSUSE leap)\n, \neth0\n (SLE11) and \nlan0\n (SLE12):\n\n\nFirst network device is used when DHCP in built image is enabled.\n\n\n\n\n\n\nEnvironment\n\n\n\n\n\n\nMACHINERY_LOG_FILE\n:\n\n\nLocation of Machinery's log file (defaults to \n~/.machinery/machinery.log\n).\n\n\n\n\n\n\nCopyright\n\n\nCopyright (c) 2013-2016 \nSUSE LLC",
61
+ "title": "General Overview"
62
+ },
63
+ {
64
+ "location": "/machinery_main_general.1/#machinery-a-systems-management-toolkit-for-linux",
65
+ "text": "",
66
+ "title": "Machinery \u2014 A Systems Management Toolkit for Linux"
67
+ },
68
+ {
69
+ "location": "/machinery_main_general.1/#synopsis",
70
+ "text": "machinery SUBCOMMAND [options] machinery help [SUBCOMMAND]",
71
+ "title": "Synopsis"
72
+ },
68
73
  {
69
74
  "location": "/machinery_main_general.1/#conceptual-overview",
70
- "text": "Machinery's core concept is the complete representation of a system by a\nuniversal system description.\nSystem descriptions are managed independently of the described\nsystems which allows for system state conservation and offline preparation of\nmodifications. Machinery's subcommands work on the system description as the connecting\nelement.\nSystem descriptions are obtained by inspecting systems, importing from other\nformats, manual creation or merging other descriptions.\nMachinery can store and modify system descriptions to allow changes to\ndescribed state of the system.\nSystem descriptions can be compared to find similarities and differences\nbetween them or analyzed to deepen the knowledge about particular aspects of\nthe system.\nSystem descriptions may be exported to other formats and can be used to\nmigrate or replicate systems. Subcommands can be combined in different ways to accomodate higher-level work\nflows and use cases.\nThese are some implemented and planned use cases: Migrate a physical system to a virtual environment: Inspect a system to obtain a system description Export the system description to a Kiwi configuration Build a cloud image from the configuration Deploy the image to the cloud Migrate a system while changing the configuration: Inspect a system to obtain a system description Modify the system description Build image for deployment Using Machinery as an extension from other formats: Import AutoYaST profile as system description Build image for deployment Machinery provides an extensible set of tools which can be combined to create\nhigher-level work flows.\nIt is designed for environments which focus on automation, integration\nof diverse tools and accountable management.\nMachinery integrates with existing configuration management solutions to\naddress use cases currently not covered by them.",
71
- "title": "CONCEPTUAL OVERVIEW"
75
+ "text": "Machinery's core concept is the complete representation of a system by a\nuniversal system description.\nSystem descriptions are managed independently of the described\nsystems which allows for system state conservation and offline preparation of\nmodifications. Machinery's subcommands work on the system description as the connecting\nelement.\nSystem descriptions are obtained by inspecting systems, importing from other\nformats, manual creation or merging existing descriptions.\nMachinery can store and modify system descriptions to allow changes to\ndescribed state of the system.\nSystem descriptions can be compared to find similarities and differences\nbetween them or analyzed to deepen the knowledge about particular aspects of\nthe system.\nSystem descriptions may be exported to other formats and can be used to\nmigrate or replicate systems. Subcommands can be combined in different ways to accommodate higher-level work\nflows and use cases.\nThese are some implemented and planned use cases: Migrate a physical system to a virtual environment: Inspect a system to obtain a system description Export the system description to a Kiwi configuration Build a cloud image from the configuration Deploy the image to the cloud Migrate a system while changing the configuration: Inspect a system to obtain a system description Modify the system description Build image for deployment Using Machinery as an extension from other formats: Import AutoYaST profile as system description Build image for deployment Machinery provides an extensible set of tools which can be combined to create\nhigher-level work flows.\nIt is designed for environments which focus on automation, integration\nof diverse tools and accountable management.\nMachinery integrates with existing configuration management solutions to\naddress use cases currently not covered by them.",
76
+ "title": "Conceptual Overview"
72
77
  },
73
78
  {
74
79
  "location": "/machinery_main_general.1/#the-machinery-command",
75
80
  "text": "Machinery is implemented as a command line tool named machinery . The machinery command has several subcommands for specific tasks. All\nsubcommands work with the same system description identified by an optional\nname which can be used by all subcommands.",
76
81
  "title": "The machinery Command"
77
82
  },
83
+ {
84
+ "location": "/machinery_main_general.1/#system-description",
85
+ "text": "The System Description format and file structure is documented in the machinery\nwiki: System Description Format . Machinery validates descriptions on load. It checks that the JSON structure of\nthe manifest file, which contains the primary and meta data of a description, is \ncorrect and it adheres to the schema. Validation errors are reported as warnings.\nIt also checks that the information about extracted files is consistent. Missing\nfiles or extra files without reference in the manifest are treated also as\nwarnings. All other issues are errors which need to be fixed so that Machinery\ncan use the description.\nTo manually validate a description use the machinery validate command.",
86
+ "title": "System Description"
87
+ },
78
88
  {
79
89
  "location": "/machinery_main_general.1/#scopes",
80
- "text": "The system description is structured into \"scopes\". A scope covers a specific\npart of the configuration of the inspected system such as installed packages,\nrepositories, or changed configuration files. For example, if you are only interested in the installed packages, limit the\nscope to packages . This will output only the requested information. The the scopes documentation for a list of all supported scopes.",
90
+ "text": "The system description is structured into \"scopes\". A scope covers a specific\npart of the configuration of the inspected system such as installed packages,\nrepositories, or changed configuration files. For example, if you are only interested in the installed packages, limit the\nscope to packages . This will output only the requested information. See the Scopes documentation for a list of all supported scopes.",
81
91
  "title": "Scopes"
82
92
  },
93
+ {
94
+ "location": "/machinery_main_general.1/#options-for-all-subcommands",
95
+ "text": "--version :\n Displays version of machinery tool. Exit when done. --debug :\n Enable debug mode. Machinery writes additional information into the log\n file which can be useful to track down problems.",
96
+ "title": "Options for All Subcommands"
97
+ },
83
98
  {
84
99
  "location": "/machinery_main_general.1/#files-and-devices",
85
- "text": "~/.machinery/machinery.config : Configuration file. ~/.machinery/machinery.log : Central log file, in the format date, time, process id, and log message. eth0 (SLE11) and lan0 (SLE12): First network device is used when DHCP in built image is enabled.",
86
- "title": "FILES AND DEVICES"
100
+ "text": "~/.machinery/machinery.config : Configuration file. ~/.machinery/machinery.log : Central log file, in the format date, time, process id, and log message. em1 (openSUSE 13.2 / openSUSE leap) , eth0 (SLE11) and lan0 (SLE12): First network device is used when DHCP in built image is enabled.",
101
+ "title": "Files and Devices"
87
102
  },
88
103
  {
89
104
  "location": "/machinery_main_general.1/#environment",
90
- "text": "MACHINERY_LOG_FILE : Location of Machinery's log file (defaults to ~/.machinery/machinery.log )",
91
- "title": "ENVIRONMENT"
105
+ "text": "MACHINERY_LOG_FILE : Location of Machinery's log file (defaults to ~/.machinery/machinery.log ).",
106
+ "title": "Environment"
92
107
  },
93
108
  {
94
109
  "location": "/machinery_main_general.1/#copyright",
95
110
  "text": "Copyright (c) 2013-2016 SUSE LLC",
96
- "title": "COPYRIGHT"
111
+ "title": "Copyright"
97
112
  },
98
113
  {
99
114
  "location": "/machinery_main_scopes.1/",
100
- "text": "os\n\n\n\n\nContains information about the operating system, name, version, and\narchitecture of the inspected system.\n\n\n\n\npackages\n\n\n\n\nContains information on all installed RPM packages installed on the\ninspected system.\n\n\n\n\npatterns\n\n\n\n\nContains all patterns or tasks installed on the inspected system. A pattern is a\ncollection of software packages, similar to the idea of tasks on Debian/Ubuntu-\nlike systems.\nThe meaning of software patterns depends on the package manager of the\ndistribution. Therefore, the pattern scope on SUSE based systems uses the\n\nzypper\n command to obtain the information about installed pattern names, whereas\non Debian based systems the \ntasksel\n tool is necessary to list installed tasks.\n\n\n\n\nrepositories\n\n\n\n\nContains all information about software repositories configured on the\ninspected system. The information about repositories depends on the package\nmanager of the distribution. Thus on SUSE-based systems the \nzypper\n command\nis used. Machinery collects the following information from each configured repository:\n\n\n\n\n\n\nThe alias name of the repository.\n\n\n\n\n\n\nThe repository type, rpm-md and YaST types that are used on SUSE systems.\n\n\n\n\n\n\nThe path to the repository. This could be a local path, a remote location,\n a device, or a file.\n\n\n\n\n\n\nA boolean flag that indicates if this repository is in use or not.\n\n\n\n\n\n\nA boolean flag that indicates if this repository should update the locally\n stored metadata files with metadata files from the origin automatically or\n not.\n\n\n\n\n\n\nA boolean flag that indicates if packages which would be installed from\n this repository should be checked by their gpg key or not.\n\n\n\n\n\n\nA numeric value for a priority. The priority of a repository is compared\n to the priorities of all other activated repositories. Values can\n range from 1 (highest) to 99 (lowest, default).\n\n\n\n\n\n\nusers\n\n\n\n\n\n\nContains information about the system users including user and group ids,\nlogin information, such as password hashes and - if available - additional\npassword properties.\n\n\n\n\ngroups\n\n\n\n\nContains information about the system groups such as group attributes and the\nlist of group members.\n\n\n\n\nservices\n\n\n\n\nServices are applications running in the background doing continuous work\nor waiting for requests to do work.\nThe scope determines which services are configured to be started in which\nrunlevel. It uses the \nchkconfig\n command to obtain that information.\nThe xinetd services that are also displayed by \nchkconfig\n are switched\non/off by editing configuration files and are ignored in this context.\n\n\n\n\nchanged_config_files\n\n\n\n\nContains all configuration files which have been changed since they were\ninstalled.\nChanged configuration files are all those files which are marked as such in the\npackage which has installed them. A configuration file change is reported\nif its content or its attributes like Linux permission bits or ownership\nhave changed.\n\n\n\n\nchanged_managed_files\n\n\n\n\nContains the names and contents of all non-configuration files which have\nbeen changed compared to the files in the package. A file change is reported\nif its content or its attributes like Linux permission bits or ownership\nhave changed.\n\n\n\n\nunmanaged_files\n\n\n\n\nContains the names and contents of all files which are not part of any RPM\npackage. The list of unmanaged files contains only plain files and\ndirectories. Special files like device nodes, named pipes and Unix domain\nsockets are ignored. The directories \n/tmp\n, \n/var/tmp\n, \n/.snapshots/\n,\n\n/var/run\n and special mounts like procfs and sysfs are ignored, too.\nIf a directory is in this list, no file or directory below it belongs to a\nRPM package.\n\n\nMeta data information of unmanaged files is only available if the files were\nextracted during inspection.\n\n\nUsing the \n--extract-unmanaged-files\n option, the files are transferred from\nthe system and stored in the system description. Depending on the content of\nthe inspected system, the amount of data stored may be huge.",
115
+ "text": "Scopes\n\n\n\n\nos\n\n\n\n\nContains information about the operating system, name, version, and\narchitecture of the inspected system.\n\n\n\n\npackages\n\n\n\n\nContains information on all installed packages installed on the\ninspected system.\n\n\n\n\npatterns\n\n\n\n\nContains all patterns or tasks installed on the inspected system. A pattern is a\ncollection of software packages, similar to the idea of tasks on Debian/Ubuntu-\nlike systems. The meaning of software patterns depends on the package manager of the\ndistribution.\n\n\n\n\nrepositories\n\n\n\n\nContains all information about software repositories configured on the\ninspected system. The information about repositories depends on the package\nmanager of the distribution. Machinery collects the following information\nfrom each configured repository:\n\n\n\n\n\n\nThe alias name of the repository.\n\n\n\n\n\n\nThe repository type, rpm-md and YaST types that are used on SUSE systems.\n\n\n\n\n\n\nThe path to the repository. This could be a local path, a remote location,\n a device, or a file.\n\n\n\n\n\n\nA boolean flag that indicates if this repository is in use or not.\n\n\n\n\n\n\nA boolean flag that indicates if this repository should update the locally\n stored metadata files with metadata files from the origin automatically or\n not.\n\n\n\n\n\n\nA boolean flag that indicates if packages which would be installed from\n this repository should be checked by their gpg key or not.\n\n\n\n\n\n\nA numeric value for a priority. The priority of a repository is compared\n to the priorities of all other activated repositories. Values can\n range from 1 (highest) to 99 (lowest, default).\n\n\n\n\n\n\nusers\n\n\n\n\n\n\nContains information about the system users including user and group ids,\nlogin information, such as password hashes and - if available - additional\npassword properties.\n\n\n\n\ngroups\n\n\n\n\nContains information about the system groups such as group attributes and the\nlist of group members.\n\n\n\n\nservices\n\n\n\n\nServices are applications running in the background doing continuous work\nor waiting for requests to do work.\nThe scope determines which services are configured to be started in which\nrunlevel. It uses the \nchkconfig\n command to obtain that information.\nThe xinetd services that are also displayed by \nchkconfig\n are switched\non/off by editing configuration files and are ignored in this context.\n\n\n\n\nchanged-config-files\n\n\n\n\nContains all configuration files which have been changed since they were\ninstalled.\nChanged configuration files are all those files which are marked as such in the\npackage which has installed them. A configuration file change is reported\nif its content or its attributes like Linux permission bits or ownership\nhave changed.\n\n\n\n\nchanged-managed-files\n\n\n\n\nContains the names and contents of all non-configuration files which have\nbeen changed compared to the files in the package. A file change is reported\nif its content or its attributes like Linux permission bits or ownership\nhave changed.\n\n\n\n\nunmanaged-files\n\n\n\n\nContains the names and contents of all files which are not part of any package.\nThe list of unmanaged files contains only plain files and\ndirectories. Special files like device nodes, named pipes and Unix domain\nsockets are ignored. The directories \n/tmp\n, \n/var/tmp\n, \n/.snapshots/\n,\n\n/var/run\n and special mounts like procfs and sysfs are ignored, too.\nIf a directory is in this list, no file or directory below it belongs to a\npackage.\n\n\nMeta data information of unmanaged files is only available if the files were\nextracted during inspection.\n\n\nUsing the \n--extract-unmanaged-files\n option, the files are transferred from\nthe system and stored in the system description. Depending on the content of\nthe inspected system, the amount of data stored may be huge.",
101
116
  "title": "Scopes"
102
117
  },
103
118
  {
104
- "location": "/machinery_main_usecases.1/",
105
- "text": "System Description\n\n\nThe System Description format and file structure is documented in the machinery\nwiki: \nhttps://github.com/SUSE/machinery/wiki/System-Description-Format\n\n\nMachinery validates descriptions on load. It checks that the JSON structure of\nthe manifest file, which contains the primary and meta data of a description, is\ncorrect and it adheres to the schema. Validation errors are reported as warnings.\nIt also checks that the information about extracted files is consistent. Missing\nfiles or extra files without reference in the manifest are treated also as\nwarnings. All other issues are errors which need to be fixed so that Machinery\ncan use the description\n\n\nTo manually validate a description use the \nmachinery validate\n command.\n\n\nUse Cases\n\n\nSome of the important use cases of Machinery are:\n\n\n\n\nInspecting a System and Collecting Information\n\n\n\n\nCollecting a variety of information. Limit the gathered\n information with scopes (see section about scopes). Each inspection step\n updates the system description.\n\n\n\n\nReviewing System Description\n\n\n\n\nAfter a successful inspection, the system description can be displayed on\n the console or the output can be fed into other tools.\n\n\n\n\nCloning a System\n\n\n\n\nAn inspected system can be cloned. The inspection step returns a system\n description which is used as the basis for cloning physical or virtual\n instances. Machinery can build a system image from the description, which\n can then for example be deployed to a cloud.\n\n\nOPTIONS FOR ALL SUBCOMMANDS\n\n\n\n\n\n\n\n\n\n--version\n:\n Displays version of \nmachinery\n tool. Exit when done.\n\n\n\n\n\n\n--debug\n:\n Enable debug mode. Machinery writes additional information into the log\n file which can be useful to track down problems.",
106
- "title": "Use cases"
119
+ "location": "/machinery_main_scopes.1/#scopes",
120
+ "text": "os Contains information about the operating system, name, version, and\narchitecture of the inspected system. packages Contains information on all installed packages installed on the\ninspected system. patterns Contains all patterns or tasks installed on the inspected system. A pattern is a\ncollection of software packages, similar to the idea of tasks on Debian/Ubuntu-\nlike systems. The meaning of software patterns depends on the package manager of the\ndistribution. repositories Contains all information about software repositories configured on the\ninspected system. The information about repositories depends on the package\nmanager of the distribution. Machinery collects the following information\nfrom each configured repository: The alias name of the repository. The repository type, rpm-md and YaST types that are used on SUSE systems. The path to the repository. This could be a local path, a remote location,\n a device, or a file. A boolean flag that indicates if this repository is in use or not. A boolean flag that indicates if this repository should update the locally\n stored metadata files with metadata files from the origin automatically or\n not. A boolean flag that indicates if packages which would be installed from\n this repository should be checked by their gpg key or not. A numeric value for a priority. The priority of a repository is compared\n to the priorities of all other activated repositories. Values can\n range from 1 (highest) to 99 (lowest, default). users Contains information about the system users including user and group ids,\nlogin information, such as password hashes and - if available - additional\npassword properties. groups Contains information about the system groups such as group attributes and the\nlist of group members. services Services are applications running in the background doing continuous work\nor waiting for requests to do work.\nThe scope determines which services are configured to be started in which\nrunlevel. It uses the chkconfig command to obtain that information.\nThe xinetd services that are also displayed by chkconfig are switched\non/off by editing configuration files and are ignored in this context. changed-config-files Contains all configuration files which have been changed since they were\ninstalled.\nChanged configuration files are all those files which are marked as such in the\npackage which has installed them. A configuration file change is reported\nif its content or its attributes like Linux permission bits or ownership\nhave changed. changed-managed-files Contains the names and contents of all non-configuration files which have\nbeen changed compared to the files in the package. A file change is reported\nif its content or its attributes like Linux permission bits or ownership\nhave changed. unmanaged-files Contains the names and contents of all files which are not part of any package.\nThe list of unmanaged files contains only plain files and\ndirectories. Special files like device nodes, named pipes and Unix domain\nsockets are ignored. The directories /tmp , /var/tmp , /.snapshots/ , /var/run and special mounts like procfs and sysfs are ignored, too.\nIf a directory is in this list, no file or directory below it belongs to a\npackage. Meta data information of unmanaged files is only available if the files were\nextracted during inspection. Using the --extract-unmanaged-files option, the files are transferred from\nthe system and stored in the system description. Depending on the content of\nthe inspected system, the amount of data stored may be huge.",
121
+ "title": "Scopes"
107
122
  },
108
123
  {
109
- "location": "/machinery_main_usecases.1/#system-description",
110
- "text": "The System Description format and file structure is documented in the machinery\nwiki: https://github.com/SUSE/machinery/wiki/System-Description-Format Machinery validates descriptions on load. It checks that the JSON structure of\nthe manifest file, which contains the primary and meta data of a description, is\ncorrect and it adheres to the schema. Validation errors are reported as warnings.\nIt also checks that the information about extracted files is consistent. Missing\nfiles or extra files without reference in the manifest are treated also as\nwarnings. All other issues are errors which need to be fixed so that Machinery\ncan use the description To manually validate a description use the machinery validate command.",
111
- "title": "System Description"
124
+ "location": "/machinery_main_usecases.1/",
125
+ "text": "Use Cases\n\n\nSome of the important use cases of Machinery are:\n\n\n\n\nInspecting a System and Collecting Information\n\n\n\n\nCollecting a variety of information. Limit the gathered\n information with scopes (see section about scopes). Each inspection step\n updates the system description.\n\n\n\n\nReviewing System Description\n\n\n\n\nAfter a successful inspection, the system description can be displayed on\n the console or the output can be fed into other tools.\n\n\n\n\nCloning a System\n\n\n\n\nAn inspected system can be cloned. The inspection step returns a system\n description which is used as the basis for cloning physical or virtual\n instances. Machinery can build a system image from the description, which\n can then for example be deployed to a cloud environment.",
126
+ "title": "Use cases"
112
127
  },
113
128
  {
114
129
  "location": "/machinery_main_usecases.1/#use-cases",
115
- "text": "Some of the important use cases of Machinery are: Inspecting a System and Collecting Information Collecting a variety of information. Limit the gathered\n information with scopes (see section about scopes). Each inspection step\n updates the system description. Reviewing System Description After a successful inspection, the system description can be displayed on\n the console or the output can be fed into other tools. Cloning a System An inspected system can be cloned. The inspection step returns a system\n description which is used as the basis for cloning physical or virtual\n instances. Machinery can build a system image from the description, which\n can then for example be deployed to a cloud.",
130
+ "text": "Some of the important use cases of Machinery are: Inspecting a System and Collecting Information Collecting a variety of information. Limit the gathered\n information with scopes (see section about scopes). Each inspection step\n updates the system description. Reviewing System Description After a successful inspection, the system description can be displayed on\n the console or the output can be fed into other tools. Cloning a System An inspected system can be cloned. The inspection step returns a system\n description which is used as the basis for cloning physical or virtual\n instances. Machinery can build a system image from the description, which\n can then for example be deployed to a cloud environment.",
116
131
  "title": "Use Cases"
117
132
  },
118
133
  {
119
- "location": "/machinery_main_usecases.1/#options-for-all-subcommands",
120
- "text": "--version :\n Displays version of machinery tool. Exit when done. --debug :\n Enable debug mode. Machinery writes additional information into the log\n file which can be useful to track down problems.",
121
- "title": "OPTIONS FOR ALL SUBCOMMANDS"
122
- },
123
- {
124
- "location": "/machinery_security_implications.1/",
125
- "text": "SECURITY IMPLICATIONS\n\n\nThis document describes security related issues administrators need to be aware of when using\nMachinery.\n\n\nInspection\n\n\nMachinery inspects several parts of a system which are covered by Machinery's scopes. A list\nof the available scopes and information about what they do can be found\n\nhere\n.\n\n\nUsers of Machinery who inspect systems need to be aware of the security implications in order\nto take the right decisions on how to protect the retrieved data.\n\n\nRetrieval of Data\n\n\nMachinery transfers data from one end point to another via SSH (using public key authentication).\n\n\nDepending on the scope, Machinery \ncollects information\n\nabout files on the system. Additionally, when the \n--extract-files\n option is given for the\n\ninspect\n command, not only the meta data about the files (e.g. permission bits, owner, group etc\n.) but also the file content is extracted. Machinery does not distinguish between sensitive\ndata (such as private keys or password files). That means that everyone with access to the system\ndescription has automatically access to \nall\n extracted files and contained sensitive data.\n\n\nroot/sudo Privileges\n\n\nAn inspection can only be done, when the user on the inspected system is either root or has\nsudo privileges. Information about the required sudo configuration can be found\n\nhere\n.\n\n\nStorage of Data\n\n\nAccess Restrictions\n\n\nAfter an inspection has been completed, the directory where the description is stored is made\nreadable only for the user. The data is not encrypted by Machinery.\n\n\nUsed Permission Bits\n\n\nWhen Machinery extracts data, it sets permission bits for files and directories as follows:\n\n\n\n\n\n\n\n\nPermission Bits\n\n\nUsed for ...\n\n\n\n\n\n\n\n\n\n\n0700\n\n\n... directories inside the description directory\n\n\n\n\n\n\n0600\n\n\n... for files inside the description directory\n\n\n\n\n\n\n\n\nAccessing System Descriptions\n\n\nBy default, all system descriptions are stored in the directory \n.machinery\n in the home directory\nof the user running Machinery. The directory can be redefined by the environment variable\n\n$MACHINERY_DIR\n. Each description has its own subdirectory. There is a \nmanifest.json\n file in\neach description directory which contains the data of the inspection. Extracted files are stored in\nseparate subdirectories inside the same description directory.\n\n\nPresentation of Data\n\n\nThere are several ways how data can be presented to one or more users. The user has the option to\neither start a web server and view descriptions or view the descriptions only in the console.\n\n\nThe following commands are used to present data to users:\n\n\n\n\nshow\n\n\ncompare\n\n\nserve\n\n\nlist\n\n\n\n\nAll of the commands listed above also have a \n--html\n option. When this option is used, Machinery\nstarts a web server what will listen on the IP address \n127.0.0.1\n. The \nserve\n command\noffers also a \n--public\n option which makes the server listen on all configured IP addresses.\n\n\nWARNING:\n When making the server reachable from the outside, users can modify the link to\naccess also other descriptions. There is currently no way to restrict the access to only one\ndescription.\n\n\nThe \nserve\n command also allows the user to specify a port via the \n--port\n option. When no port\nis specified, the default port which is configured in the machinery config file in\n\n~/.machinery/machinery.config\n) will be taken.\n\n\nExport of Data\n\n\nexport-autoyast\n\n\nThe \nexport-autoyast\n command creates an AutoYaST profile for an automated installation. The result\nare also tar balls containing the extracted files from the system description. These files\npotentially contain sensitive data (e.g. passwords). This fact needs to be kept in mind, especially\nif these files are copied to a web server for an AutoYaST installation via HTTP.\n\n\nexport-kiwi\n\n\nThe program Kiwi allows you to build OS images what you can use for installation. Machinery gives\nyou the opportunity to build a complete Kiwi configuration from a system description. This\nconfiguration can be used to build an image via Kiwi. The \nexport-kiwi\n command creates a\ndirectory, where it stores the Kiwi configuration and the files of a system description. These\nfiles potentially contain sensitive data (e.g. passwords).\n\n\nbuild\n\n\nThe created image potentially contains sensitive data (e.g. passwords) from extracted files.\n\n\ndeploy\n\n\nThe uploaded image potentially contains sensitive data (e.g. passwords) from extracted files.",
134
+ "location": "/machinery_main_security_implications.1/",
135
+ "text": "Security Implications\n\n\nThis document describes security related issues administrators need to be aware of when using\nMachinery.\n\n\nInspection\n\n\nMachinery inspects several parts of a system which are covered by Machinery's scopes.\nInformation about scopes is listed \nhere\n.\n\n\nUsers of Machinery who inspect systems need to be aware of the security implications\nto take the right decisions on how to protect the retrieved data.\n\n\nRetrieval of Data\n\n\nMachinery transfers data from one end point to another via SSH (Secure Shell, using public key authentication).\n\n\nDepending on the scope, Machinery \ncollects information\n\nabout files on the system. Additionally, when the \n--extract-files\n option is given for the\n\ninspect\n command, not only the meta data about the files (e.g. permission bits, owner, group etc\n.) but also the file content is extracted. Machinery does not distinguish between sensitive\ndata (such as private keys or password files). That means that everyone with access to the system\ndescription has automatically access to \nall\n extracted files and contained sensitive data.\n\n\nroot/sudo Privileges\n\n\nAn inspection can only be done, when the user on the inspected system is either root or has\nsudo privileges. Information about the required sudo configuration can be found\n\nhere\n.\n\n\nStorage of Data\n\n\nAccess Restrictions\n\n\nAfter an inspection has been completed, the directory where the description is stored is made\nreadable only for the user. The data is not encrypted by Machinery.\n\n\nUsed Permission Bits\n\n\nWhen Machinery extracts data, it sets permission bits for files and directories as follows:\n\n\n\n\n\n\n\n\nPermission Bits\n\n\nUsed for ...\n\n\n\n\n\n\n\n\n\n\n0700\n\n\n... directories inside the description directory\n\n\n\n\n\n\n0600\n\n\n... for files inside the description directory\n\n\n\n\n\n\n\n\nAccessing System Descriptions\n\n\nBy default, all system descriptions are stored in the directory \n.machinery\n in the home directory\nof the user running Machinery. The directory can be redefined by the environment variable\n\n$MACHINERY_DIR\n. Each description has its own subdirectory. There is a \nmanifest.json\n file in\neach description directory which contains the data of the inspection. Extracted files are stored in\nseparate subdirectories inside the same description directory.\n\n\nPresentation of Data\n\n\nThere are several ways how data can be presented to one or more users. The user has the option to\neither start a web server and view descriptions or view the descriptions only in the console.\n\n\nThe following commands are used to present data to users:\n\n\n\n\nshow\n\n\ncompare\n\n\nserve\n\n\nlist\n\n\n\n\nAll of the commands listed above also have a \n--html\n option. When this option is used, Machinery\nstarts a web server what will listen on the IP address \n127.0.0.1\n. The \nserve\n command\noffers also a \n--public\n option which makes the server listen on all configured IP addresses.\n\n\nWARNING:\n When making the server reachable from the outside, users can modify the link to\naccess also other descriptions. There is currently no way to restrict the access to only one\ndescription.\n\n\nThe \nserve\n command also allows the user to specify a port via the \n--port\n option. When no port\nis specified, the default port which is configured in the machinery config file in\n\n~/.machinery/machinery.config\n) will be taken.\n\n\nExport of Data\n\n\nexport-autoyast\n\n\nThe \nexport-autoyast\n command creates an AutoYaST profile for an automated installation. This will result\nin tar balls containing the extracted files from the system description. These files\npotentially contain sensitive data (e.g. passwords). This fact needs to be kept in mind, especially\nif these files are copied to a web server for an AutoYaST installation via HTTP.\n\n\nexport-kiwi\n\n\nThe program \nkiwi\n allows you to build OS images for deployment. Machinery gives\nyou the opportunity to export a KIWI description. This description can be used to build an image via Kiwi.\nThe \nexport-kiwi\n command creates a directory, where it stores the Kiwi configuration and the files\nof a system description. These files potentially contain sensitive data (e.g. passwords).\n\n\nbuild\n\n\nThe created image potentially contains sensitive data (e.g. passwords) from extracted files.\n\n\ndeploy\n\n\nThe uploaded image potentially contains sensitive data (e.g. passwords) from extracted files.",
126
136
  "title": "Security Implications"
127
137
  },
128
138
  {
129
- "location": "/machinery_security_implications.1/#security-implications",
139
+ "location": "/machinery_main_security_implications.1/#security-implications",
130
140
  "text": "This document describes security related issues administrators need to be aware of when using\nMachinery.",
131
- "title": "SECURITY IMPLICATIONS"
141
+ "title": "Security Implications"
132
142
  },
133
143
  {
134
- "location": "/machinery_security_implications.1/#inspection",
135
- "text": "Machinery inspects several parts of a system which are covered by Machinery's scopes. A list\nof the available scopes and information about what they do can be found here . Users of Machinery who inspect systems need to be aware of the security implications in order\nto take the right decisions on how to protect the retrieved data.",
144
+ "location": "/machinery_main_security_implications.1/#inspection",
145
+ "text": "Machinery inspects several parts of a system which are covered by Machinery's scopes.\nInformation about scopes is listed here . Users of Machinery who inspect systems need to be aware of the security implications\nto take the right decisions on how to protect the retrieved data.",
136
146
  "title": "Inspection"
137
147
  },
138
148
  {
139
- "location": "/machinery_security_implications.1/#retrieval-of-data",
140
- "text": "Machinery transfers data from one end point to another via SSH (using public key authentication). Depending on the scope, Machinery collects information \nabout files on the system. Additionally, when the --extract-files option is given for the inspect command, not only the meta data about the files (e.g. permission bits, owner, group etc\n.) but also the file content is extracted. Machinery does not distinguish between sensitive\ndata (such as private keys or password files). That means that everyone with access to the system\ndescription has automatically access to all extracted files and contained sensitive data.",
149
+ "location": "/machinery_main_security_implications.1/#retrieval-of-data",
150
+ "text": "Machinery transfers data from one end point to another via SSH (Secure Shell, using public key authentication). Depending on the scope, Machinery collects information \nabout files on the system. Additionally, when the --extract-files option is given for the inspect command, not only the meta data about the files (e.g. permission bits, owner, group etc\n.) but also the file content is extracted. Machinery does not distinguish between sensitive\ndata (such as private keys or password files). That means that everyone with access to the system\ndescription has automatically access to all extracted files and contained sensitive data.",
141
151
  "title": "Retrieval of Data"
142
152
  },
143
153
  {
144
- "location": "/machinery_security_implications.1/#rootsudo-privileges",
154
+ "location": "/machinery_main_security_implications.1/#rootsudo-privileges",
145
155
  "text": "An inspection can only be done, when the user on the inspected system is either root or has\nsudo privileges. Information about the required sudo configuration can be found here .",
146
156
  "title": "root/sudo Privileges"
147
157
  },
148
158
  {
149
- "location": "/machinery_security_implications.1/#storage-of-data",
159
+ "location": "/machinery_main_security_implications.1/#storage-of-data",
150
160
  "text": "",
151
161
  "title": "Storage of Data"
152
162
  },
153
163
  {
154
- "location": "/machinery_security_implications.1/#access-restrictions",
164
+ "location": "/machinery_main_security_implications.1/#access-restrictions",
155
165
  "text": "After an inspection has been completed, the directory where the description is stored is made\nreadable only for the user. The data is not encrypted by Machinery.",
156
166
  "title": "Access Restrictions"
157
167
  },
158
168
  {
159
- "location": "/machinery_security_implications.1/#used-permission-bits",
169
+ "location": "/machinery_main_security_implications.1/#used-permission-bits",
160
170
  "text": "When Machinery extracts data, it sets permission bits for files and directories as follows: Permission Bits Used for ... 0700 ... directories inside the description directory 0600 ... for files inside the description directory",
161
171
  "title": "Used Permission Bits"
162
172
  },
163
173
  {
164
- "location": "/machinery_security_implications.1/#accessing-system-descriptions",
174
+ "location": "/machinery_main_security_implications.1/#accessing-system-descriptions",
165
175
  "text": "By default, all system descriptions are stored in the directory .machinery in the home directory\nof the user running Machinery. The directory can be redefined by the environment variable $MACHINERY_DIR . Each description has its own subdirectory. There is a manifest.json file in\neach description directory which contains the data of the inspection. Extracted files are stored in\nseparate subdirectories inside the same description directory.",
166
176
  "title": "Accessing System Descriptions"
167
177
  },
168
178
  {
169
- "location": "/machinery_security_implications.1/#presentation-of-data",
179
+ "location": "/machinery_main_security_implications.1/#presentation-of-data",
170
180
  "text": "There are several ways how data can be presented to one or more users. The user has the option to\neither start a web server and view descriptions or view the descriptions only in the console. The following commands are used to present data to users: show compare serve list All of the commands listed above also have a --html option. When this option is used, Machinery\nstarts a web server what will listen on the IP address 127.0.0.1 . The serve command\noffers also a --public option which makes the server listen on all configured IP addresses. WARNING: When making the server reachable from the outside, users can modify the link to\naccess also other descriptions. There is currently no way to restrict the access to only one\ndescription. The serve command also allows the user to specify a port via the --port option. When no port\nis specified, the default port which is configured in the machinery config file in ~/.machinery/machinery.config ) will be taken.",
171
181
  "title": "Presentation of Data"
172
182
  },
173
183
  {
174
- "location": "/machinery_security_implications.1/#export-of-data",
184
+ "location": "/machinery_main_security_implications.1/#export-of-data",
175
185
  "text": "",
176
186
  "title": "Export of Data"
177
187
  },
178
188
  {
179
- "location": "/machinery_security_implications.1/#export-autoyast",
180
- "text": "The export-autoyast command creates an AutoYaST profile for an automated installation. The result\nare also tar balls containing the extracted files from the system description. These files\npotentially contain sensitive data (e.g. passwords). This fact needs to be kept in mind, especially\nif these files are copied to a web server for an AutoYaST installation via HTTP.",
189
+ "location": "/machinery_main_security_implications.1/#export-autoyast",
190
+ "text": "The export-autoyast command creates an AutoYaST profile for an automated installation. This will result\nin tar balls containing the extracted files from the system description. These files\npotentially contain sensitive data (e.g. passwords). This fact needs to be kept in mind, especially\nif these files are copied to a web server for an AutoYaST installation via HTTP.",
181
191
  "title": "export-autoyast"
182
192
  },
183
193
  {
184
- "location": "/machinery_security_implications.1/#export-kiwi",
185
- "text": "The program Kiwi allows you to build OS images what you can use for installation. Machinery gives\nyou the opportunity to build a complete Kiwi configuration from a system description. This\nconfiguration can be used to build an image via Kiwi. The export-kiwi command creates a\ndirectory, where it stores the Kiwi configuration and the files of a system description. These\nfiles potentially contain sensitive data (e.g. passwords).",
194
+ "location": "/machinery_main_security_implications.1/#export-kiwi",
195
+ "text": "The program kiwi allows you to build OS images for deployment. Machinery gives\nyou the opportunity to export a KIWI description. This description can be used to build an image via Kiwi.\nThe export-kiwi command creates a directory, where it stores the Kiwi configuration and the files\nof a system description. These files potentially contain sensitive data (e.g. passwords).",
186
196
  "title": "export-kiwi"
187
197
  },
188
198
  {
189
- "location": "/machinery_security_implications.1/#build",
199
+ "location": "/machinery_main_security_implications.1/#build",
190
200
  "text": "The created image potentially contains sensitive data (e.g. passwords) from extracted files.",
191
201
  "title": "build"
192
202
  },
193
203
  {
194
- "location": "/machinery_security_implications.1/#deploy",
204
+ "location": "/machinery_main_security_implications.1/#deploy",
195
205
  "text": "The uploaded image potentially contains sensitive data (e.g. passwords) from extracted files.",
196
206
  "title": "deploy"
197
207
  },
198
208
  {
199
209
  "location": "/machinery-analyze.1/",
200
- "text": "analyze \u2014 Analyze System Description\n\n\nSYNOPSIS\n\n\nmachinery analyze\n NAME -o | --operation=OPERATION\n\n\nmachinery\n help analyze\n\n\nDESCRIPTION\n\n\nThe \nanalyze\n subcommand analyzes an existing system description and enriches\nit with additional information. Supported operations are:\n\n\n\n\nchanged-config-files-diffs\n:\n Generates the diffs between the extracted changed configuration files from the\n system and the original versions from the RPM packages.\n The diffs can be shown using \nmachinery show --show-diffs\n\n\n\n\nARGUMENTS\n\n\n\n\nNAME\n (required):\n Name of the system description.\n\n\n\n\nOPTIONS\n\n\n\n\n-o OPERATION\n, \n--operation=OPERATION\n (required):\n The analyze operation to perform.\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nAnalyze the config file diffs for the \nmyhost\n system description:\n\n\n$ \nmachinery\n analyze myhost --operation=changed-config-files-diffs",
210
+ "text": "analyze \u2014 Analyze System Description\n\n\nSynopsis\n\n\nmachinery analyze\n NAME -o | --operation=OPERATION\n\n\nmachinery\n help analyze\n\n\nDescription\n\n\nThe \nanalyze\n subcommand analyzes an existing system description and enriches\nit with additional information. Supported operations are:\n\n\n\n\nchanged-config-files-diffs\n:\n Generates the diffs between the extracted changed configuration files from the\n system and the original versions from the packages.\n The diffs can be shown using \nmachinery show --show-diffs\n\n\n\n\nArguments\n\n\n\n\nNAME\n (required):\n Name of the system description.\n\n\n\n\nOptions\n\n\n\n\n-o OPERATION\n, \n--operation=OPERATION\n (required):\n The analyze operation to perform.\n\n\n\n\nExamples\n\n\n\n\n\n\nAnalyze the config file diffs for the \nmyhost\n system description:\n\n\n$ \nmachinery\n analyze myhost --operation=changed-config-files-diffs",
201
211
  "title": "Analyze"
202
212
  },
203
213
  {
@@ -208,31 +218,31 @@
208
218
  {
209
219
  "location": "/machinery-analyze.1/#synopsis",
210
220
  "text": "machinery analyze NAME -o | --operation=OPERATION machinery help analyze",
211
- "title": "SYNOPSIS"
221
+ "title": "Synopsis"
212
222
  },
213
223
  {
214
224
  "location": "/machinery-analyze.1/#description",
215
- "text": "The analyze subcommand analyzes an existing system description and enriches\nit with additional information. Supported operations are: changed-config-files-diffs :\n Generates the diffs between the extracted changed configuration files from the\n system and the original versions from the RPM packages.\n The diffs can be shown using machinery show --show-diffs",
216
- "title": "DESCRIPTION"
225
+ "text": "The analyze subcommand analyzes an existing system description and enriches\nit with additional information. Supported operations are: changed-config-files-diffs :\n Generates the diffs between the extracted changed configuration files from the\n system and the original versions from the packages.\n The diffs can be shown using machinery show --show-diffs",
226
+ "title": "Description"
217
227
  },
218
228
  {
219
229
  "location": "/machinery-analyze.1/#arguments",
220
230
  "text": "NAME (required):\n Name of the system description.",
221
- "title": "ARGUMENTS"
231
+ "title": "Arguments"
222
232
  },
223
233
  {
224
234
  "location": "/machinery-analyze.1/#options",
225
235
  "text": "-o OPERATION , --operation=OPERATION (required):\n The analyze operation to perform.",
226
- "title": "OPTIONS"
236
+ "title": "Options"
227
237
  },
228
238
  {
229
239
  "location": "/machinery-analyze.1/#examples",
230
240
  "text": "Analyze the config file diffs for the myhost system description: $ machinery analyze myhost --operation=changed-config-files-diffs",
231
- "title": "EXAMPLES"
241
+ "title": "Examples"
232
242
  },
233
243
  {
234
244
  "location": "/machinery-build.1/",
235
- "text": "build \u2014 Build Image from System Description\n\n\nSYNOPSIS\n\n\nmachinery build\n NAME -i IMAGE-DIR | --image-dir=IMAGE-DIR\n\n\nmachinery\n help build\n\n\nDESCRIPTION\n\n\nThe \nbuild\n command builds an image from a system description. The image is a\nsystem image in the qcow2 format, which can be used with the KVM hypervisor.\nIt can be run locally or deployed to a cloud environment.\n\n\nmachinery\n uses the image building command line tool\n\nKIWI\n to perform the actual build. KIWI\ndata is stored to a temporary directory and cleaned up after the build. The KIWI\nlog is shown as output of the \nbuild\n command format for showing progress and\ndiagnosing errors.\n\n\nWhen building an image, Machinery filters out some files which would break the\nbuilt image. The list of filters is shown at the beginning of the build.\n\n\nARGUMENTS\n\n\n\n\nNAME\n (required):\n Use specified system description.\n\n\n\n\nOPTIONS\n\n\n\n\n\n\n-i IMAGE-DIR\n, \n--image-dir=IMAGE-DIR\n (required):\n Save image file under specified path.\n\n\n\n\n\n\n-d\n, \n--enable-dhcp\n (optional):\n Enable DHCP client on first network card of built image\n\n\n\n\n\n\n-s\n, \n--enable-ssh\n (optional):\n Enable SSH service in built image\n\n\n\n\n\n\nPREREQUISITES\n\n\n\n\n\n\nThe \nbuild\n command requires the packages \nkiwi\n and \nkiwi-desc-vmxboot\n.\n\n\n\n\n\n\nThe necessary vmxboot template for the machinery being built must be\n installed (i.e. if you want to build an openSUSE Leap machine then the\n template \n/usr/share/kiwi/image/vmxboot/suse-leap42.1\n is required)\n\n\n\n\n\n\nAll repositories in the system description must be accessible from the\n build machine on which \nmachinery build\n is called.\n\n\n\n\n\n\nMachinery can only build x86_64 images on x86_64 systems at the moment.\n\n\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nTo build an image from the system description named \"tux\" and to save the\n image under the \n/tmp/tux/\n directory:\n\n\n$ \nmachinery\n build tux -i /tmp/tux/",
245
+ "text": "build \u2014 Build Image from System Description\n\n\nSynopsis\n\n\nmachinery build\n NAME -i IMAGE-DIR | --image-dir=IMAGE-DIR\n\n\nmachinery\n help build\n\n\nDescription\n\n\nThe \nbuild\n command builds an image from a system description. The image is a\nsystem image in the qcow2 format, which can be used with the KVM hypervisor.\nIt can be run locally or deployed to a cloud environment.\n\n\nmachinery\n uses the image building command line tool\n\nKIWI\n to perform the actual build. KIWI\ndata is stored to a temporary directory and cleaned up after the build. The KIWI\nlog is shown as output of the \nbuild\n command format for showing progress and\ndiagnosing errors.\n\n\nWhen building an image, Machinery filters out some files which would break the\nbuilt image. The list of filters is shown at the beginning of the build.\n\n\nArguments\n\n\n\n\nNAME\n (required):\n Use specified system description.\n\n\n\n\nOptions\n\n\n\n\n\n\n-i IMAGE-DIR\n, \n--image-dir=IMAGE-DIR\n (required):\n Save image file under specified path.\n\n\n\n\n\n\n-d\n, \n--enable-dhcp\n (optional):\n Enable DHCP client on first network card of built image\n\n\n\n\n\n\n-s\n, \n--enable-ssh\n (optional):\n Enable SSH service in built image\n\n\n\n\n\n\nPrerequisites\n\n\n\n\n\n\nThe \nbuild\n command requires the packages \nkiwi\n and \nkiwi-desc-vmxboot\n.\n\n\n\n\n\n\nThe necessary vmxboot template for the machinery being built must be\n installed (i.e. if you want to build an openSUSE Leap machine then the\n template \n/usr/share/kiwi/image/vmxboot/suse-leap42.1\n is required)\n\n\n\n\n\n\nAll repositories in the system description must be accessible from the\n build machine on which \nmachinery build\n is called.\n\n\n\n\n\n\nMachinery can only build x86_64 images on x86_64 systems at the moment.\n\n\n\n\n\n\nExamples\n\n\n\n\n\n\nTo build an image from the system description named \"tux\" and to save the\n image under the \n/tmp/tux/\n directory:\n\n\n$ \nmachinery\n build tux -i /tmp/tux/",
236
246
  "title": "Build"
237
247
  },
238
248
  {
@@ -243,36 +253,36 @@
243
253
  {
244
254
  "location": "/machinery-build.1/#synopsis",
245
255
  "text": "machinery build NAME -i IMAGE-DIR | --image-dir=IMAGE-DIR machinery help build",
246
- "title": "SYNOPSIS"
256
+ "title": "Synopsis"
247
257
  },
248
258
  {
249
259
  "location": "/machinery-build.1/#description",
250
260
  "text": "The build command builds an image from a system description. The image is a\nsystem image in the qcow2 format, which can be used with the KVM hypervisor.\nIt can be run locally or deployed to a cloud environment. machinery uses the image building command line tool KIWI to perform the actual build. KIWI\ndata is stored to a temporary directory and cleaned up after the build. The KIWI\nlog is shown as output of the build command format for showing progress and\ndiagnosing errors. When building an image, Machinery filters out some files which would break the\nbuilt image. The list of filters is shown at the beginning of the build.",
251
- "title": "DESCRIPTION"
261
+ "title": "Description"
252
262
  },
253
263
  {
254
264
  "location": "/machinery-build.1/#arguments",
255
265
  "text": "NAME (required):\n Use specified system description.",
256
- "title": "ARGUMENTS"
266
+ "title": "Arguments"
257
267
  },
258
268
  {
259
269
  "location": "/machinery-build.1/#options",
260
270
  "text": "-i IMAGE-DIR , --image-dir=IMAGE-DIR (required):\n Save image file under specified path. -d , --enable-dhcp (optional):\n Enable DHCP client on first network card of built image -s , --enable-ssh (optional):\n Enable SSH service in built image",
261
- "title": "OPTIONS"
271
+ "title": "Options"
262
272
  },
263
273
  {
264
274
  "location": "/machinery-build.1/#prerequisites",
265
275
  "text": "The build command requires the packages kiwi and kiwi-desc-vmxboot . The necessary vmxboot template for the machinery being built must be\n installed (i.e. if you want to build an openSUSE Leap machine then the\n template /usr/share/kiwi/image/vmxboot/suse-leap42.1 is required) All repositories in the system description must be accessible from the\n build machine on which machinery build is called. Machinery can only build x86_64 images on x86_64 systems at the moment.",
266
- "title": "PREREQUISITES"
276
+ "title": "Prerequisites"
267
277
  },
268
278
  {
269
279
  "location": "/machinery-build.1/#examples",
270
280
  "text": "To build an image from the system description named \"tux\" and to save the\n image under the /tmp/tux/ directory: $ machinery build tux -i /tmp/tux/",
271
- "title": "EXAMPLES"
281
+ "title": "Examples"
272
282
  },
273
283
  {
274
284
  "location": "/machinery-compare.1/",
275
- "text": "compare \u2014 Compare System Descriptions\n\n\nSYNOPSIS\n\n\nmachinery compare\n [-s SCOPE | --scope=SCOPE] [-e IGNORE-SCOPE | --ignore-scope=IGNORE-SCOPE] [--no-pager] [--show-all] [--html] NAME1 NAME2\n\n\nmachinery\n help compare\n\n\nDESCRIPTION\n\n\nThe \ncompare\n command compares stored system descriptions. The scope option can\nbe used to limit the output to the given scopes.\n\n\nARGUMENTS\n\n\n\n\n\n\nNAME1\n (required):\n First system description to compare.\n\n\n\n\n\n\nNAME2\n (required):\n Second system description to compare.\n\n\n\n\n\n\nOPTIONS\n\n\n\n\n\n\n-s SCOPE\n, \n--scope=SCOPE\n (optional):\n Limit output to the specified scope.\n See the \nScope section\n for more information.\n\n\n\n\n\n\n-e SCOPE\n, \n--ignore-scope=IGNORE-SCOPE\n (optional):\n Skip output of the specified scope.\n See the \nScope section\n for more information.\n\n\n\n\n\n\n--no-pager\n (optional):\n Do not pipe output into a pager.\n\n\n\n\n\n\n--show-all\n (optional):\n Show also common properties of the descriptions (not only the differences).\n\n\n\n\n\n\n--html\n (optional):\n Shows the comparison of two system descriptions in the web browser.\n\n\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nCompare system descriptions saved as \nearth\n and \nmoon\n:\n\n\n$ \nmachinery\n compare earth moon\n\n\n\n\n\n\nCompare system descriptions, but limit the scope to repositories only:\n\n\n$ \nmachinery\n compare earth moon -s repositories\n\n\n\n\n\n\nCompare lists of changed managed files and include the common ones in the\n list:\n\n\n$ \nmachinery\n compare earth moon --scope=changed-managed-files --show-all\n\n\n\n\n\n\nCompares system descriptions and shows the result in HTML format in your web browser:\n\n\n$ \nmachinery\n compare --html earth moon",
285
+ "text": "compare \u2014 Compare System Descriptions\n\n\nSynopsis\n\n\nmachinery compare\n [-s SCOPE | --scope=SCOPE] [-e IGNORE-SCOPE | --ignore-scope=IGNORE-SCOPE] [--no-pager] [--show-all] [--html] NAME1 NAME2\n\n\nmachinery\n help compare\n\n\nDescription\n\n\nThe \ncompare\n command compares stored system descriptions. The scope option can\nbe used to limit the output to the given scopes.\n\n\nArguments\n\n\n\n\n\n\nNAME1\n (required):\n First system description to compare.\n\n\n\n\n\n\nNAME2\n (required):\n Second system description to compare.\n\n\n\n\n\n\nOptions\n\n\n\n\n\n\n-s SCOPE\n, \n--scope=SCOPE\n (optional):\n Limit output to the specified scope.\n See the \nScope section\n for more information.\n\n\n\n\n\n\n-e SCOPE\n, \n--ignore-scope=IGNORE-SCOPE\n (optional):\n Skip output of the specified scope.\n See the \nScope section\n for more information.\n\n\n\n\n\n\n--no-pager\n (optional):\n Do not pipe output into a pager.\n\n\n\n\n\n\n--show-all\n (optional):\n Show also common properties of the descriptions (not only the differences).\n\n\n\n\n\n\n--html\n (optional):\n Shows the comparison of two system descriptions in the web browser.\n\n\n\n\n\n\nExamples\n\n\n\n\n\n\nCompare system descriptions saved as \nearth\n and \nmoon\n:\n\n\n$ \nmachinery\n compare earth moon\n\n\n\n\n\n\nCompare system descriptions, but limit the scope to repositories only:\n\n\n$ \nmachinery\n compare earth moon -s repositories\n\n\n\n\n\n\nCompare lists of changed managed files and include the common ones in the\n list:\n\n\n$ \nmachinery\n compare earth moon --scope=changed-managed-files --show-all\n\n\n\n\n\n\nCompares system descriptions and shows the result in HTML format in your web browser:\n\n\n$ \nmachinery\n compare --html earth moon",
276
286
  "title": "Compare"
277
287
  },
278
288
  {
@@ -283,31 +293,31 @@
283
293
  {
284
294
  "location": "/machinery-compare.1/#synopsis",
285
295
  "text": "machinery compare [-s SCOPE | --scope=SCOPE] [-e IGNORE-SCOPE | --ignore-scope=IGNORE-SCOPE] [--no-pager] [--show-all] [--html] NAME1 NAME2 machinery help compare",
286
- "title": "SYNOPSIS"
296
+ "title": "Synopsis"
287
297
  },
288
298
  {
289
299
  "location": "/machinery-compare.1/#description",
290
300
  "text": "The compare command compares stored system descriptions. The scope option can\nbe used to limit the output to the given scopes.",
291
- "title": "DESCRIPTION"
301
+ "title": "Description"
292
302
  },
293
303
  {
294
304
  "location": "/machinery-compare.1/#arguments",
295
305
  "text": "NAME1 (required):\n First system description to compare. NAME2 (required):\n Second system description to compare.",
296
- "title": "ARGUMENTS"
306
+ "title": "Arguments"
297
307
  },
298
308
  {
299
309
  "location": "/machinery-compare.1/#options",
300
310
  "text": "-s SCOPE , --scope=SCOPE (optional):\n Limit output to the specified scope.\n See the Scope section for more information. -e SCOPE , --ignore-scope=IGNORE-SCOPE (optional):\n Skip output of the specified scope.\n See the Scope section for more information. --no-pager (optional):\n Do not pipe output into a pager. --show-all (optional):\n Show also common properties of the descriptions (not only the differences). --html (optional):\n Shows the comparison of two system descriptions in the web browser.",
301
- "title": "OPTIONS"
311
+ "title": "Options"
302
312
  },
303
313
  {
304
314
  "location": "/machinery-compare.1/#examples",
305
315
  "text": "Compare system descriptions saved as earth and moon : $ machinery compare earth moon Compare system descriptions, but limit the scope to repositories only: $ machinery compare earth moon -s repositories Compare lists of changed managed files and include the common ones in the\n list: $ machinery compare earth moon --scope=changed-managed-files --show-all Compares system descriptions and shows the result in HTML format in your web browser: $ machinery compare --html earth moon",
306
- "title": "EXAMPLES"
316
+ "title": "Examples"
307
317
  },
308
318
  {
309
319
  "location": "/machinery-config.1/",
310
- "text": "config \u2014 Configure Machinery\n\n\nSYNOPSIS\n\n\nmachinery config\n\n\nmachinery config\n KEY\n\n\nmachinery config\n KEY=VALUE\n\n\nmachinery\n help config\n\n\nDESCRIPTION\n\n\nThe \nconfig\n command shows or changes machinery's configuration.\n\n\nIf no arguments are passed the \nconfig\n command lists all configuration\nentries and their values. If only the key is provided its value is shown.\nIf key and value are specified this configuration entry is set accordingly.\n\n\nThe configuration is stored in \n~/.machinery/machinery.config\n.\n\n\nARGUMENTS\n\n\n\n\n\n\nKEY\n:\n Name of the configuration entry.\n\n\n\n\n\n\nVALUE\n:\n Value of the configuration entry.\n\n\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nTurn off hints:\n\n\n$ \nmachinery\n config hints=off\n\n\n\n\n\n\nShow current configuration of hints:\n\n\n$ \nmachinery\n config hints\n\n\n\n\n\n\nList all configuration entries and their values:\n\n\n$ \nmachinery\n config",
320
+ "text": "config \u2014 Configure Machinery\n\n\nSynopsis\n\n\nmachinery config\n\n\nmachinery config\n KEY\n\n\nmachinery config\n KEY=VALUE\n\n\nmachinery\n help config\n\n\nDescription\n\n\nThe \nconfig\n command shows or changes machinery's configuration.\n\n\nIf no arguments are passed the \nconfig\n command lists all configuration\nentries and their values. If only the key is provided its value is shown.\nIf key and value are specified this configuration entry is set accordingly.\n\n\nThe configuration is stored in \n~/.machinery/machinery.config\n.\n\n\nArguments\n\n\n\n\n\n\nKEY\n:\n Name of the configuration entry.\n\n\n\n\n\n\nVALUE\n:\n Value of the configuration entry.\n\n\n\n\n\n\nExamples\n\n\n\n\n\n\nTurn off hints:\n\n\n$ \nmachinery\n config hints=off\n\n\n\n\n\n\nShow current configuration of hints:\n\n\n$ \nmachinery\n config hints\n\n\n\n\n\n\nList all configuration entries and their values:\n\n\n$ \nmachinery\n config",
311
321
  "title": "Config"
312
322
  },
313
323
  {
@@ -318,26 +328,26 @@
318
328
  {
319
329
  "location": "/machinery-config.1/#synopsis",
320
330
  "text": "machinery config machinery config KEY machinery config KEY=VALUE machinery help config",
321
- "title": "SYNOPSIS"
331
+ "title": "Synopsis"
322
332
  },
323
333
  {
324
334
  "location": "/machinery-config.1/#description",
325
335
  "text": "The config command shows or changes machinery's configuration. If no arguments are passed the config command lists all configuration\nentries and their values. If only the key is provided its value is shown.\nIf key and value are specified this configuration entry is set accordingly. The configuration is stored in ~/.machinery/machinery.config .",
326
- "title": "DESCRIPTION"
336
+ "title": "Description"
327
337
  },
328
338
  {
329
339
  "location": "/machinery-config.1/#arguments",
330
340
  "text": "KEY :\n Name of the configuration entry. VALUE :\n Value of the configuration entry.",
331
- "title": "ARGUMENTS"
341
+ "title": "Arguments"
332
342
  },
333
343
  {
334
344
  "location": "/machinery-config.1/#examples",
335
345
  "text": "Turn off hints: $ machinery config hints=off Show current configuration of hints: $ machinery config hints List all configuration entries and their values: $ machinery config",
336
- "title": "EXAMPLES"
346
+ "title": "Examples"
337
347
  },
338
348
  {
339
349
  "location": "/machinery-copy.1/",
340
- "text": "copy \u2014 Copy System Description\n\n\nSYNOPSIS\n\n\nmachinery copy\n\n FROM_NAME TO_NAME\n\n\nmachinery\n help copy\n\n\nDESCRIPTION\n\n\nThe \ncopy\n command copies a stored system description. It creates a new\ndescription named TO_NAME containing the same content as the description\nFROM_NAME.\n\n\nARGUMENTS\n\n\n\n\n\n\nFROM_NAME\n (required):\n Name of the source system description.\n\n\n\n\n\n\nTO_NAME\n (required):\n Name of the target system description.\n\n\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nCreate a copy of the system description \nearth\n under the name \nmoon\n:\n\n\n$ \nmachinery\n copy earth moon",
350
+ "text": "copy \u2014 Copy System Description\n\n\nSynopsis\n\n\nmachinery copy\n FROM_NAME TO_NAME\n\n\nmachinery\n help copy\n\n\nDescription\n\n\nThe \ncopy\n command copies a stored system description. It creates a new\ndescription named TO_NAME containing the same content as the description\nFROM_NAME.\n\n\nArguments\n\n\n\n\n\n\nFROM_NAME\n (required):\n Name of the source system description.\n\n\n\n\n\n\nTO_NAME\n (required):\n Name of the target system description.\n\n\n\n\n\n\nExamples\n\n\n\n\n\n\nCreate a copy of the system description \nearth\n under the name \nmoon\n:\n\n\n$ \nmachinery\n copy earth moon",
341
351
  "title": "Copy"
342
352
  },
343
353
  {
@@ -347,27 +357,27 @@
347
357
  },
348
358
  {
349
359
  "location": "/machinery-copy.1/#synopsis",
350
- "text": "machinery copy \n FROM_NAME TO_NAME machinery help copy",
351
- "title": "SYNOPSIS"
360
+ "text": "machinery copy FROM_NAME TO_NAME machinery help copy",
361
+ "title": "Synopsis"
352
362
  },
353
363
  {
354
364
  "location": "/machinery-copy.1/#description",
355
365
  "text": "The copy command copies a stored system description. It creates a new\ndescription named TO_NAME containing the same content as the description\nFROM_NAME.",
356
- "title": "DESCRIPTION"
366
+ "title": "Description"
357
367
  },
358
368
  {
359
369
  "location": "/machinery-copy.1/#arguments",
360
370
  "text": "FROM_NAME (required):\n Name of the source system description. TO_NAME (required):\n Name of the target system description.",
361
- "title": "ARGUMENTS"
371
+ "title": "Arguments"
362
372
  },
363
373
  {
364
374
  "location": "/machinery-copy.1/#examples",
365
375
  "text": "Create a copy of the system description earth under the name moon : $ machinery copy earth moon",
366
- "title": "EXAMPLES"
376
+ "title": "Examples"
367
377
  },
368
378
  {
369
379
  "location": "/machinery-deploy.1/",
370
- "text": "deploy \u2014 Deploy Image to OpenStack Cloud\n\n\nSYNOPSIS\n\n\nmachinery deploy\n NAME -c CONFIG_FILE | --cloud-config=CONFIG_FILE\n [-i IMAGE_DIR | --image-dir=IMAGE_DIR]\n [-n CLOUD_IMAGE_NAME | --cloud-image-name=CLOUD_IMAGE_NAME]\n [-s | --insecure ]\n\n\nmachinery\n help [deploy]\n\n\nDESCRIPTION\n\n\nThe \ndeploy\n command builds and deploys an image to an OpenStack cloud.\nThis command is particularly useful for testing, debugging, or for validation.\n\n\n\n\nNOTE: Set Password for Unattended Work\n\n\nMachinery asks for a password when sourcing the configuration\nfile. This interrupts the work flow and the user has to enter\nthis password.\nIf you prefer to leave it uninterrupted and unattented, remove\nthe following line in your cloud configuration file (see the \n-c\n option):\n\n\nread -s OS_PASSWORD_INPUT\n\n\nand set the password in the \nOS_PASSWORD\n variable:\n\n\nexport OS_PASSWORD=YOUR_PASSWORD\n\n\n\n\nARGUMENTS\n\n\n\n\nNAME\n (required):\n Name of the system description.\n\n\n\n\nOPTIONS\n\n\n\n\n\n\n-c CONFIG_FILE\n, \n--cloud-config=CONFIG_FILE\n (required):\n Path to file where the cloud config (openrc.sh) is located.\n The configuration file is sourced by Machinery.\n\n\n\n\n\n\n-i IMAGE_DIR\n, \n--image-dir=IMAGE_DIR\n (optional):\n Image file under specific path.\n\n\n\n\n\n\n-n CLOUD_IMAGE_NAME\n, \n--cloud-image-name=CLOUD_IMAGE_NAME\n (required):\n Name of the image in the cloud.\n\n\n\n\n\n\n-s\n, \n--insecure\n (optional):\n Allow to make \"insecure\" HTTPS requests, without checking the SSL\n certificate when uploading to the cloud.\n\n\n\n\n\n\nPREREQUISITES\n\n\n\n\nThe \ndeploy\n command requires the packages \nkiwi\n for building the image\n and \npython-glanceclient\n for uploading the image to the cloud.\n\n\n\n\nSUPPORTED ARCHITECTURES\n\n\nMachinery only supports deploying x86_64 images on x86_64 systems.\n\n\nEXAMPLES\n\n\n\n\n\n\nBuild an image under the system description named \njeos\n.\n Deploy it to the OpenStack cloud name \ntux-cloud\n by using the\n configuration file \nopenrc.sh\n in directory \ntux\n:\n\n\n$ \nmachinery\n deploy jeos -n tux-cloud -c tux/openrc.sh",
380
+ "text": "deploy \u2014 Deploy Image to OpenStack Cloud\n\n\nSynopsis\n\n\nmachinery deploy\n NAME -c CONFIG_FILE | --cloud-config=CONFIG_FILE\n [-i IMAGE_DIR | --image-dir=IMAGE_DIR]\n [-n CLOUD_IMAGE_NAME | --cloud-image-name=CLOUD_IMAGE_NAME]\n [-s | --insecure ]\n\n\nmachinery\n help [deploy]\n\n\nDescription\n\n\nThe \ndeploy\n command builds and deploys an image to an OpenStack cloud.\nThis command is particularly useful for testing, debugging, or validation.\n\n\n\n\nNOTE: Set Password for Unattended Work\n\n\nMachinery asks for a password when sourcing the configuration\nfile. This interrupts the work flow and the user has to enter\nthis password.\nIf you prefer to leave it uninterrupted and unattented, remove\nthe following line in your cloud configuration file (see the \n-c\n option):\n\n\nread -s OS_PASSWORD_INPUT\n\n\nand set the password in the \nOS_PASSWORD\n variable:\n\n\nexport OS_PASSWORD=YOUR_PASSWORD\n\n\n\n\nArguments\n\n\n\n\nNAME\n (required):\n Name of the system description.\n\n\n\n\nOptions\n\n\n\n\n\n\n-c CONFIG_FILE\n, \n--cloud-config=CONFIG_FILE\n (required):\n Path to file where the cloud config (openrc.sh) is located.\n The configuration file is sourced by Machinery.\n\n\n\n\n\n\n-i IMAGE_DIR\n, \n--image-dir=IMAGE_DIR\n (optional):\n Image file under specific path.\n\n\n\n\n\n\n-n CLOUD_IMAGE_NAME\n, \n--cloud-image-name=CLOUD_IMAGE_NAME\n (required):\n Name of the image in the cloud.\n\n\n\n\n\n\n-s\n, \n--insecure\n (optional):\n Allow to make \"insecure\" HTTPS requests, without checking the SSL\n certificate when uploading to the cloud.\n\n\n\n\n\n\nPrerequisites\n\n\n\n\nThe \ndeploy\n command requires the packages \nkiwi\n for building the image\n and \npython-glanceclient\n for uploading the image to the cloud.\n\n\n\n\nSupported Architectures\n\n\nMachinery only supports deploying x86_64 images on x86_64 systems.\n\n\nExamples\n\n\n\n\n\n\nBuild an image under the system description named \njeos\n.\n Deploy it to the OpenStack cloud name \ntux-cloud\n by using the\n configuration file \nopenrc.sh\n in directory \ntux\n:\n\n\n$ \nmachinery\n deploy jeos -n tux-cloud -c tux/openrc.sh",
371
381
  "title": "Deploy"
372
382
  },
373
383
  {
@@ -378,12 +388,12 @@
378
388
  {
379
389
  "location": "/machinery-deploy.1/#synopsis",
380
390
  "text": "machinery deploy NAME -c CONFIG_FILE | --cloud-config=CONFIG_FILE\n [-i IMAGE_DIR | --image-dir=IMAGE_DIR]\n [-n CLOUD_IMAGE_NAME | --cloud-image-name=CLOUD_IMAGE_NAME]\n [-s | --insecure ] machinery help [deploy]",
381
- "title": "SYNOPSIS"
391
+ "title": "Synopsis"
382
392
  },
383
393
  {
384
394
  "location": "/machinery-deploy.1/#description",
385
- "text": "The deploy command builds and deploys an image to an OpenStack cloud.\nThis command is particularly useful for testing, debugging, or for validation.",
386
- "title": "DESCRIPTION"
395
+ "text": "The deploy command builds and deploys an image to an OpenStack cloud.\nThis command is particularly useful for testing, debugging, or validation.",
396
+ "title": "Description"
387
397
  },
388
398
  {
389
399
  "location": "/machinery-deploy.1/#note-set-password-for-unattended-work",
@@ -393,31 +403,31 @@
393
403
  {
394
404
  "location": "/machinery-deploy.1/#arguments",
395
405
  "text": "NAME (required):\n Name of the system description.",
396
- "title": "ARGUMENTS"
406
+ "title": "Arguments"
397
407
  },
398
408
  {
399
409
  "location": "/machinery-deploy.1/#options",
400
410
  "text": "-c CONFIG_FILE , --cloud-config=CONFIG_FILE (required):\n Path to file where the cloud config (openrc.sh) is located.\n The configuration file is sourced by Machinery. -i IMAGE_DIR , --image-dir=IMAGE_DIR (optional):\n Image file under specific path. -n CLOUD_IMAGE_NAME , --cloud-image-name=CLOUD_IMAGE_NAME (required):\n Name of the image in the cloud. -s , --insecure (optional):\n Allow to make \"insecure\" HTTPS requests, without checking the SSL\n certificate when uploading to the cloud.",
401
- "title": "OPTIONS"
411
+ "title": "Options"
402
412
  },
403
413
  {
404
414
  "location": "/machinery-deploy.1/#prerequisites",
405
415
  "text": "The deploy command requires the packages kiwi for building the image\n and python-glanceclient for uploading the image to the cloud.",
406
- "title": "PREREQUISITES"
416
+ "title": "Prerequisites"
407
417
  },
408
418
  {
409
419
  "location": "/machinery-deploy.1/#supported-architectures",
410
420
  "text": "Machinery only supports deploying x86_64 images on x86_64 systems.",
411
- "title": "SUPPORTED ARCHITECTURES"
421
+ "title": "Supported Architectures"
412
422
  },
413
423
  {
414
424
  "location": "/machinery-deploy.1/#examples",
415
425
  "text": "Build an image under the system description named jeos .\n Deploy it to the OpenStack cloud name tux-cloud by using the\n configuration file openrc.sh in directory tux : $ machinery deploy jeos -n tux-cloud -c tux/openrc.sh",
416
- "title": "EXAMPLES"
426
+ "title": "Examples"
417
427
  },
418
428
  {
419
429
  "location": "/machinery-export-autoyast.1/",
420
- "text": "export-autoyast \u2014 Export System Description as AutoYasST profile\n\n\nSYNOPSIS\n\n\nmachinery export-autoyast\n -a | --autoyast-dir NAME\n --force\n\n\nmachinery\n help export-autoyast\n\n\nDESCRIPTION\n\n\nThe \nexport-autoyast\n subcommand exports a stored system description as a AutoYaST\nprofile.\n\n\nARGUMENTS\n\n\n\n\nNAME\n (required):\n Name of the system description.\n\n\n\n\nOPTIONS\n\n\n\n\n\n\n-a AUTOYAST_DIR\n, \n--autoyast-dir=AUTOYAST_DIR\n (required):\n Write the AutoYaST profile to a subdirectory at the specified directory. The directory\n will be created if it does not exist yet.\n\n\n\n\n\n\n--force\n (optional):\n Overwrite existing system description\n\n\n\n\n\n\nSYSTEM REGISTRATION\n\n\n\n\nTo register a SLES 12 system automatically with AutoYaST, it is required to\n edit the generated profile. The following example registers the system with\n the SUSE Customer Center.\n\n\n\n\nsuse_register\n\n \ndo_registration config:type=\nboolean\ntrue\n/do_registration\n\n \nemail\ntux@example.com\n/email\n\n \nreg_code\nMY_SECRET_REGCODE\n/reg_code\n\n \ninstall_updates config:type=\nboolean\ntrue\n/install_updates\n\n \nslp_discovery config:type=\nboolean\nfalse\n/slp_discovery\n\n\n/suse_register\n\n\n\n\n\n\n\nMore information can be found at the SUSE AutoYaST documentation.\n https://www.suse.com/documentation/sles-12/singlehtml/book_autoyast/book_autoyast.html\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nExport the \nmyhost\n system description to \n/tmp/myhost-autoyast\n:\n\n\n$ \nmachinery\n export-autoyast myhost --autoyast-dir=/tmp",
430
+ "text": "export-autoyast \u2014 Export System Description as AutoYasST profile\n\n\nSynopsis\n\n\nmachinery export-autoyast\n -a | --autoyast-dir=DIRECTORY NAME\n --force\n\n\nmachinery\n help export-autoyast\n\n\nDescription\n\n\nThe \nexport-autoyast\n subcommand exports a stored system description as an AutoYaST\nprofile.\n\n\nArguments\n\n\n\n\nNAME\n (required):\n Name of the system description.\n\n\n\n\nOptions\n\n\n\n\n\n\n-a AUTOYAST_DIR\n, \n--autoyast-dir=AUTOYAST_DIR\n (required):\n Write the AutoYaST profile to a subdirectory at the specified directory. The directory\n will be created if it does not exist yet.\n\n\n\n\n\n\n--force\n (optional):\n Overwrite an existing output directory.\n\n\n\n\n\n\nSystem Registration\n\n\n\n\nTo register a SLES 12 system automatically with AutoYaST, it is required to\n edit the generated profile. The following example registers the system with\n the SUSE Customer Center.\n\n\n\n\nsuse_register\n\n \ndo_registration config:type=\nboolean\ntrue\n/do_registration\n\n \nemail\ntux@example.com\n/email\n\n \nreg_code\nMY_SECRET_REGCODE\n/reg_code\n\n \ninstall_updates config:type=\nboolean\ntrue\n/install_updates\n\n \nslp_discovery config:type=\nboolean\nfalse\n/slp_discovery\n\n\n/suse_register\n\n\n\n\n\n\n\nMore information can be found at the \nSUSE AutoYaST documentation\n.\n\n\n\n\nExamples\n\n\n\n\n\n\nExport the \nmyhost\n system description to \n/tmp/myhost-autoyast\n:\n\n\n$ \nmachinery\n export-autoyast myhost --autoyast-dir=/tmp",
421
431
  "title": "Export AutoYaST"
422
432
  },
423
433
  {
@@ -427,37 +437,37 @@
427
437
  },
428
438
  {
429
439
  "location": "/machinery-export-autoyast.1/#synopsis",
430
- "text": "machinery export-autoyast -a | --autoyast-dir NAME\n --force machinery help export-autoyast",
431
- "title": "SYNOPSIS"
440
+ "text": "machinery export-autoyast -a | --autoyast-dir=DIRECTORY NAME\n --force machinery help export-autoyast",
441
+ "title": "Synopsis"
432
442
  },
433
443
  {
434
444
  "location": "/machinery-export-autoyast.1/#description",
435
- "text": "The export-autoyast subcommand exports a stored system description as a AutoYaST\nprofile.",
436
- "title": "DESCRIPTION"
445
+ "text": "The export-autoyast subcommand exports a stored system description as an AutoYaST\nprofile.",
446
+ "title": "Description"
437
447
  },
438
448
  {
439
449
  "location": "/machinery-export-autoyast.1/#arguments",
440
450
  "text": "NAME (required):\n Name of the system description.",
441
- "title": "ARGUMENTS"
451
+ "title": "Arguments"
442
452
  },
443
453
  {
444
454
  "location": "/machinery-export-autoyast.1/#options",
445
- "text": "-a AUTOYAST_DIR , --autoyast-dir=AUTOYAST_DIR (required):\n Write the AutoYaST profile to a subdirectory at the specified directory. The directory\n will be created if it does not exist yet. --force (optional):\n Overwrite existing system description",
446
- "title": "OPTIONS"
455
+ "text": "-a AUTOYAST_DIR , --autoyast-dir=AUTOYAST_DIR (required):\n Write the AutoYaST profile to a subdirectory at the specified directory. The directory\n will be created if it does not exist yet. --force (optional):\n Overwrite an existing output directory.",
456
+ "title": "Options"
447
457
  },
448
458
  {
449
459
  "location": "/machinery-export-autoyast.1/#system-registration",
450
- "text": "To register a SLES 12 system automatically with AutoYaST, it is required to\n edit the generated profile. The following example registers the system with\n the SUSE Customer Center. suse_register \n do_registration config:type= boolean true /do_registration \n email tux@example.com /email \n reg_code MY_SECRET_REGCODE /reg_code \n install_updates config:type= boolean true /install_updates \n slp_discovery config:type= boolean false /slp_discovery /suse_register More information can be found at the SUSE AutoYaST documentation.\n https://www.suse.com/documentation/sles-12/singlehtml/book_autoyast/book_autoyast.html",
451
- "title": "SYSTEM REGISTRATION"
460
+ "text": "To register a SLES 12 system automatically with AutoYaST, it is required to\n edit the generated profile. The following example registers the system with\n the SUSE Customer Center. suse_register \n do_registration config:type= boolean true /do_registration \n email tux@example.com /email \n reg_code MY_SECRET_REGCODE /reg_code \n install_updates config:type= boolean true /install_updates \n slp_discovery config:type= boolean false /slp_discovery /suse_register More information can be found at the SUSE AutoYaST documentation .",
461
+ "title": "System Registration"
452
462
  },
453
463
  {
454
464
  "location": "/machinery-export-autoyast.1/#examples",
455
465
  "text": "Export the myhost system description to /tmp/myhost-autoyast : $ machinery export-autoyast myhost --autoyast-dir=/tmp",
456
- "title": "EXAMPLES"
466
+ "title": "Examples"
457
467
  },
458
468
  {
459
469
  "location": "/machinery-export-kiwi.1/",
460
- "text": "export-kiwi \u2014 Export System Description as KIWI Image Description\n\n\nSYNOPSIS\n\n\nmachinery export-kiwi\n -k | --kiwi-dir NAME\n --force\n\n\nmachinery\n help export-kiwi\n\n\nDESCRIPTION\n\n\nThe \nexport-kiwi\n subcommand exports a stored system description as a KIWI\nimage description.\n\n\nARGUMENTS\n\n\n\n\nNAME\n (required):\n Name of the system description.\n\n\n\n\nOPTIONS\n\n\n\n\n\n\n-k KIWI_DIR\n, \n--kiwi-dir=KIWI_DIR\n (required):\n Write the KIWI image description to a subdirectory at the specified directory. The directory\n will be created if it does not exist yet.\n\n\n\n\n\n\n--force\n (optional):\n Overwrite existing system description\n\n\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nExport the \nmyhost\n system description to \n/tmp/myhost-kiwi\n:\n\n\n$ \nmachinery\n export-kiwi myhost --kiwi-dir=/tmp",
470
+ "text": "export-kiwi \u2014 Export System Description as KIWI Image Description\n\n\nSynopsis\n\n\nmachinery export-kiwi\n -k | --kiwi-dir=DIRECTORY NAME\n --force\n\n\nmachinery\n help export-kiwi\n\n\nDescription\n\n\nThe \nexport-kiwi\n subcommand exports a stored system description as a KIWI\nimage description.\n\n\nArguments\n\n\n\n\nNAME\n (required):\n Name of the system description.\n\n\n\n\nOptions\n\n\n\n\n\n\n-k KIWI_DIR\n, \n--kiwi-dir=KIWI_DIR\n (required):\n Write the KIWI image description to a subdirectory at the specified directory. The directory\n will be created if it does not exist yet.\n\n\n\n\n\n\n--force\n (optional):\n Overwrite an existing output directory.\n\n\n\n\n\n\nExamples\n\n\n\n\n\n\nExport the \nmyhost\n system description to \n/tmp/myhost-kiwi\n:\n\n\n$ \nmachinery\n export-kiwi myhost --kiwi-dir=/tmp",
461
471
  "title": "Export Kiwi"
462
472
  },
463
473
  {
@@ -467,32 +477,67 @@
467
477
  },
468
478
  {
469
479
  "location": "/machinery-export-kiwi.1/#synopsis",
470
- "text": "machinery export-kiwi -k | --kiwi-dir NAME\n --force machinery help export-kiwi",
471
- "title": "SYNOPSIS"
480
+ "text": "machinery export-kiwi -k | --kiwi-dir=DIRECTORY NAME\n --force machinery help export-kiwi",
481
+ "title": "Synopsis"
472
482
  },
473
483
  {
474
484
  "location": "/machinery-export-kiwi.1/#description",
475
485
  "text": "The export-kiwi subcommand exports a stored system description as a KIWI\nimage description.",
476
- "title": "DESCRIPTION"
486
+ "title": "Description"
477
487
  },
478
488
  {
479
489
  "location": "/machinery-export-kiwi.1/#arguments",
480
490
  "text": "NAME (required):\n Name of the system description.",
481
- "title": "ARGUMENTS"
491
+ "title": "Arguments"
482
492
  },
483
493
  {
484
494
  "location": "/machinery-export-kiwi.1/#options",
485
- "text": "-k KIWI_DIR , --kiwi-dir=KIWI_DIR (required):\n Write the KIWI image description to a subdirectory at the specified directory. The directory\n will be created if it does not exist yet. --force (optional):\n Overwrite existing system description",
486
- "title": "OPTIONS"
495
+ "text": "-k KIWI_DIR , --kiwi-dir=KIWI_DIR (required):\n Write the KIWI image description to a subdirectory at the specified directory. The directory\n will be created if it does not exist yet. --force (optional):\n Overwrite an existing output directory.",
496
+ "title": "Options"
487
497
  },
488
498
  {
489
499
  "location": "/machinery-export-kiwi.1/#examples",
490
500
  "text": "Export the myhost system description to /tmp/myhost-kiwi : $ machinery export-kiwi myhost --kiwi-dir=/tmp",
491
- "title": "EXAMPLES"
501
+ "title": "Examples"
502
+ },
503
+ {
504
+ "location": "/machinery-export-html.1/",
505
+ "text": "export-html \u2014 Export System Description as HTML\n\n\nSynopsis\n\n\nmachinery export-html\n -d | --html-dir=DIRECTORY NAME\n --force\n\n\nmachinery\n help export-html\n\n\nDescription\n\n\nThe \nexport-html\n subcommand exports a stored system description as HTML.\n\n\nArguments\n\n\n\n\nNAME\n (required):\n Name of the system description.\n\n\n\n\nOptions\n\n\n\n\n\n\n-d DIRECTORY\n, \n--html-dir=DIRECTORY\n (required):\n Write the HTML page and assets to this directory. The directory will\n be created if it does not exist yet.\n\n\n\n\n\n\n--force\n (optional):\n Delete the directory if it exists and recreate it.\n\n\n\n\n\n\nExamples\n\n\n\n\n\n\nExport the \nmyhost\n system description to \n/tmp/myhost-html\n:\n\n\n$ \nmachinery\n export-html --html-dir=/tmp myhost",
506
+ "title": "Export HTML"
507
+ },
508
+ {
509
+ "location": "/machinery-export-html.1/#export-html-export-system-description-as-html",
510
+ "text": "",
511
+ "title": "export-html \u2014 Export System Description as HTML"
512
+ },
513
+ {
514
+ "location": "/machinery-export-html.1/#synopsis",
515
+ "text": "machinery export-html -d | --html-dir=DIRECTORY NAME\n --force machinery help export-html",
516
+ "title": "Synopsis"
517
+ },
518
+ {
519
+ "location": "/machinery-export-html.1/#description",
520
+ "text": "The export-html subcommand exports a stored system description as HTML.",
521
+ "title": "Description"
522
+ },
523
+ {
524
+ "location": "/machinery-export-html.1/#arguments",
525
+ "text": "NAME (required):\n Name of the system description.",
526
+ "title": "Arguments"
527
+ },
528
+ {
529
+ "location": "/machinery-export-html.1/#options",
530
+ "text": "-d DIRECTORY , --html-dir=DIRECTORY (required):\n Write the HTML page and assets to this directory. The directory will\n be created if it does not exist yet. --force (optional):\n Delete the directory if it exists and recreate it.",
531
+ "title": "Options"
532
+ },
533
+ {
534
+ "location": "/machinery-export-html.1/#examples",
535
+ "text": "Export the myhost system description to /tmp/myhost-html : $ machinery export-html --html-dir=/tmp myhost",
536
+ "title": "Examples"
492
537
  },
493
538
  {
494
539
  "location": "/machinery-inspect.1/",
495
- "text": "inspect \u2014 Inspect Running System\n\n\nSYNOPSIS\n\n\nmachinery inspect\n [OPTIONS] HOSTNAME\n\n\nmachinery\n help inspect\n\n\nDESCRIPTION\n\n\nThe \ninspect\n command inspects a running system and generates a system\ndescription from the gathered data.\n\n\nThe system data is structured into scopes, controlled by the\n\n--scope\n option.\n\n\nNote\n:\nMachinery will always inspect all specified scopes, and skip scopes which\ntrigger errors.\n\n\nNote\n:\nTasks on Debian-like systems are treated as patterns.\n\n\nARGUMENTS\n\n\n\n\nHOSTNAME\n (required):\n The host name of the system to be inspected. The host name will also be\n used as the name of the stored system description unless another name is\n provided with the \n--name\n option.\n\n\n\n\nOPTIONS\n\n\n\n\n\n\n-n NAME\n, \n--name=NAME\n (optional):\n Store the system description under the specified name.\n\n\n\n\n\n\n-s SCOPE\n, \n--scope=SCOPE\n (optional):\n Inspect system for specified scope.\n See the \nScope section\n for more information.\n\n\n\n\n\n\n-e SCOPE\n, \n--ignore-scope=IGNORE-SCOPE\n (optional):\n Inspect system for all scopes except the specified scope.\n See the \nScope section\n for more information.\n\n\n\n\n\n\n-r USER\n, \n--remote-user=USER\n (optional):\n Defines the user which is used to access the inspected system via SSH.\n This user needs to be allowed to run certain commands using sudo (see\n PREREQUISITES for more information).\n To change the default-user use \nmachinery config remote-user=USER\n\n\n\n\n\n\n-p SSH-PORT\n, \n--ssh-port SSH-PORT\n (optional):\n Specifies the SSH port of the remote SSH server.\n\n\n\n\n\n\n-i SSH-IDENTITY-FILE\n, \n--ssh-identity-file SSH-IDENTITY-FILE\n (optional):\n Specifies the SSH private key what should be used to authenticate with the\n remote SSH server. Keys with a passphrase are not allowed here. Use the ssh-agent\n instead.\n\n\n\n\n\n\n-x\n, \n--extract-files\n (optional):\n Extract changed configuration and unmanaged files from the inspected system.\n Shortcut for the combination of \n--extract-changed-config-files\n,\n \n--extract-unmanaged-files\n, and \n--extract-changed-managed-files\n\n\n\n\n\n\n--extract-changed-config-files\n (optional):\n Extract changed configuration files from the inspected system.\n\n\n\n\n\n\n--extract-unmanaged-files\n (optional):\n Extract unmanaged files from the inspected system.\n\n\n\n\n\n\n--extract-changed-managed-files\n (optional):\n Extract changed managed files from inspected system.\n\n\n\n\n\n\n--skip-files\n (optional):\n Do not consider given files or directories during inspection. Either provide\n one file or directory name or a list of names separated by commas. You can\n also point to a file which contains a list of files to filter (one per line)\n by adding an '@' before the path, e.g.\n\n\n$ \nmachinery\n inspect --skip-files=@/path/to/filter_file myhost\n\n\nIf a filename contains a comma it needs to be escaped, e.g.\n\n\n$ \nmachinery\n inspect --skip-files=/file\\,with_comma myhost\n\n\nNote\n: File or directory names are not expanded, e.g. '../path' is taken\n literally and not expanded.\n\n\n\n\n\n\n--verbose\n (optional):\n Display the filters which are used during inspection.\n\n\n\n\n\n\nPREREQUISITES\n\n\n\n\n\n\nInspecting a local system requires running \nmachinery\n as root.\n\n\n\n\n\n\nInspecting a remote system requires passwordless SSH login as root on the\n inspected system.\n Use \nssh-agent\n or asymmetric keys (you can transfer the current SSH key\n via \nssh-copy-id\n to the inspected host, e.g.: \nssh-copy-id root@HOSTNAME\n)\n\n\n\n\n\n\nThe system to be inspected needs to have the following commands:\n\n\n\n\nrpm\n or \ndpkg\n\n\nzypper\n, \nyum\n, or \napt-cache\n\n\nrsync\n\n\nchkconfig\n, \ninitctl\n, or \nsystemctl\n\n\ncat\n\n\nsed\n\n\nfind\n\n\ntar\n\n\n\n\n\n\n\n\nWhen inspecting as non-root the user needs passwordless sudo rights.\n The following entry in the sudoers file would allow the user \nmachinery\n\n to run sudo without password input:\n\n\nmachinery ALL=(ALL) NOPASSWD: ALL\n\n\n\n\n\n\nTo add a remote \nmachinery\n user run as root:\n\n\n# \nuseradd\n -m machinery -c \"remote user for machinery\"\n\n\nTo configure a password for the new user run:\n\n\n# \npasswd\n machinery\n\n\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nInspect remote system \nmyhost\n and save system description under name\n 'MySystem':\n\n\n$ \nmachinery\n inspect --name=MySystem myhost\n\n\n\n\n\n\nInspect the installed packages of your local system and save system description\n under the name 'localhost' (you need to become root):\n\n\n# \nmachinery\n inspect --scope=\"packages\" localhost\n\n\n\n\n\n\nExtracts changed managed files and saves them in the same way as changed\n configuration files are saved:\n\n\n$ \nmachinery\n inspect --scope=changed-managed-files --extract-files myhost\n\n\n\n\n\n\nTo inspect the remote system \nmyhost\n with the user \nmachinery\n:\n\n\n$ \nmachinery\n inspect --remote-user machinery myhost",
540
+ "text": "inspect \u2014 Inspect Running System\n\n\nSynopsis\n\n\nmachinery inspect\n [OPTIONS] HOSTNAME\n\n\nmachinery\n help inspect\n\n\nDescription\n\n\nThe \ninspect\n command inspects a running system and generates a system\ndescription from the gathered data.\n\n\nThe system data is structured into scopes, controlled by the\n\n--scope\n option.\n\n\nNote\n:\nMachinery will always inspect all specified scopes, and skip scopes which\ntrigger errors.\n\n\nNote\n:\nTasks on Debian-like systems are treated as patterns.\n\n\nArguments\n\n\n\n\nHOSTNAME\n (required):\n The host name of the system to be inspected. The host name will also be\n used as the name of the stored system description unless another name is\n provided with the \n--name\n option.\n\n\n\n\nOptions\n\n\n\n\n\n\n-n NAME\n, \n--name=NAME\n (optional):\n Store the system description under the specified name.\n\n\n\n\n\n\n-s SCOPE\n, \n--scope=SCOPE\n (optional):\n Inspect system for specified scope.\n See the \nScope section\n for more information.\n\n\n\n\n\n\n-e SCOPE\n, \n--ignore-scope=IGNORE-SCOPE\n (optional):\n Inspect system for all scopes except the specified scope.\n See the \nScope section\n for more information.\n\n\n\n\n\n\n-r USER\n, \n--remote-user=USER\n (optional):\n Defines the user which is used to access the inspected system via SSH.\n This user needs to be allowed to run certain commands using sudo (see\n Prerequisites for more information).\n To change the default-user use \nmachinery config remote-user=USER\n\n\n\n\n\n\n-p SSH-PORT\n, \n--ssh-port SSH-PORT\n (optional):\n Specifies the SSH port of the remote SSH server.\n\n\n\n\n\n\n-i SSH-IDENTITY-FILE\n, \n--ssh-identity-file SSH-IDENTITY-FILE\n (optional):\n Specifies the SSH private key what should be used to authenticate with the\n remote SSH server. Keys with a passphrase are not allowed here. Use the ssh-agent\n instead.\n\n\n\n\n\n\n-x\n, \n--extract-files\n (optional):\n Extract changed configuration and unmanaged files from the inspected system.\n Shortcut for the combination of \n--extract-changed-config-files\n,\n \n--extract-unmanaged-files\n, and \n--extract-changed-managed-files\n\n\n\n\n\n\n--extract-changed-config-files\n (optional):\n Extract changed configuration files from the inspected system.\n\n\n\n\n\n\n--extract-unmanaged-files\n (optional):\n Extract unmanaged files from the inspected system.\n\n\n\n\n\n\n--extract-changed-managed-files\n (optional):\n Extract changed managed files from inspected system.\n\n\n\n\n\n\n--skip-files\n (optional):\n Do not consider given files or directories during inspection. Either provide\n one file or directory name or a list of names separated by commas. You can\n also point to a file which contains a list of files to filter (one per line)\n by adding an '@' before the path, e.g.\n\n\n$ \nmachinery\n inspect --skip-files=@/path/to/filter_file myhost\n\n\nIf a filename contains a comma it needs to be escaped, e.g.\n\n\n$ \nmachinery\n inspect --skip-files=/file\\,with_comma myhost\n\n\nNote\n: File or directory names are not expanded, e.g. '../path' is taken\n literally and not expanded.\n\n\n\n\n\n\n--verbose\n (optional):\n Display the filters which are used during inspection.\n\n\n\n\n\n\nPrerequisites\n\n\n\n\n\n\nInspecting a local system requires running \nmachinery\n as root.\n\n\n\n\n\n\nInspecting a remote system requires passwordless SSH login as root on the\n inspected system.\n Use \nssh-agent\n or asymmetric keys (you can transfer the current SSH key\n via \nssh-copy-id\n to the inspected host, e.g.: \nssh-copy-id root@HOSTNAME\n).\n\n\n\n\n\n\nThe system to be inspected needs to have the following commands:\n\n\n\n\nrpm\n or \ndpkg\n\n\nzypper\n, \nyum\n, or \napt-cache\n\n\nrsync\n\n\nchkconfig\n, \ninitctl\n, or \nsystemctl\n\n\ncat\n\n\nsed\n\n\nfind\n\n\ntar\n\n\n\n\n\n\n\n\nWhen inspecting as non-root the user needs passwordless sudo rights.\n The following entry in the sudoers file would allow the user \nmachinery\n\n to run sudo without password input:\n\n\nmachinery ALL=(ALL) NOPASSWD: ALL\n\n\n\n\n\n\nTo add a remote \nmachinery\n user run as root:\n\n\n# \nuseradd\n -m machinery -c \"remote user for machinery\"\n\n\nTo configure a password for the new user run:\n\n\n# \npasswd\n machinery\n\n\n\n\n\n\nExamples\n\n\n\n\n\n\nInspect remote system \nmyhost\n and save system description under name\n 'MySystem':\n\n\n$ \nmachinery\n inspect --name=MySystem myhost\n\n\n\n\n\n\nInspect the installed packages of your local system and save system description\n under the name 'localhost' (you need to become root):\n\n\n# \nmachinery\n inspect --scope=\"packages\" localhost\n\n\n\n\n\n\nExtracts changed managed files and saves them in the same way as changed\n configuration files are saved:\n\n\n$ \nmachinery\n inspect --scope=changed-managed-files --extract-files myhost\n\n\n\n\n\n\nTo inspect the remote system \nmyhost\n with the user \nmachinery\n:\n\n\n$ \nmachinery\n inspect --remote-user machinery myhost",
496
541
  "title": "Inspect"
497
542
  },
498
543
  {
@@ -503,76 +548,76 @@
503
548
  {
504
549
  "location": "/machinery-inspect.1/#synopsis",
505
550
  "text": "machinery inspect [OPTIONS] HOSTNAME machinery help inspect",
506
- "title": "SYNOPSIS"
551
+ "title": "Synopsis"
507
552
  },
508
553
  {
509
554
  "location": "/machinery-inspect.1/#description",
510
555
  "text": "The inspect command inspects a running system and generates a system\ndescription from the gathered data. The system data is structured into scopes, controlled by the --scope option. Note :\nMachinery will always inspect all specified scopes, and skip scopes which\ntrigger errors. Note :\nTasks on Debian-like systems are treated as patterns.",
511
- "title": "DESCRIPTION"
556
+ "title": "Description"
512
557
  },
513
558
  {
514
559
  "location": "/machinery-inspect.1/#arguments",
515
560
  "text": "HOSTNAME (required):\n The host name of the system to be inspected. The host name will also be\n used as the name of the stored system description unless another name is\n provided with the --name option.",
516
- "title": "ARGUMENTS"
561
+ "title": "Arguments"
517
562
  },
518
563
  {
519
564
  "location": "/machinery-inspect.1/#options",
520
- "text": "-n NAME , --name=NAME (optional):\n Store the system description under the specified name. -s SCOPE , --scope=SCOPE (optional):\n Inspect system for specified scope.\n See the Scope section for more information. -e SCOPE , --ignore-scope=IGNORE-SCOPE (optional):\n Inspect system for all scopes except the specified scope.\n See the Scope section for more information. -r USER , --remote-user=USER (optional):\n Defines the user which is used to access the inspected system via SSH.\n This user needs to be allowed to run certain commands using sudo (see\n PREREQUISITES for more information).\n To change the default-user use machinery config remote-user=USER -p SSH-PORT , --ssh-port SSH-PORT (optional):\n Specifies the SSH port of the remote SSH server. -i SSH-IDENTITY-FILE , --ssh-identity-file SSH-IDENTITY-FILE (optional):\n Specifies the SSH private key what should be used to authenticate with the\n remote SSH server. Keys with a passphrase are not allowed here. Use the ssh-agent\n instead. -x , --extract-files (optional):\n Extract changed configuration and unmanaged files from the inspected system.\n Shortcut for the combination of --extract-changed-config-files ,\n --extract-unmanaged-files , and --extract-changed-managed-files --extract-changed-config-files (optional):\n Extract changed configuration files from the inspected system. --extract-unmanaged-files (optional):\n Extract unmanaged files from the inspected system. --extract-changed-managed-files (optional):\n Extract changed managed files from inspected system. --skip-files (optional):\n Do not consider given files or directories during inspection. Either provide\n one file or directory name or a list of names separated by commas. You can\n also point to a file which contains a list of files to filter (one per line)\n by adding an '@' before the path, e.g. $ machinery inspect --skip-files=@/path/to/filter_file myhost If a filename contains a comma it needs to be escaped, e.g. $ machinery inspect --skip-files=/file\\,with_comma myhost Note : File or directory names are not expanded, e.g. '../path' is taken\n literally and not expanded. --verbose (optional):\n Display the filters which are used during inspection.",
521
- "title": "OPTIONS"
565
+ "text": "-n NAME , --name=NAME (optional):\n Store the system description under the specified name. -s SCOPE , --scope=SCOPE (optional):\n Inspect system for specified scope.\n See the Scope section for more information. -e SCOPE , --ignore-scope=IGNORE-SCOPE (optional):\n Inspect system for all scopes except the specified scope.\n See the Scope section for more information. -r USER , --remote-user=USER (optional):\n Defines the user which is used to access the inspected system via SSH.\n This user needs to be allowed to run certain commands using sudo (see\n Prerequisites for more information).\n To change the default-user use machinery config remote-user=USER -p SSH-PORT , --ssh-port SSH-PORT (optional):\n Specifies the SSH port of the remote SSH server. -i SSH-IDENTITY-FILE , --ssh-identity-file SSH-IDENTITY-FILE (optional):\n Specifies the SSH private key what should be used to authenticate with the\n remote SSH server. Keys with a passphrase are not allowed here. Use the ssh-agent\n instead. -x , --extract-files (optional):\n Extract changed configuration and unmanaged files from the inspected system.\n Shortcut for the combination of --extract-changed-config-files ,\n --extract-unmanaged-files , and --extract-changed-managed-files --extract-changed-config-files (optional):\n Extract changed configuration files from the inspected system. --extract-unmanaged-files (optional):\n Extract unmanaged files from the inspected system. --extract-changed-managed-files (optional):\n Extract changed managed files from inspected system. --skip-files (optional):\n Do not consider given files or directories during inspection. Either provide\n one file or directory name or a list of names separated by commas. You can\n also point to a file which contains a list of files to filter (one per line)\n by adding an '@' before the path, e.g. $ machinery inspect --skip-files=@/path/to/filter_file myhost If a filename contains a comma it needs to be escaped, e.g. $ machinery inspect --skip-files=/file\\,with_comma myhost Note : File or directory names are not expanded, e.g. '../path' is taken\n literally and not expanded. --verbose (optional):\n Display the filters which are used during inspection.",
566
+ "title": "Options"
522
567
  },
523
568
  {
524
569
  "location": "/machinery-inspect.1/#prerequisites",
525
- "text": "Inspecting a local system requires running machinery as root. Inspecting a remote system requires passwordless SSH login as root on the\n inspected system.\n Use ssh-agent or asymmetric keys (you can transfer the current SSH key\n via ssh-copy-id to the inspected host, e.g.: ssh-copy-id root@HOSTNAME ) The system to be inspected needs to have the following commands: rpm or dpkg zypper , yum , or apt-cache rsync chkconfig , initctl , or systemctl cat sed find tar When inspecting as non-root the user needs passwordless sudo rights.\n The following entry in the sudoers file would allow the user machinery \n to run sudo without password input: machinery ALL=(ALL) NOPASSWD: ALL To add a remote machinery user run as root: # useradd -m machinery -c \"remote user for machinery\" To configure a password for the new user run: # passwd machinery",
526
- "title": "PREREQUISITES"
570
+ "text": "Inspecting a local system requires running machinery as root. Inspecting a remote system requires passwordless SSH login as root on the\n inspected system.\n Use ssh-agent or asymmetric keys (you can transfer the current SSH key\n via ssh-copy-id to the inspected host, e.g.: ssh-copy-id root@HOSTNAME ). The system to be inspected needs to have the following commands: rpm or dpkg zypper , yum , or apt-cache rsync chkconfig , initctl , or systemctl cat sed find tar When inspecting as non-root the user needs passwordless sudo rights.\n The following entry in the sudoers file would allow the user machinery \n to run sudo without password input: machinery ALL=(ALL) NOPASSWD: ALL To add a remote machinery user run as root: # useradd -m machinery -c \"remote user for machinery\" To configure a password for the new user run: # passwd machinery",
571
+ "title": "Prerequisites"
527
572
  },
528
573
  {
529
574
  "location": "/machinery-inspect.1/#examples",
530
575
  "text": "Inspect remote system myhost and save system description under name\n 'MySystem': $ machinery inspect --name=MySystem myhost Inspect the installed packages of your local system and save system description\n under the name 'localhost' (you need to become root): # machinery inspect --scope=\"packages\" localhost Extracts changed managed files and saves them in the same way as changed\n configuration files are saved: $ machinery inspect --scope=changed-managed-files --extract-files myhost To inspect the remote system myhost with the user machinery : $ machinery inspect --remote-user machinery myhost",
531
- "title": "EXAMPLES"
576
+ "title": "Examples"
532
577
  },
533
578
  {
534
- "location": "/machinery-inspect-docker.1/",
535
- "text": "inspect-container \u2014 Inspect Container\n\n\nSYNOPSIS\n\n\nmachinery inspect-container\n [OPTIONS] IMAGENAME\n\n\nmachinery inspect-container\n [OPTIONS] IMAGEID\n\n\nmachinery\n help inspect-container\n\n\nDESCRIPTION\n\n\nThe \ninspect-container\n command inspects a container image. It creates and starts the container from the provided image before inspection\nand generates a system description from the gathered data. After the inspection the container will be killed and removed again.\nThis approach ensures that no containers and images are affected by the inspection.\n\n\nRight now the container inspection only supports Docker images.\n\n\nThe system data is structured into scopes, controlled by the\n\n--scope\n option.\n\n\nNote\n:\nMachinery will always inspect all specified scopes, and skip scopes which\ntrigger errors.\n\n\nARGUMENTS\n\n\n\n\nIMAGENAME / IMAGEID\n (required):\n The name or id of the image to be inspected. The provided name or id will also be\n used as the name of the stored system description unless another name is\n provided with the \n--name\n option.\n\n\n\n\nOPTIONS\n\n\n\n\n\n\n-n NAME\n, \n--name=NAME\n (optional):\n Store the system description under the specified name.\n\n\n\n\n\n\n-s SCOPE\n, \n--scope=SCOPE\n (optional):\n Inspect image for specified scope.\n See the \nScope section\n for more information.\n\n\n\n\n\n\n-e SCOPE\n, \n--ignore-scope=IGNORE-SCOPE\n (optional):\n Inspect image for all scopes except the specified scope.\n See the \nScope section\n for more information.\n\n\n\n\n\n\n-x\n, \n--extract-files\n (optional):\n Extract changed configuration and unmanaged files from the inspected container.\n Shortcut for the combination of \n--extract-changed-config-files\n,\n \n--extract-unmanaged-files\n, and \n--extract-changed-managed-files\n\n\n\n\n\n\n--extract-changed-config-files\n (optional):\n Extract changed configuration files from the inspected image.\n\n\n\n\n\n\n--extract-unmanaged-files\n (optional):\n Extract unmanaged files from the inspected image.\n\n\n\n\n\n\n--extract-changed-managed-files\n (optional):\n Extract changed managed files from inspected image.\n\n\n\n\n\n\n--skip-files\n (optional):\n Do not consider given files or directories during inspection. Either provide\n one file or directory name or a list of names separated by commas. You can\n also point to a file which contains a list of files to filter (one per line)\n by adding an '@' before the path, e.g.\n\n\n$ \nmachinery\n inspect-container --skip-files=@/path/to/filter_file myimage\n\n\nIf a filename contains a comma it needs to be escaped, e.g.\n\n\n$ \nmachinery\n inspect-container --skip-files=/file\\,with_comma myimage\n\n\nNote\n: File or directory names are not expanded, e.g. '../path' is taken\n literally and not expanded.\n\n\n\n\n\n\n--verbose\n (optional):\n Display the filters which are used during inspection.\n\n\n\n\n\n\nPREREQUISITES\n\n\n\n\n\n\nInspecting a container requires an image specified by the name or id.\n\n\n\n\n\n\nThe image to be inspected needs to have the following commands:\n\n\n\n\nrpm\n or \ndpkg\n\n\nzypper\n, \nyum\n or \napt-cache\n\n\nrsync\n\n\ncat\n\n\nsed\n\n\nfind\n\n\n\n\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nInspect Docker container \nmyimage\n and save system description under name 'MyContainer':\n\n\n$ \nmachinery\n inspect-container --name=MyContainer myimage\n\n\n\n\n\n\nInspect Docker container \n076f46c1bef1\n and save system description under name 'MySecondContainer':\n\n\n$ \nmachinery\n inspect-container --name=MySecondContainer 076f46c1bef1\n\n\n\n\n\n\nExtract changed managed files and save them:\n\n\n$ \nmachinery\n inspect-container --scope=changed-managed-files --extract-files myimage",
536
- "title": "Inspect Docker"
579
+ "location": "/machinery-inspect-container.1/",
580
+ "text": "inspect-container \u2014 Inspect Container\n\n\nSynopsis\n\n\nmachinery inspect-container\n [OPTIONS] IMAGENAME\n\n\nmachinery inspect-container\n [OPTIONS] IMAGEID\n\n\nmachinery\n help inspect-container\n\n\nDescription\n\n\nThe \ninspect-container\n command inspects a container image. It creates and starts the container from the provided image before inspection\nand generates a system description from the gathered data. After the inspection the container will be killed and removed again.\nThis approach ensures that no containers and images are affected by the inspection.\n\n\nRight now the container inspection only supports Docker images.\n\n\nThe system data is structured into scopes, controlled by the\n\n--scope\n option.\n\n\nNote\n:\nMachinery will always inspect all specified scopes, and skip scopes which\ntrigger errors.\n\n\nArguments\n\n\n\n\nIMAGENAME / IMAGEID\n (required):\n The name or ID of the image to be inspected. The provided name or ID will also be\n used as the name of the stored system description unless another name is\n provided with the \n--name\n option.\n\n\n\n\nOptions\n\n\n\n\n\n\n-n NAME\n, \n--name=NAME\n (optional):\n Store the system description under the specified name.\n\n\n\n\n\n\n-s SCOPE\n, \n--scope=SCOPE\n (optional):\n Inspect image for specified scope.\n See the \nScope section\n for more information.\n\n\n\n\n\n\n-e SCOPE\n, \n--ignore-scope=IGNORE-SCOPE\n (optional):\n Inspect image for all scopes except the specified scope.\n See the \nScope section\n for more information.\n\n\n\n\n\n\n-x\n, \n--extract-files\n (optional):\n Extract changed configuration and unmanaged files from the inspected container.\n Shortcut for the combination of \n--extract-changed-config-files\n,\n \n--extract-unmanaged-files\n, and \n--extract-changed-managed-files\n\n\n\n\n\n\n--extract-changed-config-files\n (optional):\n Extract changed configuration files from the inspected image.\n\n\n\n\n\n\n--extract-unmanaged-files\n (optional):\n Extract unmanaged files from the inspected image.\n\n\n\n\n\n\n--extract-changed-managed-files\n (optional):\n Extract changed managed files from inspected image.\n\n\n\n\n\n\n--skip-files\n (optional):\n Do not consider given files or directories during inspection. Either provide\n one file or directory name or a list of names separated by commas. You can\n also point to a file which contains a list of files to filter (one per line)\n by adding an '@' before the path, e.g.\n\n\n$ \nmachinery\n inspect-container --skip-files=@/path/to/filter_file myimage\n\n\nIf a filename contains a comma it needs to be escaped, e.g.\n\n\n$ \nmachinery\n inspect-container --skip-files=/file\\,with_comma myimage\n\n\nNote\n: File or directory names are not expanded, e.g. '../path' is taken\n literally and not expanded.\n\n\n\n\n\n\n--verbose\n (optional):\n Display the filters which are used during inspection.\n\n\n\n\n\n\nPrerequisites\n\n\n\n\n\n\nInspecting a container requires an image specified by the name or ID.\n\n\n\n\n\n\nThe image to be inspected needs to have the following commands:\n\n\n\n\nrpm\n or \ndpkg\n\n\nzypper\n, \nyum\n or \napt-cache\n\n\nrsync\n\n\ncat\n\n\nsed\n\n\nfind\n\n\n\n\n\n\n\n\nExamples\n\n\n\n\n\n\nInspect Docker container \nmyimage\n and save system description under name 'MyContainer':\n\n\n$ \nmachinery\n inspect-container --name=MyContainer myimage\n\n\n\n\n\n\nInspect Docker container \n076f46c1bef1\n and save system description under name 'MySecondContainer':\n\n\n$ \nmachinery\n inspect-container --name=MySecondContainer 076f46c1bef1\n\n\n\n\n\n\nExtract changed managed files and save them:\n\n\n$ \nmachinery\n inspect-container --scope=changed-managed-files --extract-files myimage",
581
+ "title": "Inspect Container"
537
582
  },
538
583
  {
539
- "location": "/machinery-inspect-docker.1/#inspect-container-inspect-container",
584
+ "location": "/machinery-inspect-container.1/#inspect-container-inspect-container",
540
585
  "text": "",
541
586
  "title": "inspect-container \u2014 Inspect Container"
542
587
  },
543
588
  {
544
- "location": "/machinery-inspect-docker.1/#synopsis",
589
+ "location": "/machinery-inspect-container.1/#synopsis",
545
590
  "text": "machinery inspect-container [OPTIONS] IMAGENAME machinery inspect-container [OPTIONS] IMAGEID machinery help inspect-container",
546
- "title": "SYNOPSIS"
591
+ "title": "Synopsis"
547
592
  },
548
593
  {
549
- "location": "/machinery-inspect-docker.1/#description",
594
+ "location": "/machinery-inspect-container.1/#description",
550
595
  "text": "The inspect-container command inspects a container image. It creates and starts the container from the provided image before inspection\nand generates a system description from the gathered data. After the inspection the container will be killed and removed again.\nThis approach ensures that no containers and images are affected by the inspection. Right now the container inspection only supports Docker images. The system data is structured into scopes, controlled by the --scope option. Note :\nMachinery will always inspect all specified scopes, and skip scopes which\ntrigger errors.",
551
- "title": "DESCRIPTION"
596
+ "title": "Description"
552
597
  },
553
598
  {
554
- "location": "/machinery-inspect-docker.1/#arguments",
555
- "text": "IMAGENAME / IMAGEID (required):\n The name or id of the image to be inspected. The provided name or id will also be\n used as the name of the stored system description unless another name is\n provided with the --name option.",
556
- "title": "ARGUMENTS"
599
+ "location": "/machinery-inspect-container.1/#arguments",
600
+ "text": "IMAGENAME / IMAGEID (required):\n The name or ID of the image to be inspected. The provided name or ID will also be\n used as the name of the stored system description unless another name is\n provided with the --name option.",
601
+ "title": "Arguments"
557
602
  },
558
603
  {
559
- "location": "/machinery-inspect-docker.1/#options",
604
+ "location": "/machinery-inspect-container.1/#options",
560
605
  "text": "-n NAME , --name=NAME (optional):\n Store the system description under the specified name. -s SCOPE , --scope=SCOPE (optional):\n Inspect image for specified scope.\n See the Scope section for more information. -e SCOPE , --ignore-scope=IGNORE-SCOPE (optional):\n Inspect image for all scopes except the specified scope.\n See the Scope section for more information. -x , --extract-files (optional):\n Extract changed configuration and unmanaged files from the inspected container.\n Shortcut for the combination of --extract-changed-config-files ,\n --extract-unmanaged-files , and --extract-changed-managed-files --extract-changed-config-files (optional):\n Extract changed configuration files from the inspected image. --extract-unmanaged-files (optional):\n Extract unmanaged files from the inspected image. --extract-changed-managed-files (optional):\n Extract changed managed files from inspected image. --skip-files (optional):\n Do not consider given files or directories during inspection. Either provide\n one file or directory name or a list of names separated by commas. You can\n also point to a file which contains a list of files to filter (one per line)\n by adding an '@' before the path, e.g. $ machinery inspect-container --skip-files=@/path/to/filter_file myimage If a filename contains a comma it needs to be escaped, e.g. $ machinery inspect-container --skip-files=/file\\,with_comma myimage Note : File or directory names are not expanded, e.g. '../path' is taken\n literally and not expanded. --verbose (optional):\n Display the filters which are used during inspection.",
561
- "title": "OPTIONS"
606
+ "title": "Options"
562
607
  },
563
608
  {
564
- "location": "/machinery-inspect-docker.1/#prerequisites",
565
- "text": "Inspecting a container requires an image specified by the name or id. The image to be inspected needs to have the following commands: rpm or dpkg zypper , yum or apt-cache rsync cat sed find",
566
- "title": "PREREQUISITES"
609
+ "location": "/machinery-inspect-container.1/#prerequisites",
610
+ "text": "Inspecting a container requires an image specified by the name or ID. The image to be inspected needs to have the following commands: rpm or dpkg zypper , yum or apt-cache rsync cat sed find",
611
+ "title": "Prerequisites"
567
612
  },
568
613
  {
569
- "location": "/machinery-inspect-docker.1/#examples",
614
+ "location": "/machinery-inspect-container.1/#examples",
570
615
  "text": "Inspect Docker container myimage and save system description under name 'MyContainer': $ machinery inspect-container --name=MyContainer myimage Inspect Docker container 076f46c1bef1 and save system description under name 'MySecondContainer': $ machinery inspect-container --name=MySecondContainer 076f46c1bef1 Extract changed managed files and save them: $ machinery inspect-container --scope=changed-managed-files --extract-files myimage",
571
- "title": "EXAMPLES"
616
+ "title": "Examples"
572
617
  },
573
618
  {
574
619
  "location": "/machinery-list.1/",
575
- "text": "list \u2014 List System Descriptions\n\n\nSYNOPSIS\n\n\nmachinery list\n [OPTIONS] [NAME[,NAME2[,NAME3]]]\n\n\nmachinery\n help list\n\n\nDESCRIPTION\n\n\nList the specified system descriptions if parameter name is given.\nList all available system descriptions in the internal database if no name parameter is given.\nThe list is sorted alphabetically and contains a name and the\nscopes for each system.\n\n\nOPTIONS\n\n\n\n\n--verbose\n (optional):\n Print additional information about the origin of scopes.\n Currently displays [HOSTNAME] and (DATE).\n\n\n--short\n (optional):\n List only descripton names.\n\n\n--html\n (optional):\n Run a web server and open the list of system descriptions in HTML format in\n your web browser using the \nxdg-open\n command.\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nLists the two specified system descriptions \na\n and \nb\n:\n\n\n$ \nmachinery\n list a b\n\n\n\n\n\n\nLists all available system descriptions:\n\n\n$ \nmachinery\n list\n\n\n\n\n\n\nSame as previous command, but additionally prints the date of each scope:\n\n\n$ \nmachinery\n list --verbose\n\n\n\n\n\n\nLists all available system description names without any additional details:\n\n\n$ \nmachinery\n list --short\n\n\n\n\n\n\nOpens HTML view of list of all available system descriptions in web browser:\n\n\n$ \nmachinery\n list --html",
620
+ "text": "list \u2014 List System Descriptions\n\n\nSynopsis\n\n\nmachinery list\n [OPTIONS] [NAME[,NAME2[,NAME3]]]\n\n\nmachinery\n help list\n\n\nDescription\n\n\nList the specified system descriptions if parameter name is given.\nList all available system descriptions in the internal database if no name parameter is given.\nThe list is sorted alphabetically and contains a name and the\nscopes for each system.\n\n\nOptions\n\n\n\n\n--verbose\n (optional):\n Print additional information about the origin of scopes.\n Currently displays [HOSTNAME] and (DATE).\n\n\n--short\n (optional):\n List only descripton names.\n\n\n--html\n (optional):\n Run a web server and open the list of system descriptions in HTML format in\n your web browser using the \nxdg-open\n command.\n\n\n\n\nExamples\n\n\n\n\n\n\nLists the two specified system descriptions \na\n and \nb\n:\n\n\n$ \nmachinery\n list a b\n\n\n\n\n\n\nLists all available system descriptions:\n\n\n$ \nmachinery\n list\n\n\n\n\n\n\nSame as previous command, but additionally prints the date of each scope:\n\n\n$ \nmachinery\n list --verbose\n\n\n\n\n\n\nLists all available system description names without any additional details:\n\n\n$ \nmachinery\n list --short\n\n\n\n\n\n\nOpens HTML view of list of all available system descriptions in web browser:\n\n\n$ \nmachinery\n list --html",
576
621
  "title": "List"
577
622
  },
578
623
  {
@@ -583,26 +628,26 @@
583
628
  {
584
629
  "location": "/machinery-list.1/#synopsis",
585
630
  "text": "machinery list [OPTIONS] [NAME[,NAME2[,NAME3]]] machinery help list",
586
- "title": "SYNOPSIS"
631
+ "title": "Synopsis"
587
632
  },
588
633
  {
589
634
  "location": "/machinery-list.1/#description",
590
635
  "text": "List the specified system descriptions if parameter name is given.\nList all available system descriptions in the internal database if no name parameter is given.\nThe list is sorted alphabetically and contains a name and the\nscopes for each system.",
591
- "title": "DESCRIPTION"
636
+ "title": "Description"
592
637
  },
593
638
  {
594
639
  "location": "/machinery-list.1/#options",
595
640
  "text": "--verbose (optional):\n Print additional information about the origin of scopes.\n Currently displays [HOSTNAME] and (DATE). --short (optional):\n List only descripton names. --html (optional):\n Run a web server and open the list of system descriptions in HTML format in\n your web browser using the xdg-open command.",
596
- "title": "OPTIONS"
641
+ "title": "Options"
597
642
  },
598
643
  {
599
644
  "location": "/machinery-list.1/#examples",
600
645
  "text": "Lists the two specified system descriptions a and b : $ machinery list a b Lists all available system descriptions: $ machinery list Same as previous command, but additionally prints the date of each scope: $ machinery list --verbose Lists all available system description names without any additional details: $ machinery list --short Opens HTML view of list of all available system descriptions in web browser: $ machinery list --html",
601
- "title": "EXAMPLES"
646
+ "title": "Examples"
602
647
  },
603
648
  {
604
649
  "location": "/machinery-man.1/",
605
- "text": "man \u2014 Shows Man Page\n\n\nSYNOPSIS\n\n\nmachinery man\n [OPTIONS]\n\n\nOPTIONS\n\n\n\n\n--html\n (optional):\n Run a web server and open the documentation in HTML format in your web browser using the\n \nxdg-open\n command.\n\n\n\n\nDESCRIPTION\n\n\nThe \nman\n command shows the Machinery man page.",
650
+ "text": "man \u2014 Shows Man Page\n\n\nSynopsis\n\n\nmachinery man\n [OPTIONS]\n\n\nOptions\n\n\n\n\n--html\n (optional):\n Run a web server and open the documentation in HTML format in your web browser.\n\n\n\n\nDescription\n\n\nThe \nman\n command shows the Machinery man page.",
606
651
  "title": "Man"
607
652
  },
608
653
  {
@@ -613,21 +658,21 @@
613
658
  {
614
659
  "location": "/machinery-man.1/#synopsis",
615
660
  "text": "machinery man [OPTIONS]",
616
- "title": "SYNOPSIS"
661
+ "title": "Synopsis"
617
662
  },
618
663
  {
619
664
  "location": "/machinery-man.1/#options",
620
- "text": "--html (optional):\n Run a web server and open the documentation in HTML format in your web browser using the\n xdg-open command.",
621
- "title": "OPTIONS"
665
+ "text": "--html (optional):\n Run a web server and open the documentation in HTML format in your web browser.",
666
+ "title": "Options"
622
667
  },
623
668
  {
624
669
  "location": "/machinery-man.1/#description",
625
670
  "text": "The man command shows the Machinery man page.",
626
- "title": "DESCRIPTION"
671
+ "title": "Description"
627
672
  },
628
673
  {
629
674
  "location": "/machinery-move.1/",
630
- "text": "move \u2014 Move System Description\n\n\nSYNOPSIS\n\n\nmachinery move\n\n FROM_NAME TO_NAME\n\n\nmachinery\n help move\n\n\nDESCRIPTION\n\n\nThe \nmove\n command renames a stored system description from \nFROM_NAME\n to \nTO_NAME\n.\n\n\nARGUMENTS\n\n\n\n\n\n\nFROM_NAME\n (required):\n Current name of the system description.\n\n\n\n\n\n\nTO_NAME\n (required):\n New name of the system description.\n\n\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nRename the system description \nearth\n to \nmoon\n:\n\n\n$ \nmachinery\n move earth moon",
675
+ "text": "move \u2014 Move System Description\n\n\nSynopsis\n\n\nmachinery move\n\n FROM_NAME TO_NAME\n\n\nmachinery\n help move\n\n\nDescription\n\n\nThe \nmove\n command renames a stored system description from \nFROM_NAME\n to \nTO_NAME\n.\n\n\nArguments\n\n\n\n\n\n\nFROM_NAME\n (required):\n Current name of the system description.\n\n\n\n\n\n\nTO_NAME\n (required):\n New name of the system description.\n\n\n\n\n\n\nExamples\n\n\n\n\n\n\nRename the system description \nearth\n to \nmoon\n:\n\n\n$ \nmachinery\n move earth moon",
631
676
  "title": "Move"
632
677
  },
633
678
  {
@@ -638,26 +683,26 @@
638
683
  {
639
684
  "location": "/machinery-move.1/#synopsis",
640
685
  "text": "machinery move \n FROM_NAME TO_NAME machinery help move",
641
- "title": "SYNOPSIS"
686
+ "title": "Synopsis"
642
687
  },
643
688
  {
644
689
  "location": "/machinery-move.1/#description",
645
690
  "text": "The move command renames a stored system description from FROM_NAME to TO_NAME .",
646
- "title": "DESCRIPTION"
691
+ "title": "Description"
647
692
  },
648
693
  {
649
694
  "location": "/machinery-move.1/#arguments",
650
695
  "text": "FROM_NAME (required):\n Current name of the system description. TO_NAME (required):\n New name of the system description.",
651
- "title": "ARGUMENTS"
696
+ "title": "Arguments"
652
697
  },
653
698
  {
654
699
  "location": "/machinery-move.1/#examples",
655
700
  "text": "Rename the system description earth to moon : $ machinery move earth moon",
656
- "title": "EXAMPLES"
701
+ "title": "Examples"
657
702
  },
658
703
  {
659
704
  "location": "/machinery-remove.1/",
660
- "text": "remove \u2014 Remove System Descriptions\n\n\nSYNOPSIS\n\n\nmachinery remove\n [--all]\n [NAME[,NAME2[,NAME3]]]\n\n\nmachinery\n help remove\n\n\nDESCRIPTION\n\n\nThe \nremove\n command removes all specified system descriptions.\n\n\nOPTIONS\n\n\n\n\n\n\n--all\n (optional):\n Remove all stored system descriptions.\n\n\n\n\n\n\n--verbose\n (optional):\n Explain what is being done.\n\n\n\n\n\n\nARGUMENTS\n\n\n\n\nNAME...\n (required):\n Remove specified system descriptions.\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nRemove the system description stored as \nearth\n:\n\n\n$ \nmachinery\n remove earth\n\n\n\n\n\n\nRemove the system descriptions stored as \nearth\n and \nmoon\n:\n\n\n$ \nmachinery\n remove earth moon\n\n\n\n\n\n\nRemove all stored system descriptions:\n\n\n$ \nmachinery\n remove --all",
705
+ "text": "remove \u2014 Remove System Descriptions\n\n\nSynopsis\n\n\nmachinery remove\n [--all]\n [NAME[,NAME2[,NAME3]]]\n\n\nmachinery\n help remove\n\n\nDescription\n\n\nThe \nremove\n command removes all specified system descriptions.\n\n\nOptions\n\n\n\n\n\n\n--all\n (optional):\n Remove all stored system descriptions.\n\n\n\n\n\n\n--verbose\n (optional):\n Explain what is being done.\n\n\n\n\n\n\nArguments\n\n\n\n\nNAME...\n (required):\n Remove specified system descriptions.\n\n\n\n\nExamples\n\n\n\n\n\n\nRemove the system description stored as \nearth\n:\n\n\n$ \nmachinery\n remove earth\n\n\n\n\n\n\nRemove the system descriptions stored as \nearth\n and \nmoon\n:\n\n\n$ \nmachinery\n remove earth moon\n\n\n\n\n\n\nRemove all stored system descriptions:\n\n\n$ \nmachinery\n remove --all",
661
706
  "title": "Remove"
662
707
  },
663
708
  {
@@ -668,61 +713,61 @@
668
713
  {
669
714
  "location": "/machinery-remove.1/#synopsis",
670
715
  "text": "machinery remove [--all]\n [NAME[,NAME2[,NAME3]]] machinery help remove",
671
- "title": "SYNOPSIS"
716
+ "title": "Synopsis"
672
717
  },
673
718
  {
674
719
  "location": "/machinery-remove.1/#description",
675
720
  "text": "The remove command removes all specified system descriptions.",
676
- "title": "DESCRIPTION"
721
+ "title": "Description"
677
722
  },
678
723
  {
679
724
  "location": "/machinery-remove.1/#options",
680
725
  "text": "--all (optional):\n Remove all stored system descriptions. --verbose (optional):\n Explain what is being done.",
681
- "title": "OPTIONS"
726
+ "title": "Options"
682
727
  },
683
728
  {
684
729
  "location": "/machinery-remove.1/#arguments",
685
730
  "text": "NAME... (required):\n Remove specified system descriptions.",
686
- "title": "ARGUMENTS"
731
+ "title": "Arguments"
687
732
  },
688
733
  {
689
734
  "location": "/machinery-remove.1/#examples",
690
735
  "text": "Remove the system description stored as earth : $ machinery remove earth Remove the system descriptions stored as earth and moon : $ machinery remove earth moon Remove all stored system descriptions: $ machinery remove --all",
691
- "title": "EXAMPLES"
736
+ "title": "Examples"
692
737
  },
693
738
  {
694
739
  "location": "/machinery-serve.1/",
695
- "text": "serve \u2014 Serve System Descriptions Using A Web Server\n\n\nSYNOPSIS\n\n\nmachinery serve\n [-p PORT | --port=PORT] [--public]\n\n\nmachinery\n help serve\n\n\nDESCRIPTION\n\n\nThe \nserve\n command spawns a web server to view system descriptions as an HTML\nview.\n\n\nBy default the server is available from http://127.0.0.1:7585 but both the\nIP address and the port can be configured using the according options.\n\n\nSpecific descriptions are available from http://127.0.0.1:7585/NAME, where NAME\nis the name of the system description. If no name is specified in the URL an\noverview of all descriptions is served.\n\n\nOPTIONS\n\n\n\n\n\n\n-p PORT\n, \n--port=PORT\n (optional):\n Specify the port on which the web server will serve the HTML view: Default: 7585\n\n\nPorts can be selected in a range between 2-65535. Ports between 2 and 1023 can only be\nchosen when \nmachinery\n will be executed as \nroot\n user.\n\n\n\n\n\n\n--public\n (optional):\n Specifying this option, lets the server listen on each configured IP address. By default\n the server will only listen on the localhost IP address 127.0.0.1\n\n\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nStart the server with default options:\n\n\n$ \nmachinery\n serve\n\n\n\n\n\n\nMake the server available to other machines on the network on port 3000:\n\n\n$ \nmachinery\n serve --public --port 3000",
740
+ "text": "serve \u2014 Serve System Descriptions Using a Web Server\n\n\nSynopsis\n\n\nmachinery serve\n [-p PORT | --port=PORT] [--public]\n\n\nmachinery\n help serve\n\n\nDescription\n\n\nThe \nserve\n command spawns a web server to view system descriptions as an HTML\nview.\n\n\nBy default the server is available from http://127.0.0.1:7585 but both the\nIP address and the port can be configured using the according options.\n\n\nSpecific descriptions are available from http://127.0.0.1:7585/NAME, where NAME\nis the name of the system description. If no name is specified in the URL an\noverview of all descriptions is served.\n\n\nOptions\n\n\n\n\n\n\n-p PORT\n, \n--port=PORT\n (optional):\n Specify the port on which the web server will serve the HTML view: Default: 7585\n\n\nPorts can be selected in a range between 2-65535. Ports between 2 and 1023 can only be\nchosen when \nmachinery\n will be executed as \nroot\n user.\n\n\n\n\n\n\n--public\n (optional):\n Specifying this option, lets the server listen on each configured IP address. By default\n the server will only listen on the localhost IP address 127.0.0.1\n\n\n\n\n\n\nExamples\n\n\n\n\n\n\nStart the server with default options:\n\n\n$ \nmachinery\n serve\n\n\n\n\n\n\nMake the server available to other machines on the network on port 3000:\n\n\n$ \nmachinery\n serve --public --port 3000",
696
741
  "title": "Serve"
697
742
  },
698
743
  {
699
744
  "location": "/machinery-serve.1/#serve-serve-system-descriptions-using-a-web-server",
700
745
  "text": "",
701
- "title": "serve \u2014 Serve System Descriptions Using A Web Server"
746
+ "title": "serve \u2014 Serve System Descriptions Using a Web Server"
702
747
  },
703
748
  {
704
749
  "location": "/machinery-serve.1/#synopsis",
705
750
  "text": "machinery serve [-p PORT | --port=PORT] [--public] machinery help serve",
706
- "title": "SYNOPSIS"
751
+ "title": "Synopsis"
707
752
  },
708
753
  {
709
754
  "location": "/machinery-serve.1/#description",
710
755
  "text": "The serve command spawns a web server to view system descriptions as an HTML\nview. By default the server is available from http://127.0.0.1:7585 but both the\nIP address and the port can be configured using the according options. Specific descriptions are available from http://127.0.0.1:7585/NAME, where NAME\nis the name of the system description. If no name is specified in the URL an\noverview of all descriptions is served.",
711
- "title": "DESCRIPTION"
756
+ "title": "Description"
712
757
  },
713
758
  {
714
759
  "location": "/machinery-serve.1/#options",
715
760
  "text": "-p PORT , --port=PORT (optional):\n Specify the port on which the web server will serve the HTML view: Default: 7585 Ports can be selected in a range between 2-65535. Ports between 2 and 1023 can only be\nchosen when machinery will be executed as root user. --public (optional):\n Specifying this option, lets the server listen on each configured IP address. By default\n the server will only listen on the localhost IP address 127.0.0.1",
716
- "title": "OPTIONS"
761
+ "title": "Options"
717
762
  },
718
763
  {
719
764
  "location": "/machinery-serve.1/#examples",
720
765
  "text": "Start the server with default options: $ machinery serve Make the server available to other machines on the network on port 3000: $ machinery serve --public --port 3000",
721
- "title": "EXAMPLES"
766
+ "title": "Examples"
722
767
  },
723
768
  {
724
769
  "location": "/machinery-show.1/",
725
- "text": "show \u2014 Show System Description\n\n\nSYNOPSIS\n\n\nmachinery show\n [-s SCOPE | --scope=SCOPE] [-e IGNORE-SCOPE | --ignore-scope=IGNORE-SCOPE] [--no-pager] [--show-diffs] [--html] NAME\n\n\nmachinery\n help show\n\n\nDESCRIPTION\n\n\nThe \nshow\n command displays a stored system description.\nScopes are supported and limit the output to the given scope.\nThe hostname of the inspected system and the last modification\nin local time are shown in the title of each scope section.\n\n\nARGUMENTS\n\n\n\n\nNAME\n (required):\n Use specified system description.\n\n\n\n\nOPTIONS\n\n\n\n\n\n\n-s SCOPE\n, \n--scope=SCOPE\n (optional):\n Limit output to the specified scope.\n See the \nScope section\n for more information.\n If displaying information related to a scope fails, \nshow\n will print an error message what has failed.\n In case of an error, no content is displayed.\n\n\n\n\n\n\n-e IGNORE-SCOPE\n, \n--ignore-scope=IGNORE-SCOPE\n (optional):\n Skip output of the specified scope.\n See the \nScope section\n for more information.\n\n\n\n\n\n\n--no-pager\n (optional):\n Do not pipe output into a pager.\n\n\n\n\n\n\n--show-diffs\n (optional):\n Include the generated diffs in the output if available (see \nmachinery help analyze\n\n for more information).\n\n\n\n\n\n\n--html\n (optional):\n Run a web server and open the system description in HTML format in your web browser using the\n \nxdg-open\n command.\n\n\n\n\n\n\n--verbose\n (optional):\n Display the filters which were applied before showing the system description.\n\n\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nShow the system description taken from the last inspection, saved as \nearth\n:\n\n\n$ \nmachinery\n show earth\n\n\n\n\n\n\nShow the system description, but limit the scope to repositories only:\n\n\n$ \nmachinery\n show earth -s repositories\n\n\n\n\n\n\nShow the list of changed managed files:\n\n\n$ \nmachinery\n show earth --scope=changed-managed-files",
770
+ "text": "show \u2014 Show System Description\n\n\nSynopsis\n\n\nmachinery show\n [-s SCOPE | --scope=SCOPE] [-e IGNORE-SCOPE | --ignore-scope=IGNORE-SCOPE] [--no-pager] [--show-diffs] [--html] NAME\n\n\nmachinery\n help show\n\n\nDescription\n\n\nThe \nshow\n command displays a stored system description.\nScopes are supported and limit the output to the given scope.\nThe hostname of the inspected system and the last modification\nin local time are shown in the title of each scope section.\n\n\nArguments\n\n\n\n\nNAME\n (required):\n Use specified system description.\n\n\n\n\nOptions\n\n\n\n\n\n\n-s SCOPE\n, \n--scope=SCOPE\n (optional):\n Limit output to the specified scope.\n See the \nScope section\n for more information.\n If displaying information related to a scope fails, \nshow\n will print an error message what has failed.\n In case of an error, no content is displayed.\n\n\n\n\n\n\n-e IGNORE-SCOPE\n, \n--ignore-scope=IGNORE-SCOPE\n (optional):\n Skip output of the specified scope.\n See the \nScope section\n for more information.\n\n\n\n\n\n\n--no-pager\n (optional):\n Do not pipe output into a pager.\n\n\n\n\n\n\n--show-diffs\n (optional):\n Include the generated diffs in the output if available (see \nmachinery help analyze\n\n for more information).\n\n\n\n\n\n\n--html\n (optional):\n Run a web server and open the system description in HTML format in your web browser using the\n \nxdg-open\n command.\n\n\n\n\n\n\n--verbose\n (optional):\n Display the filters which were applied before showing the system description.\n\n\n\n\n\n\nExamples\n\n\n\n\n\n\nShow the system description taken from the last inspection, saved as \nearth\n:\n\n\n$ \nmachinery\n show earth\n\n\n\n\n\n\nShow the system description, but limit the scope to repositories only:\n\n\n$ \nmachinery\n show earth -s repositories\n\n\n\n\n\n\nShow the list of changed managed files:\n\n\n$ \nmachinery\n show earth --scope=changed-managed-files",
726
771
  "title": "Show"
727
772
  },
728
773
  {
@@ -733,31 +778,31 @@
733
778
  {
734
779
  "location": "/machinery-show.1/#synopsis",
735
780
  "text": "machinery show [-s SCOPE | --scope=SCOPE] [-e IGNORE-SCOPE | --ignore-scope=IGNORE-SCOPE] [--no-pager] [--show-diffs] [--html] NAME machinery help show",
736
- "title": "SYNOPSIS"
781
+ "title": "Synopsis"
737
782
  },
738
783
  {
739
784
  "location": "/machinery-show.1/#description",
740
785
  "text": "The show command displays a stored system description.\nScopes are supported and limit the output to the given scope.\nThe hostname of the inspected system and the last modification\nin local time are shown in the title of each scope section.",
741
- "title": "DESCRIPTION"
786
+ "title": "Description"
742
787
  },
743
788
  {
744
789
  "location": "/machinery-show.1/#arguments",
745
790
  "text": "NAME (required):\n Use specified system description.",
746
- "title": "ARGUMENTS"
791
+ "title": "Arguments"
747
792
  },
748
793
  {
749
794
  "location": "/machinery-show.1/#options",
750
795
  "text": "-s SCOPE , --scope=SCOPE (optional):\n Limit output to the specified scope.\n See the Scope section for more information.\n If displaying information related to a scope fails, show will print an error message what has failed.\n In case of an error, no content is displayed. -e IGNORE-SCOPE , --ignore-scope=IGNORE-SCOPE (optional):\n Skip output of the specified scope.\n See the Scope section for more information. --no-pager (optional):\n Do not pipe output into a pager. --show-diffs (optional):\n Include the generated diffs in the output if available (see machinery help analyze \n for more information). --html (optional):\n Run a web server and open the system description in HTML format in your web browser using the\n xdg-open command. --verbose (optional):\n Display the filters which were applied before showing the system description.",
751
- "title": "OPTIONS"
796
+ "title": "Options"
752
797
  },
753
798
  {
754
799
  "location": "/machinery-show.1/#examples",
755
800
  "text": "Show the system description taken from the last inspection, saved as earth : $ machinery show earth Show the system description, but limit the scope to repositories only: $ machinery show earth -s repositories Show the list of changed managed files: $ machinery show earth --scope=changed-managed-files",
756
- "title": "EXAMPLES"
801
+ "title": "Examples"
757
802
  },
758
803
  {
759
804
  "location": "/machinery-upgrade-format.1/",
760
- "text": "upgrade-format \u2014 Upgrade System Description\n\n\nSYNOPSIS\n\n\nmachinery upgrade-format\n --all\n\n\nmachinery upgrade-format\n NAME\n\n\nmachinery\n help upgrade-format\n\n\nDESCRIPTION\n\n\nThe \nupgrade-format\n command upgrades a system description to the latest format\nversion.\n\n\nThe \nformat\n in this context is the structure of the internal system description\ndata. If the format version of a system description does not match the current\n\nmachinery\n format version, \nmachinery\n is no longer able to work with the data\nuntil it is upgraded. The current format version can be retrieved using\n\nmachinery --version\n. The format version of a system description can be found\nin the \nmeta\n section of the according \nmanifest.json\n file.\n\n\nIf the \n--all\n switch is given all local descriptions will be upgraded.\n\n\nOPTIONS\n\n\n\n\n--all\n (optional):\n Upgrade all stored system descriptions.\n\n\n\n\nARGUMENTS\n\n\n\n\nNAME\n (optional):\n Upgrade specified system description.\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nUpgrade the system description stored as \nearth\n:\n\n\n$ \nmachinery\n upgrade-format earth\n\n\n\n\n\n\nUpgrade all stored system descriptions:\n\n\n$ \nmachinery\n upgrade-format --all",
805
+ "text": "upgrade-format \u2014 Upgrade System Description\n\n\nSynopsis\n\n\nmachinery upgrade-format\n --all\n\n\nmachinery upgrade-format\n NAME\n\n\nmachinery\n help upgrade-format\n\n\nDescription\n\n\nThe \nupgrade-format\n command upgrades a system description to the latest format\nversion.\n\n\nThe \nformat\n in this context is the structure of the internal system description\ndata. If the format version of a system description does not match the current\n\nmachinery\n format version, \nmachinery\n is no longer able to work with the data\nuntil it is upgraded. The current format version can be retrieved using\n\nmachinery --version\n. The format version of a system description can be found\nin the \nmeta\n section of the according \nmanifest.json\n file.\n\n\nIf the \n--all\n switch is given all local descriptions will be upgraded.\n\n\nOptions\n\n\n\n\n--all\n (optional):\n Upgrade all stored system descriptions.\n\n\n\n\nArguments\n\n\n\n\nNAME\n (optional):\n Upgrade specified system description.\n\n\n\n\nExamples\n\n\n\n\n\n\nUpgrade the system description stored as \nearth\n:\n\n\n$ \nmachinery\n upgrade-format earth\n\n\n\n\n\n\nUpgrade all stored system descriptions:\n\n\n$ \nmachinery\n upgrade-format --all",
761
806
  "title": "Upgrade Format"
762
807
  },
763
808
  {
@@ -768,31 +813,31 @@
768
813
  {
769
814
  "location": "/machinery-upgrade-format.1/#synopsis",
770
815
  "text": "machinery upgrade-format --all machinery upgrade-format NAME machinery help upgrade-format",
771
- "title": "SYNOPSIS"
816
+ "title": "Synopsis"
772
817
  },
773
818
  {
774
819
  "location": "/machinery-upgrade-format.1/#description",
775
820
  "text": "The upgrade-format command upgrades a system description to the latest format\nversion. The format in this context is the structure of the internal system description\ndata. If the format version of a system description does not match the current machinery format version, machinery is no longer able to work with the data\nuntil it is upgraded. The current format version can be retrieved using machinery --version . The format version of a system description can be found\nin the meta section of the according manifest.json file. If the --all switch is given all local descriptions will be upgraded.",
776
- "title": "DESCRIPTION"
821
+ "title": "Description"
777
822
  },
778
823
  {
779
824
  "location": "/machinery-upgrade-format.1/#options",
780
825
  "text": "--all (optional):\n Upgrade all stored system descriptions.",
781
- "title": "OPTIONS"
826
+ "title": "Options"
782
827
  },
783
828
  {
784
829
  "location": "/machinery-upgrade-format.1/#arguments",
785
830
  "text": "NAME (optional):\n Upgrade specified system description.",
786
- "title": "ARGUMENTS"
831
+ "title": "Arguments"
787
832
  },
788
833
  {
789
834
  "location": "/machinery-upgrade-format.1/#examples",
790
835
  "text": "Upgrade the system description stored as earth : $ machinery upgrade-format earth Upgrade all stored system descriptions: $ machinery upgrade-format --all",
791
- "title": "EXAMPLES"
836
+ "title": "Examples"
792
837
  },
793
838
  {
794
839
  "location": "/machinery-validate.1/",
795
- "text": "validate \u2014 Validate System Description\n\n\nSYNOPSIS\n\n\nmachinery validate\n NAME\n\n\nmachinery\n help validate\n\n\nDESCRIPTION\n\n\nThe \nvalidate\n subcommand validates an existing system description.\nIt checks, that the description has the correct structure and the data stored\nthere conforms to the required schema. It also verifies that all extracted files\nare present on disk and that all files have meta information.\n\n\nIn case of issues errors are shown with additional information.\n\n\nThe main purpose of this command is to verify the system description after\nmanually editing it.\n\n\nARGUMENTS\n\n\n\n\nNAME\n (required):\n Name of the system description.\n\n\n\n\nEXAMPLES\n\n\n\n\n\n\nValidate the system description with the name \nmyhost\n:\n\n\n$ \nmachinery\n validate myhost",
840
+ "text": "validate \u2014 Validate System Description\n\n\nSynopsis\n\n\nmachinery validate\n NAME\n\n\nmachinery\n help validate\n\n\nDescription\n\n\nThe \nvalidate\n subcommand validates an existing system description.\nIt checks, that the description has the correct structure and the data stored\nthere conforms to the required schema. It also verifies that all extracted files\nare present on disk and that all files have meta information.\n\n\nIn case of issues errors are shown with additional information.\n\n\nThe main purpose of this command is to verify the system description after\nmanually editing it.\n\n\nArguments\n\n\n\n\nNAME\n (required):\n Name of the system description.\n\n\n\n\nExamples\n\n\n\n\n\n\nValidate the system description with the name \nmyhost\n:\n\n\n$ \nmachinery\n validate myhost",
796
841
  "title": "Validate"
797
842
  },
798
843
  {
@@ -803,22 +848,22 @@
803
848
  {
804
849
  "location": "/machinery-validate.1/#synopsis",
805
850
  "text": "machinery validate NAME machinery help validate",
806
- "title": "SYNOPSIS"
851
+ "title": "Synopsis"
807
852
  },
808
853
  {
809
854
  "location": "/machinery-validate.1/#description",
810
855
  "text": "The validate subcommand validates an existing system description.\nIt checks, that the description has the correct structure and the data stored\nthere conforms to the required schema. It also verifies that all extracted files\nare present on disk and that all files have meta information. In case of issues errors are shown with additional information. The main purpose of this command is to verify the system description after\nmanually editing it.",
811
- "title": "DESCRIPTION"
856
+ "title": "Description"
812
857
  },
813
858
  {
814
859
  "location": "/machinery-validate.1/#arguments",
815
860
  "text": "NAME (required):\n Name of the system description.",
816
- "title": "ARGUMENTS"
861
+ "title": "Arguments"
817
862
  },
818
863
  {
819
864
  "location": "/machinery-validate.1/#examples",
820
865
  "text": "Validate the system description with the name myhost : $ machinery validate myhost",
821
- "title": "EXAMPLES"
866
+ "title": "Examples"
822
867
  }
823
868
  ]
824
869
  }