summaryrefslogtreecommitdiffstats
path: root/src/pybind/mgr/ssh/README.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/pybind/mgr/ssh/README.md93
1 files changed, 93 insertions, 0 deletions
diff --git a/src/pybind/mgr/ssh/README.md b/src/pybind/mgr/ssh/README.md
new file mode 100644
index 00000000..10f268cd
--- /dev/null
+++ b/src/pybind/mgr/ssh/README.md
@@ -0,0 +1,93 @@
+# dev environment setup
+
+1. start vms with _only_ the ceph packages installed
+
+In `src/pybind/mgr/ssh` run `vagrant up` to create a cluster with a monitor,
+manager, and osd nodes. The osd node will have two small extra disks attached.
+
+2. generate an `ssh_config` file for the vm hosts
+
+Execute `vagrant ssh-config > /path/to/ssh_config` to generate a ssh
+configuration file that contains hosts, usernames, and keys that will be used by
+the bootstrap cluster / ssh orchestrator to establish ssh connections to the
+vagrant vms.
+
+3. install ssh orchestrator dependencies
+
+The primary dependency is the `remoto` package that contains a Python SSH client
+for connecting to remote nodes and executing commands.
+
+Install with `dnf install python3-remoto`. The version must be >= 0.0.35. At the
+time of writing this version is being packaged and is not available. To install
+from source:
+
+```
+git clone https://github.com/ceph/remoto
+cd remoto
+python3 setup.py sdist
+pip3 install --prefix=/usr dist/remoto-0.0.35.tar.gz
+```
+
+4. start the bootstrap cluster (in this case a `vstart.sh` cluster)
+
+Start with a network binding to which the vms can route traffic:
+
+ `vstart.sh -n -i 192.168.121.1`
+
+The following is a manual method for finding this address. TODO: documenting a
+automated/deterministic method would be very helpful.
+
+First, ensure that your firewall settings permit each VM to communicate with the
+host. On Fedora, the `trusted` profile is sufficient: `firewall-cmd
+--set-default-zone trusted` and also allows traffic on Ceph ports. Then ssh into
+one of the vm nodes and ping the default gateway, which happens to be setup as
+the host machine.
+
+```
+[nwatkins@smash ssh]$ vagrant ssh mon0 -c "getent hosts gateway"
+192.168.121.1 gateway
+```
+
+5. setup the ssh orchestrator backend
+
+Enable and configure the ssh orchestrator as the active backend:
+
+```
+ceph mgr module enable ssh
+ceph orchestrator set backend ssh
+
+# optional: this document assumes the orchestrator CLI is enabled
+ceph mgr module enable orchestrator_cli
+```
+
+Configure the ssh orchestrator by setting the `ssh_config` option to point at
+the ssh configuration file generated above:
+
+```
+ceph config set mgr mgr/ssh/ssh_config_file /path/to/config
+```
+
+The setting can be confirmed by retrieving the configuration settings:
+
+```
+[nwatkins@smash build]$ ceph config get mgr.
+WHO MASK LEVEL OPTION VALUE RO
+mgr advanced mgr/orchestrator_cli/orchestrator ssh *
+mgr advanced mgr/ssh/ssh_config_file /home/nwatkins/src/ceph/src/pybind/mgr/ssh/config *
+```
+
+An SSH config file can also be provided through standard input that avoids the
+need to have an accessible file path. Use the following command:
+
+
+```
+ceph ssh set-ssh-config -i <path to ssh_config>
+```
+
+The next set of instructions we should move to the docs folder
+
+ceph orchestrator host add osd0
+ceph orchestrator host add mgr0
+ceph orchestrator host add mon0
+ceph orchestrator device ls
+ceph orchestrator mgr update 3 mgr0 mgr1