Skip to content

Ability to pass command to altis stack ssh and pipe ouput #16

@joehoyle

Description

@joehoyle

User Story

As a CLI user I am able to pass a command to execute to altis-cli stack ssh such as wp user list and then pipe the output to my local machine. For example, something like altis-cli stack ssh altis-demo -- wp user list | grep joe (in this case grep is being run on my local machine.

I would also like to pipe data in to a command, for example: echo joe | altis-cli stack ssh altis-demo -- wp user get.


I chatted to @rmccue about the feasibility to doing these, and there are a few low-level challenges that we need to overcome to be able to implement this. As I understand it:

  1. We need to be able to change the "initial" command when ssh is run, as currently it will output MOTD and other boilerplate as part of setting up the SSH sessions. If developers want to just be able to just run a command and pipe output, we can't have any of the initial data.
  2. Altis Dashbaord APIs need to be updated to allow passing the initial command, as we can't run the command client-side in the interactive sessions, as there's no easy to way understand when the command might be complete and exit the program.
  3. Currently the session's SSH output is all a single stream of data, so there's no way to split stdout / stderr in pipes on the client machine. This means if something like wp user list output PHP errors or any other error, it would be in stdout and piped along with the list of users. This makes the data useless in many situations. There's an open issue on [session-manager-plugin] "aws ssm start-session" should print debug output to stderr instead of stdout aws/amazon-ssm-agent#358 (2.5 years old) to address this, but it doesn't look like there's any progress.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions