AWS CLI in a flight instance - not in the default PATH


#1

Version: flight-compute-2016.4r1-42f67df5-e57c-4db2-b31a-6723f002b99d-ami-ca6585dc.3 (ami-619b9105)

Folks - I notice that the AWS cli tools are packaged in the AMI (brilliant, thank you!) but I also notice they’re not in the path.

I know I can hack the path, but is there a simpler way that I can explain to other people? (ie ‘module load …’) or can we perhaps just have it included in the default path.

I use these things a lot (I may be biased), and a lot of the AWS documentation refers to them, so I think it’d be good to have this appear in the default path for a shell or to be just easily installable or accessible via a gridware command…


#2

Hi Brendan,

The AWS CLI module should be loaded by default in that version of Flight Compute. If it’s not it’s possible you’ve removed it from your ~/.modules file somehow. You can check this by running module initlist; for me this gives:

[alces@login1(bobcluster) ~]$ module initlist

bash initialization file $HOME/.modules loads modules:
        services/aws services/gridscheduler services/s3cmd null

If you don’t see services/aws there, you can add it with module initadd services/aws and it should then be loaded for you each time you log in.

I hope this helps, let us know if you have any more questions.

Thanks,
Bob


#3

Thanks bob. Turns out this only happens when I’m launching a single instance from the console (whether that’s manually, or via the marketplace launch path. When I launch a cluster from marketplace with cloudformation, all is good in the world.

But on the single instance:

Viz:

[alces@ip-172-31-9-110(unconfigured) ~]$ alces configure node
Cluster name [mycluster]:
Cluster UUID [8c3d0c6a-3024-4b3f-b0f4-6a08ede7c369]:
Cluster secret [VevnKm9UAoguo0LDl1+k]:
Master node IP address []:
Node role [master]:
==========================
CONFIGURATION UNDERWAY
==========================
Configuration of this node is now underway. When configuration is
complete you will receive a notice at the prompt. Additionally, the
prompt will be updated to include the name of your cluster.

Once configured, you can access the information required to
configure further nodes as part of your cluster by running the
"alces about identity" command.
[alces@ip-172-31-9-110(mycluster) ~]$ 
[alces@ip-172-31-9-110(mycluster) ~]$ which aws
/usr/bin/which: no aws in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alces/.local/bin:/home/alces/bin)
[alces@ip-172-31-9-110(mycluster) ~]$ module initlist
bash initialization file $HOME/.modules loads modules:
        null
[alces@ip-172-31-9-110(mycluster) ~]$

#4

Hi Brendan,

In single-instance mode you’ll need to module initadd services/aws yourself after configuration has completed. This is because the home directory for the alces user is created at login, prior to the installation of the AWS CLI tools (which happens as part of the configuration process). When the tools are installed the module is added to the home directory template/“skel” files, so it isn’t configured by default for the alces user in this case, though it would be for any other users you subsequently created.

Thanks,
Bob


#5

Thats exactly what I needed. Would be awesome to see that - and any other similar steps - added to the online doc:

http://docs.alces-flight.com/en/stable/launch-aws/manual-launch.html