hybrid_platforms_conductor 32.12.0 → 32.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1103 -0
- data/LICENSE.md +31 -0
- data/README.md +395 -0
- data/bin/setup +1 -1
- data/docs/api.md +349 -0
- data/docs/config_dsl.md +315 -0
- data/docs/executables.md +226 -0
- data/docs/executables/check-node.md +155 -0
- data/docs/executables/deploy.md +198 -0
- data/docs/executables/dump_nodes_json.md +110 -0
- data/docs/executables/free_ips.md +93 -0
- data/docs/executables/free_veids.md +73 -0
- data/docs/executables/get_impacted_nodes.md +94 -0
- data/docs/executables/last_deploys.md +114 -0
- data/docs/executables/nodes_to_deploy.md +139 -0
- data/docs/executables/report.md +159 -0
- data/docs/executables/run.md +126 -0
- data/docs/executables/setup.md +92 -0
- data/docs/executables/ssh_config.md +151 -0
- data/docs/executables/test.md +213 -0
- data/docs/executables/topograph.md +139 -0
- data/docs/gen/mermaid/README.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/check-node.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/deploy.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/free_ips.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/free_veids.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/get_impacted_nodes.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/last_deploys.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/nodes_to_deploy.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/report.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/run.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/setup.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/ssh_config.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/test.md-0.png +0 -0
- data/docs/install.md +161 -0
- data/docs/plugins.md +215 -0
- data/docs/plugins/action/bash.md +37 -0
- data/docs/plugins/action/interactive.md +37 -0
- data/docs/plugins/action/remote_bash.md +67 -0
- data/docs/plugins/action/ruby.md +69 -0
- data/docs/plugins/action/scp.md +61 -0
- data/docs/plugins/cmdb/config.md +46 -0
- data/docs/plugins/cmdb/host_ip.md +33 -0
- data/docs/plugins/cmdb/host_keys.md +33 -0
- data/docs/plugins/cmdb/platform_handlers.md +33 -0
- data/docs/plugins/connector/local.md +28 -0
- data/docs/plugins/connector/ssh.md +95 -0
- data/docs/plugins/platform_handler/yaml_inventory.md +105 -0
- data/docs/plugins/provisioner/docker.md +27 -0
- data/docs/plugins/provisioner/podman.md +27 -0
- data/docs/plugins/provisioner/proxmox.md +115 -0
- data/docs/plugins/report/confluence.md +49 -0
- data/docs/plugins/report/mediawiki.md +28 -0
- data/docs/plugins/report/stdout.md +32 -0
- data/docs/plugins/test/bitbucket_conf.md +97 -0
- data/docs/plugins/test/can_be_checked.md +27 -0
- data/docs/plugins/test/check_deploy_and_idempotence.md +61 -0
- data/docs/plugins/test/check_from_scratch.md +28 -0
- data/docs/plugins/test/connection.md +27 -0
- data/docs/plugins/test/deploy_freshness.md +27 -0
- data/docs/plugins/test/deploy_from_scratch.md +28 -0
- data/docs/plugins/test/deploy_removes_root_access.md +29 -0
- data/docs/plugins/test/divergence.md +41 -0
- data/docs/plugins/test/executables.md +26 -0
- data/docs/plugins/test/file_system.md +49 -0
- data/docs/plugins/test/file_system_hdfs.md +65 -0
- data/docs/plugins/test/hostname.md +27 -0
- data/docs/plugins/test/idempotence.md +56 -0
- data/docs/plugins/test/ip.md +28 -0
- data/docs/plugins/test/jenkins_ci_conf.md +54 -0
- data/docs/plugins/test/jenkins_ci_masters_ok.md +54 -0
- data/docs/plugins/test/linear_strategy.md +26 -0
- data/docs/plugins/test/local_users.md +48 -0
- data/docs/plugins/test/mounts.md +55 -0
- data/docs/plugins/test/orphan_files.md +38 -0
- data/docs/plugins/test/ports.md +50 -0
- data/docs/plugins/test/private_ips.md +27 -0
- data/docs/plugins/test/public_ips.md +27 -0
- data/docs/plugins/test/spectre.md +26 -0
- data/docs/plugins/test/veids.md +27 -0
- data/docs/plugins/test/vulnerabilities.md +65 -0
- data/docs/plugins/test_report/confluence.md +43 -0
- data/docs/plugins/test_report/stdout.md +26 -0
- data/docs/plugins_create.md +135 -0
- data/docs/tutorial.md +57 -0
- data/docs/tutorial/01_installation.md +129 -0
- data/docs/tutorial/02_first_node.md +466 -0
- data/docs/tutorial/03_scale.md +876 -0
- data/docs/tutorial/04_test.md +965 -0
- data/docs/tutorial/05_extend_with_plugins.md +1132 -0
- data/examples/bare/Gemfile +4 -0
- data/examples/bare/hpc_config.rb +2 -0
- data/examples/localhost/Gemfile +4 -0
- data/examples/localhost/hpc_config.rb +2 -0
- data/examples/localhost/inventory.yaml +4 -0
- data/lib/hybrid_platforms_conductor/actions_executor.rb +1 -0
- data/lib/hybrid_platforms_conductor/deployer.rb +3 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/action/remote_bash.rb +29 -13
- data/lib/hybrid_platforms_conductor/hpc_plugins/action/scp.rb +1 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/connector/local.rb +98 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/connector/my_connector.rb.sample +2 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/connector/ssh.rb +7 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/platform_handler_plugin.rb.sample +5 -5
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/yaml_inventory.rb +140 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox.rb +5 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/bitbucket_conf.rb +4 -4
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_freshness.rb +1 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_removes_root_access.rb +19 -17
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/divergence.rb +3 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/hostname.rb +2 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/ip.rb +2 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/local_users.rb +2 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/mounts.rb +4 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/orphan_files.rb +2 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/spectre.rb +1 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/vulnerabilities.rb +8 -7
- data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/confluence.rb +1 -1
- data/lib/hybrid_platforms_conductor/json_dumper.rb +1 -1
- data/lib/hybrid_platforms_conductor/platform_handler.rb +1 -1
- data/lib/hybrid_platforms_conductor/services_handler.rb +18 -16
- data/lib/hybrid_platforms_conductor/tests_runner.rb +0 -1
- data/lib/hybrid_platforms_conductor/topographer.rb +0 -1
- data/lib/hybrid_platforms_conductor/version.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/remote_bash_spec.rb +16 -0
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/local/connectable_nodes_spec.rb +30 -0
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/local/remote_actions_spec.rb +113 -0
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/cli_options_spec.rb +6 -2
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/global_helpers_spec.rb +38 -1
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/remote_actions_spec.rb +8 -8
- data/spec/hybrid_platforms_conductor_test/docs_spec.rb +10 -0
- data/tools/check_md +89 -0
- data/tools/generate_mermaid +75 -0
- metadata +207 -12
@@ -0,0 +1,159 @@
|
|
1
|
+
# `report`
|
2
|
+
|
3
|
+
The `report` executable will produce some reports for a list of nodes, using a given format and locale.
|
4
|
+
This executable is using [report plugins](../plugins.md#report) so that the tool is easily extensible to any format or locale needed (think of CSV, Excel, DNS configuration files, other configuration management tools...).
|
5
|
+
|
6
|
+
## Process
|
7
|
+
|
8
|
+
<!-- Mermaid generator - Section start -->
|
9
|
+
![Mermaid diagram](/docs/gen/mermaid/docs/executables/report.md-0.png)
|
10
|
+
<details>
|
11
|
+
<summary>See diagram Mermaid code</summary>
|
12
|
+
|
13
|
+
```mermaid
|
14
|
+
sequenceDiagram
|
15
|
+
participant Main as ./bin/report
|
16
|
+
participant Report as Report
|
17
|
+
participant CMDB as CMDB
|
18
|
+
|
19
|
+
Main->>+Report: Produce a report for selected nodes
|
20
|
+
Report->>+CMDB: Get metadata to be reported for nodes
|
21
|
+
CMDB-->>-Report: Nodes' metadata
|
22
|
+
Report->>-Main: Report produced
|
23
|
+
```
|
24
|
+
</details>
|
25
|
+
<!-- Mermaid generator - Section end -->
|
26
|
+
|
27
|
+
## Usage
|
28
|
+
|
29
|
+
```
|
30
|
+
Usage: ./bin/report [options]
|
31
|
+
|
32
|
+
Main options:
|
33
|
+
-d, --debug Activate debug mode
|
34
|
+
-h, --help Display help and exit
|
35
|
+
|
36
|
+
Nodes handler options:
|
37
|
+
-o, --show-nodes Display the list of possible nodes and exit
|
38
|
+
|
39
|
+
Nodes selection options:
|
40
|
+
-a, --all-nodes Select all nodes
|
41
|
+
-b, --nodes-platform PLATFORM Select nodes belonging to a given platform name. Available platforms are: ansible-repo, chef-repo (can be used several times)
|
42
|
+
-l, --nodes-list LIST Select nodes defined in a nodes list (can be used several times)
|
43
|
+
-n, --node NODE Select a specific node. Can be a regular expression to select several nodes if used with enclosing "/" characters. (can be used several times).
|
44
|
+
-r, --nodes-service SERVICE Select nodes implementing a given service (can be used several times)
|
45
|
+
--nodes-git-impact GIT_IMPACT
|
46
|
+
Select nodes impacted by a git diff from a platform (can be used several times).
|
47
|
+
GIT_IMPACT has the format PLATFORM:FROM_COMMIT:TO_COMMIT:FLAGS
|
48
|
+
* PLATFORM: Name of the platform to check git diff from. Available platforms are: ansible-repo, chef-repo
|
49
|
+
* FROM_COMMIT: Commit ID or refspec from which we perform the diff. If ommitted, defaults to master
|
50
|
+
* TO_COMMIT: Commit ID ot refspec to which we perform the diff. If ommitted, defaults to the currently checked-out files
|
51
|
+
* FLAGS: Extra comma-separated flags. The following flags are supported:
|
52
|
+
- min: If specified then each impacted service will select only 1 node implementing this service. If not specified then all nodes implementing the impacted services will be selected.
|
53
|
+
|
54
|
+
Command runner options:
|
55
|
+
-s, --show-commands Display the commands that would be run instead of running them
|
56
|
+
|
57
|
+
Reports handler options:
|
58
|
+
-c, --locale LOCALE_CODE Generate the report in the given format. Possible codes are formats specific. [confluence: en], [stdout: en], [mediawiki: en]
|
59
|
+
-f, --format FORMAT Generate the report in the given format. Possible formats are confluence, mediawiki, stdout. Default: stdout.
|
60
|
+
```
|
61
|
+
|
62
|
+
## Examples
|
63
|
+
|
64
|
+
```bash
|
65
|
+
# Output all nodes info using mediawiki format
|
66
|
+
./bin/report --format mediawiki
|
67
|
+
|
68
|
+
# Output all nodes info using mediawiki format in en locale
|
69
|
+
./bin/report --format mediawiki --locale en
|
70
|
+
|
71
|
+
# Output all nodes containing /xae/ in their names using mediawiki format
|
72
|
+
./bin/report --node /xae/ --format mediawiki
|
73
|
+
```
|
74
|
+
|
75
|
+
Example of output:
|
76
|
+
```
|
77
|
+
=> ./bin/report --format mediawiki
|
78
|
+
Back to the [[Hadoop]] / [[Impala]] / [[XAE_Network_Topology]] portal pages
|
79
|
+
|
80
|
+
This page has been generated using <code>./helpers/report --format mediawiki</code> on 2018-03-26 08:58:55 UTC.
|
81
|
+
|
82
|
+
= Physical nodes =
|
83
|
+
|
84
|
+
== Independent nodes ==
|
85
|
+
|
86
|
+
=== 172.16.0/24 ===
|
87
|
+
|
88
|
+
* '''WinNode''' - 172.16.0.140 - AD of QlikSense Server (primary AD of Production) - WinNode
|
89
|
+
: Handled by Chef: No
|
90
|
+
: Server type: Virtual Machine on node456.my_domain.com.
|
91
|
+
|
92
|
+
|
93
|
+
* '''WinNode''' - 172.16.0.141 - AD of QlikSense Server (secondary AD of Production) - WinNode
|
94
|
+
: Handled by Chef: No
|
95
|
+
: Server type: Virtual Machine on node456.my_domain.com.
|
96
|
+
|
97
|
+
|
98
|
+
* '''node237''' - 172.16.0.9 - Gateway to Dedicated Cloud (Former Tableau 8) - node237.my_domain.com
|
99
|
+
: Handled by Chef: No
|
100
|
+
: Location: RBX
|
101
|
+
: OS: Windows Server 2008
|
102
|
+
: XAE IP: 192.168.255.159
|
103
|
+
: Public IPs:
|
104
|
+
::* 192.168.255.159
|
105
|
+
|
106
|
+
[...]
|
107
|
+
|
108
|
+
=== 172.16.139/24 ===
|
109
|
+
|
110
|
+
* '''node12lnx09''' - 172.16.139.98 - Data Processing (Gurobi, GPU, RStudio)
|
111
|
+
: OS: Debian 7
|
112
|
+
|
113
|
+
|
114
|
+
=== 172.30.14/24 ===
|
115
|
+
|
116
|
+
* '''node''' - 172.30.14.226 - ADP gateway in my_platform IaaS
|
117
|
+
: OS: RHEL 7 ADP Stadard
|
118
|
+
|
119
|
+
|
120
|
+
=== 192.168.0/24 ===
|
121
|
+
|
122
|
+
* '''project-pinger''' - 192.168.0.2 - Product availability tester
|
123
|
+
: Connection settings:
|
124
|
+
::* ip: 192.168.0.77
|
125
|
+
: Direct deployment: Yes
|
126
|
+
: Public IPs:
|
127
|
+
::* 192.168.0.77
|
128
|
+
|
129
|
+
|
130
|
+
Back to the [[Hadoop]] / [[Impala]] / [[XAE_Network_Topology]] portal pages
|
131
|
+
|
132
|
+
[[Category:My Project]]
|
133
|
+
[[Category:Hadoop]]
|
134
|
+
[[Category:NoSQL]]
|
135
|
+
[[Category:Hosting]]
|
136
|
+
[[Category:XAE]]
|
137
|
+
[[Category:Server]]
|
138
|
+
[[Category:Configuration]]
|
139
|
+
[[Category:Chef]]
|
140
|
+
```
|
141
|
+
|
142
|
+
## Used credentials
|
143
|
+
|
144
|
+
| Credential | Usage
|
145
|
+
| --- | --- |
|
146
|
+
|
147
|
+
## Used Metadata
|
148
|
+
|
149
|
+
| Metadata | Type | Usage
|
150
|
+
| --- | --- | --- |
|
151
|
+
|
152
|
+
## Used environment variables
|
153
|
+
|
154
|
+
| Variable | Usage
|
155
|
+
| --- | --- |
|
156
|
+
|
157
|
+
## External tools dependencies
|
158
|
+
|
159
|
+
None
|
@@ -0,0 +1,126 @@
|
|
1
|
+
# `run`
|
2
|
+
|
3
|
+
The `run` executable will run any Bash command (or interactive session) remotely on a node (or list of nodes).
|
4
|
+
It will use connectors (SSH...) to do so.
|
5
|
+
|
6
|
+
## Process
|
7
|
+
|
8
|
+
<!-- Mermaid generator - Section start -->
|
9
|
+
![Mermaid diagram](/docs/gen/mermaid/docs/executables/run.md-0.png)
|
10
|
+
<details>
|
11
|
+
<summary>See diagram Mermaid code</summary>
|
12
|
+
|
13
|
+
```mermaid
|
14
|
+
sequenceDiagram
|
15
|
+
participant Main as ./bin/run --node my_node --command "echo Hello"
|
16
|
+
participant Connector as Connector
|
17
|
+
participant Node as Provisioned node (my_node)
|
18
|
+
|
19
|
+
Main->>+Connector: Connect to my_node to execute actions
|
20
|
+
Connector->>+Node: Execute bash command on my_node
|
21
|
+
Node-->>-Connector: stdout of bash execution
|
22
|
+
Connector-->>-Main: Close connection
|
23
|
+
```
|
24
|
+
</details>
|
25
|
+
<!-- Mermaid generator - Section end -->
|
26
|
+
|
27
|
+
## Usage
|
28
|
+
|
29
|
+
```
|
30
|
+
Usage: ./bin/run [options]
|
31
|
+
|
32
|
+
Main options:
|
33
|
+
-d, --debug Activate debug mode
|
34
|
+
-h, --help Display help and exit
|
35
|
+
-c, --command CMD Command to execute (can't be used with --interactive) (can be used several times, commands will be executed sequentially)
|
36
|
+
-f, --commands-file FILE_NAME Execute commands taken from a file (can't be used with --interactive) (can be used several times, commands will be executed sequentially)
|
37
|
+
-i, --interactive Run an interactive SSH session instead of executing a command (can't be used with --command or --commands-file)
|
38
|
+
-p, --parallel Execute the commands in parallel (put the standard output in files <hybrid-platforms-dir>/run_logs/*.stdout)
|
39
|
+
-t, --timeout SECS Timeout in seconds to wait for each command (defaults to no timeout)
|
40
|
+
|
41
|
+
Nodes handler options:
|
42
|
+
-o, --show-nodes Display the list of possible nodes and exit
|
43
|
+
|
44
|
+
Nodes selection options:
|
45
|
+
-a, --all-nodes Select all nodes
|
46
|
+
-b, --nodes-platform PLATFORM Select nodes belonging to a given platform name. Available platforms are: ansible-repo, chef-repo (can be used several times)
|
47
|
+
-l, --nodes-list LIST Select nodes defined in a nodes list (can be used several times)
|
48
|
+
-n, --node NODE Select a specific node. Can be a regular expression to select several nodes if used with enclosing "/" characters. (can be used several times).
|
49
|
+
-r, --nodes-service SERVICE Select nodes implementing a given service (can be used several times)
|
50
|
+
--nodes-git-impact GIT_IMPACT
|
51
|
+
Select nodes impacted by a git diff from a platform (can be used several times).
|
52
|
+
GIT_IMPACT has the format PLATFORM:FROM_COMMIT:TO_COMMIT:FLAGS
|
53
|
+
* PLATFORM: Name of the platform to check git diff from. Available platforms are: ansible-repo, chef-repo
|
54
|
+
* FROM_COMMIT: Commit ID or refspec from which we perform the diff. If ommitted, defaults to master
|
55
|
+
* TO_COMMIT: Commit ID ot refspec to which we perform the diff. If ommitted, defaults to the currently checked-out files
|
56
|
+
* FLAGS: Extra comma-separated flags. The following flags are supported:
|
57
|
+
- min: If specified then each impacted service will select only 1 node implementing this service. If not specified then all nodes implementing the impacted services will be selected.
|
58
|
+
|
59
|
+
Command runner options:
|
60
|
+
-s, --show-commands Display the commands that would be run instead of running them
|
61
|
+
|
62
|
+
Actions Executor options:
|
63
|
+
-m, --max-threads NBR Set the number of threads to use for concurrent queries (defaults to 16)
|
64
|
+
|
65
|
+
Connector ssh options:
|
66
|
+
-g, --ssh-gateway-user USER Name of the gateway user to be used by the gateways. Can also be set from environment variable hpc_ssh_gateway_user. Defaults to ubradm.
|
67
|
+
-j, --ssh-no-control-master If used, don't create SSH control masters for connections.
|
68
|
+
-q, --ssh-no-host-key-checking If used, don't check for SSH host keys.
|
69
|
+
-u, --ssh-user USER Name of user to be used in SSH connections (defaults to hpc_ssh_user or USER environment variables)
|
70
|
+
-w, --password If used, then expect SSH connections to ask for a password.
|
71
|
+
-y GATEWAYS_CONF, Name of the gateways configuration to be used. Can also be set from environment variable hpc_ssh_gateways_conf.
|
72
|
+
--ssh-gateways-conf
|
73
|
+
```
|
74
|
+
|
75
|
+
## Examples
|
76
|
+
|
77
|
+
```bash
|
78
|
+
# Display the possible nodes we can run commands on (also outputs the possible nodes lists, services...)
|
79
|
+
./bin/run --show-nodes
|
80
|
+
|
81
|
+
# Run an interactive SSH session on node23hst-nn1
|
82
|
+
./bin/run --node node23hst-nn1 --interactive
|
83
|
+
|
84
|
+
# Run the hostname command on node23hst-nn1
|
85
|
+
./bin/run --node node23hst-nn1 --command hostname
|
86
|
+
|
87
|
+
# Run the hostname and ls commands on node23hst-nn1
|
88
|
+
./bin/run --node node23hst-nn1 --command hostname --command ls
|
89
|
+
|
90
|
+
# Run a list of commands (taken from the file cmds.list) on node23hst-nn1
|
91
|
+
./bin/run --node node23hst-nn1 --commands-file cmds.list
|
92
|
+
|
93
|
+
# Run a list of commands (taken from the file cmds.list) and the hostname command on node23hst-nn1
|
94
|
+
./bin/run --node node23hst-nn1 --commands-file cmds.list --command hostname
|
95
|
+
|
96
|
+
# Run the hostname command on node23hst-nn1 with a timeout of 5 seconds that would interrupt the command if it does not end before
|
97
|
+
./bin/run --node node23hst-nn1 --command hostname --timeout 5
|
98
|
+
|
99
|
+
# Run the hostname command on all nodes containing xae in parallel (and send each standard output in log files in ./run_logs/*.stdout)
|
100
|
+
./bin/run --node /xae/ --command hostname --parallel
|
101
|
+
```
|
102
|
+
|
103
|
+
Example of output:
|
104
|
+
```
|
105
|
+
=> ./bin/run --node node12had01 --command hostname
|
106
|
+
node12host.site.my_company.net
|
107
|
+
```
|
108
|
+
|
109
|
+
## Used credentials
|
110
|
+
|
111
|
+
| Credential | Usage
|
112
|
+
| --- | --- |
|
113
|
+
|
114
|
+
## Used Metadata
|
115
|
+
|
116
|
+
| Metadata | Type | Usage
|
117
|
+
| --- | --- | --- |
|
118
|
+
|
119
|
+
## Used environment variables
|
120
|
+
|
121
|
+
| Variable | Usage
|
122
|
+
| --- | --- |
|
123
|
+
|
124
|
+
## External tools dependencies
|
125
|
+
|
126
|
+
None
|
@@ -0,0 +1,92 @@
|
|
1
|
+
# `setup`
|
2
|
+
|
3
|
+
The `setup` executable installs all dependencies needed for a platform to be operated by Hybrid Platforms Conductor.
|
4
|
+
It is intended to be run only for the initial setup or when such dependencies change (for example if a `Gemfile` of a `chef` platform changes).
|
5
|
+
|
6
|
+
***This executable is still in alpha version: not properly tested, no clear process, no stable interface. Pending [this ticket](https://github.com/sweet-delights/hybrid-platforms-conductor/issues/45).***
|
7
|
+
|
8
|
+
## Process
|
9
|
+
|
10
|
+
<!-- Mermaid generator - Section start -->
|
11
|
+
![Mermaid diagram](/docs/gen/mermaid/docs/executables/setup.md-0.png)
|
12
|
+
<details>
|
13
|
+
<summary>See diagram Mermaid code</summary>
|
14
|
+
|
15
|
+
```mermaid
|
16
|
+
sequenceDiagram
|
17
|
+
participant Main as ./bin/setup
|
18
|
+
participant PlatformHandler as Platform Handler
|
19
|
+
|
20
|
+
Main->>+PlatformHandler: Install dependencies for each platform
|
21
|
+
PlatformHandler-->>-Main: Dependencies installed
|
22
|
+
```
|
23
|
+
</details>
|
24
|
+
<!-- Mermaid generator - Section end -->
|
25
|
+
|
26
|
+
## Usage
|
27
|
+
|
28
|
+
```
|
29
|
+
Usage: ./bin/setup [options]
|
30
|
+
|
31
|
+
Main options:
|
32
|
+
-d, --debug Activate debug mode
|
33
|
+
-h, --help Display help and exit
|
34
|
+
|
35
|
+
Nodes handler options:
|
36
|
+
-o, --show-nodes Display the list of possible nodes and exit
|
37
|
+
|
38
|
+
Command runner options:
|
39
|
+
-s, --show-commands Display the commands that would be run instead of running them
|
40
|
+
```
|
41
|
+
|
42
|
+
## Examples
|
43
|
+
|
44
|
+
```bash
|
45
|
+
# Setup all declared platforms
|
46
|
+
./bin/setup
|
47
|
+
```
|
48
|
+
|
49
|
+
Here is an example of output:
|
50
|
+
```
|
51
|
+
=> ./bin/setup
|
52
|
+
cd ../chef-repo && rm -rf Gemfile.lock vendor && bundle install --path vendor/bundle --binstubs
|
53
|
+
Fetching gem metadata from http://rubygems.org/........
|
54
|
+
Fetching gem metadata from http://rubygems.org/.
|
55
|
+
Resolving dependencies....
|
56
|
+
Fetching rake 12.3.1
|
57
|
+
Installing rake 12.3.1
|
58
|
+
[...]
|
59
|
+
Bundle complete! 12 Gemfile dependencies, 101 gems now installed.
|
60
|
+
Bundled gems are installed into `./vendor/bundle`
|
61
|
+
Post-install message from minitar:
|
62
|
+
The `minitar` executable is no longer bundled with `minitar`. If you are
|
63
|
+
expecting this executable, make sure you also install `minitar-cli`.
|
64
|
+
cd ./cloned_platforms/xae-chef-repo && rm -rf Gemfile.lock vendor && bundle install --path vendor/bundle --binstubs
|
65
|
+
Fetching gem metadata from http://rubygems.org/........
|
66
|
+
Fetching gem metadata from http://rubygems.org/.
|
67
|
+
Resolving dependencies....
|
68
|
+
Fetching rake 12.3.1
|
69
|
+
Installing rake 12.3.1
|
70
|
+
[...]
|
71
|
+
Bundle complete! 9 Gemfile dependencies, 98 gems now installed.
|
72
|
+
Bundled gems are installed into `./vendor/bundle`
|
73
|
+
```
|
74
|
+
|
75
|
+
## Used credentials
|
76
|
+
|
77
|
+
| Credential | Usage
|
78
|
+
| --- | --- |
|
79
|
+
|
80
|
+
## Used Metadata
|
81
|
+
|
82
|
+
| Metadata | Type | Usage
|
83
|
+
| --- | --- | --- |
|
84
|
+
|
85
|
+
## Used environment variables
|
86
|
+
|
87
|
+
| Variable | Usage
|
88
|
+
| --- | --- |
|
89
|
+
|
90
|
+
## External tools dependencies
|
91
|
+
|
92
|
+
None
|
@@ -0,0 +1,151 @@
|
|
1
|
+
# `ssh_config`
|
2
|
+
|
3
|
+
The `ssh_config` executable will output (in standard output) an SSH config file ready to be used to address any node accessible using the [`ssh` connector](../plugins/connector/ssh.md).
|
4
|
+
The configuration also includes any proxy configuration needed.
|
5
|
+
The generated file can also be tuned by specifying the gateway user names to be used, and a path to a different ssh executable.
|
6
|
+
|
7
|
+
This executable is also used internally by other tools of Hybrid Platforms Conductor to prepare the SSH environment before executing SSH commands, so it's a good way to see and debug the SSH configuration used internally by the Hybrid Platform Conductor's processes.
|
8
|
+
|
9
|
+
## Process
|
10
|
+
|
11
|
+
<!-- Mermaid generator - Section start -->
|
12
|
+
![Mermaid diagram](/docs/gen/mermaid/docs/executables/ssh_config.md-0.png)
|
13
|
+
<details>
|
14
|
+
<summary>See diagram Mermaid code</summary>
|
15
|
+
|
16
|
+
```mermaid
|
17
|
+
sequenceDiagram
|
18
|
+
participant Main as ./bin/ssh_config
|
19
|
+
participant CMDB as CMDB
|
20
|
+
participant Connector as Connector
|
21
|
+
participant ConnectorSSH as Connector SSH
|
22
|
+
|
23
|
+
Main->>+CMDB: Get metadata of all nodes
|
24
|
+
CMDB->>-Main: Metadata
|
25
|
+
Main->>+Connector: Select nodes that are SSH-connectable from their metadata
|
26
|
+
Connector->>-Main: List of SSH-connectable nodes
|
27
|
+
Main->>+ConnectorSSH: Get the SSH config for selected nodes
|
28
|
+
ConnectorSSH-->>-Main: Display SSH config
|
29
|
+
```
|
30
|
+
</details>
|
31
|
+
<!-- Mermaid generator - Section end -->
|
32
|
+
|
33
|
+
## Usage
|
34
|
+
|
35
|
+
```
|
36
|
+
Usage: ./bin/ssh_config [options]
|
37
|
+
|
38
|
+
Main options:
|
39
|
+
-d, --debug Activate debug mode
|
40
|
+
-h, --help Display help and exit
|
41
|
+
-x, --ssh-exec FILE_PATH Path to the SSH executable to be used. Useful to give default options (especially with GIT_SSH). Defaults to ssh.
|
42
|
+
|
43
|
+
Nodes handler options:
|
44
|
+
-o, --show-nodes Display the list of possible nodes and exit
|
45
|
+
|
46
|
+
Command runner options:
|
47
|
+
-s, --show-commands Display the commands that would be run instead of running them
|
48
|
+
|
49
|
+
Connector ssh options:
|
50
|
+
-g, --ssh-gateway-user USER Name of the gateway user to be used by the gateways. Can also be set from environment variable hpc_ssh_gateway_user. Defaults to ubradm.
|
51
|
+
-j, --ssh-no-control-master If used, don't create SSH control masters for connections.
|
52
|
+
-q, --ssh-no-host-key-checking If used, don't check for SSH host keys.
|
53
|
+
-u, --ssh-user USER Name of user to be used in SSH connections (defaults to hpc_ssh_user or USER environment variables)
|
54
|
+
-w, --password If used, then expect SSH connections to ask for a password.
|
55
|
+
-y GATEWAYS_CONF, Name of the gateways configuration to be used. Can also be set from environment variable hpc_ssh_gateways_conf.
|
56
|
+
--ssh-gateways-conf
|
57
|
+
```
|
58
|
+
|
59
|
+
## Examples
|
60
|
+
|
61
|
+
```bash
|
62
|
+
# Dump in stdout
|
63
|
+
./bin/ssh_config
|
64
|
+
|
65
|
+
# Use it to overwrite directly the SSH config file
|
66
|
+
./bin/ssh_config >~/.ssh/config ; chmod 600 ~/.ssh/config
|
67
|
+
|
68
|
+
# Use it to generate a separate included config file (for OpenSSH version >= 7.3p1)
|
69
|
+
# Need to add "Include platforms_config" in the existing ~/.ssh/config file.
|
70
|
+
./bin/ssh_config >~/.ssh/platforms_config
|
71
|
+
|
72
|
+
# Dump in stdout, using hadcli as gateway user
|
73
|
+
./bin/ssh_config --ssh-gateway-user hadcli
|
74
|
+
|
75
|
+
# Dump in stdout, using /my/other/ssh instead of ssh
|
76
|
+
./bin/ssh_config --ssh-exec /my/other/ssh
|
77
|
+
|
78
|
+
# Dump in stdout, using the madrid SSH gateways configuration
|
79
|
+
./bin/ssh_config --ssh-gateways-conf madrid
|
80
|
+
```
|
81
|
+
|
82
|
+
Example of output:
|
83
|
+
```
|
84
|
+
=> ./bin/ssh_config
|
85
|
+
|
86
|
+
############
|
87
|
+
# GATEWAYS #
|
88
|
+
############
|
89
|
+
|
90
|
+
# Gateway Nice (when connecting from other sites)
|
91
|
+
Host my.gateway.com
|
92
|
+
User sitegw
|
93
|
+
Hostname node12hst-nn5.site.my_company.net
|
94
|
+
|
95
|
+
# DMZ Gateway
|
96
|
+
Host gw.dmz.be
|
97
|
+
HostName dmz.my_domain.com
|
98
|
+
ProxyCommand ssh -q -W %h:%p my.gateway.com
|
99
|
+
|
100
|
+
# Data Gateway
|
101
|
+
Host gw.data.be
|
102
|
+
HostName fr-had.my_domain.com
|
103
|
+
ProxyCommand ssh -q -W %h:%p datagw@gw.dmz.be
|
104
|
+
|
105
|
+
|
106
|
+
#############
|
107
|
+
# ENDPOINTS #
|
108
|
+
#############
|
109
|
+
|
110
|
+
Host *
|
111
|
+
User a_usernme
|
112
|
+
# Default control socket path to be used when multiplexing SSH connections
|
113
|
+
ControlPath /tmp/actions_executor_mux_%h_%p_%r
|
114
|
+
PubkeyAcceptedKeyTypes +ssh-dss
|
115
|
+
|
116
|
+
# AD_Win2012_NP0 - 172.16.16.105 - ./cloned_platforms/xae-chef-repo - AD of QlikSense Server (primary AD of Non-production) - AD_Win2012_NP0
|
117
|
+
Host hpc.172.16.16.105 hpc.16.105 hpc.AD_Win2012_NP0
|
118
|
+
Hostname 172.16.16.105
|
119
|
+
ProxyCommand ssh -q -W %h:%p ubradm@gw.dmz.be
|
120
|
+
|
121
|
+
[...]
|
122
|
+
|
123
|
+
# xaetitanuwsd01 - 172.16.16.89 - ./cloned_platforms/xae-chef-repo - Traffic Analytics WS (UAT/jessie)
|
124
|
+
Host hpc.172.16.16.89 hpc.16.89 hpc.xaetitanuwsd01
|
125
|
+
Hostname 172.16.16.89
|
126
|
+
ProxyCommand ssh -q -W %h:%p ubradm@gw.dmz.be
|
127
|
+
|
128
|
+
# project-pinger - 192.168.0.2 - ../chef-repo - Product availability tester
|
129
|
+
Host hpc.192.168.0.2 hpc.project-pinger
|
130
|
+
Hostname 192.168.0.77
|
131
|
+
|
132
|
+
```
|
133
|
+
|
134
|
+
## Used credentials
|
135
|
+
|
136
|
+
| Credential | Usage
|
137
|
+
| --- | --- |
|
138
|
+
|
139
|
+
## Used Metadata
|
140
|
+
|
141
|
+
| Metadata | Type | Usage
|
142
|
+
| --- | --- | --- |
|
143
|
+
|
144
|
+
## Used environment variables
|
145
|
+
|
146
|
+
| Variable | Usage
|
147
|
+
| --- | --- |
|
148
|
+
|
149
|
+
## External tools dependencies
|
150
|
+
|
151
|
+
None
|