Vagrant allows for all kinds of nifty commands, but they need to be run from within a given project in order to work. Also, Aegir-up's architecture can appear complicated to new users. So, in an effort to simplify the interface, I'm proposing adding a number of 'aegir-up' commands.

So far, in lib/scripts, we have:

  • aegir-up-init.sh: initialize a project (e.g., projects/my-project).
  • aegir-up-user.sh: initialize user settings (i.e., ~/.aegir-up).
  • aegir-up-remotes: add Puppet module remotes.
  • vp: add an alias to allow provisioning from other than a project's root.

Here are some other ideas:

  • aegir-up-destroy.sh aegir-up-delete.sh: run 'vagrant destroy' on a project, then 'rm -rf projects/my-project'. If we don't destroy the VMs first, it can be a real hassle to clean them up. DONE
  • aegir-up-clone.sh: clone a project repo, and then initialize it locally. Sharing project repos can be a bit difficult, since we won't have user settings, may run into subnet collisions, etc.
  • aegir-up-rebuild.sh: pull down project changes, and rebuild the project's VMs (basically 'vagrant destroy -f && git pull && vagrant up')
  • aegir-up-provision.sh: replace vp (see above), and ensure that we use the vagrant user for provisioning.
  • aegir-up-ssh.sh: ssh into any VM in any project from anywhere. Possibly add agent forwarding. DONE
  • aegir-up-start.sh: launch, start or resume a VM (in any project, from anywhere).
  • aegir-up-pause.sh: suspend one VM or all VMs in a project.
  • aegir-up-stop.sh: shutdown one VM or all VMs in a project.
  • aegir-up-basebox.sh: automate the building of the Aegir-up baseboxes.
  • aegir-up-status.sh: show VM status across all projects.
  • aegir-up.sh: wrapper linked to from the aegir-up root, that passes variables on to the appropriate sub-command (e.g. 'aegir-up init', 'aegir-up ssh my-project', &c.)
  • aegir-up-upgrade.sh: manage stable version upgrades.

Thoughts? Suggestions?

Comments

ergonlogic’s picture

Assigned:Unassigned» ergonlogic

Added aegir-up-delete.sh and aegir-up commands.

ergonlogic’s picture

Added aegir-up-ssh.sh

ergonlogic’s picture

Issue summary:View changes

updating status

ergonlogic’s picture

Issue summary:View changes

update 'aegir-up ssh' command done

ergonlogic’s picture

Changed command syntax (aegir-up <sub-command> [options]), added auto-complete and 'aegir-up clone <git_repo_url> <project_directory>' to experimental branch. Will merge into 'testing' branch shortly.

ergonlogic’s picture

All the shell scripts have been re-implemented as Drush commands, and so no longer exist as described above.

aegir-up-init.sh is now 'drush aegir-up-initialize ' (alias 'aui')
aegir-up-user.sh is now 'drush aegir-up-user' (alias 'auu')
aegir-up-delete.sh is now 'drush aegir-up-delete ' (alias 'aud')
aegir-up-clone.sh has been folded into aegir-up-initialize as the '--git-repo' option
aegir-up-ssh.sh is now is now 'drush aegir-up-ssh []' (alias 'aus')
aegir-up-status.sh is now 'drush aegir-up' (alias 'au')
aegir-up.sh is no more.
aegir-up-upgrade.sh should no longer be required, as a 'drush dl aegir-up' should be sufficient to upgrade to a newer version (may squash contrib blueprints though...).
aegir-up-basebox.sh just isn't likely to be worthwhile, but may be implemented as a hidden command one day.

The following may still be interesting to implement.
aegir-up-rebuild: rebuild the workspace's VMs (basically 'vagrant destroy -f && vagrant up', with an optional 'git pull', maybe)
aegir-up-provision: may be redundant... TBD.
aegir-up-start/stop/pause: I may implement these as a toggle, with an option to set a specific state.

These would provide pretty much a full wrapper around all relevant Vagrant commands.

ergonlogic’s picture

Status:Active» Closed (fixed)

Pretty much all of these have moved to Drush Vagrant. I don't immediately see a need for aegir-up specific commands, though I'm open to ideas (in new issues please).

ergonlogic’s picture

Issue summary:View changes

oops, wrong style for marking something done