Project

General

Profile

GlideinwmsCondorAnnex » History » Version 3

Parag Mhashilkar, 04/07/2016 11:56 AM

1 1 Parag Mhashilkar
h1. GlideinwmsCondorAnnex
2 1 Parag Mhashilkar
3 3 Parag Mhashilkar
This is some documentation on very early version of condor_annex tools available from the HTCondor git repository.
4 3 Parag Mhashilkar
<pre>
5 3 Parag Mhashilkar
[parag@fermicloud338 condor_annex]$ git branch
6 3 Parag Mhashilkar
* V8_5-condor_annex-branch
7 3 Parag Mhashilkar
  master
8 3 Parag Mhashilkar
</pre>
9 1 Parag Mhashilkar
10 3 Parag Mhashilkar
h2. Preparations
11 1 Parag Mhashilkar
12 3 Parag Mhashilkar
* condor_annex requires --keypair. So had to run "aws configure". This created a $HOME/.aws directory with credentials in clear text. Its a ini file created by following command
13 3 Parag Mhashilkar
<pre>aws configure get region</pre>
14 1 Parag Mhashilkar
15 3 Parag Mhashilkar
h2. Working Command
16 1 Parag Mhashilkar
17 3 Parag Mhashilkar
<pre>
18 3 Parag Mhashilkar
/opt/condor/src/condor_annex/condor_annex \
19 3 Parag Mhashilkar
    --verbose \
20 3 Parag Mhashilkar
    --region=us-west-2 \
21 3 Parag Mhashilkar
    --project-id=annex_parag \
22 3 Parag Mhashilkar
    --instances=2 \
23 3 Parag Mhashilkar
    --expiry="2016-04-06 17:00" \
24 3 Parag Mhashilkar
    --central-manager=fermicloud385.fnal.gov \
25 3 Parag Mhashilkar
    --keypair=parag-annex \
26 3 Parag Mhashilkar
    --vpc=vpc-ed33af86 \
27 3 Parag Mhashilkar
    --subnet=subnet-ec33af87,subnet-e233af89,subnet-e333af88 \
28 3 Parag Mhashilkar
    --image-ids=ami-e826cd88 \
29 3 Parag Mhashilkar
    --spot-prices=0.06 \
30 3 Parag Mhashilkar
    --instance-types=m3.medium \
31 3 Parag Mhashilkar
    --password-file=/cloud/login/parag/wspace/glideinWMS/annex/password_file
32 3 Parag Mhashilkar
</pre>
33 1 Parag Mhashilkar
34 3 Parag Mhashilkar
h2. Internals of condor_annex
35 1 Parag Mhashilkar
36 3 Parag Mhashilkar
* Code is in perl and it invokes aws client commands.
37 3 Parag Mhashilkar
* Requires awscli python module
38 3 Parag Mhashilkar
<pre>pip install awscli</pre>
39 3 Parag Mhashilkar
40 3 Parag Mhashilkar
h3. Variables for Reference
41 3 Parag Mhashilkar
42 3 Parag Mhashilkar
$projectID (--project-id): Its an arbitrary string chosen by the user to handle future actions with this annex
43 3 Parag Mhashilkar
Make sure $annexSize is defined through --instances
44 3 Parag Mhashilkar
45 3 Parag Mhashilkar
$expiry (--expiry): When should this annex go away. Note the date format for the argument value.
46 3 Parag Mhashilkar
47 3 Parag Mhashilkar
$region (--region): If not provided use default region from ~/.aws/config. Use 'us-west-1' as hard default if all else fails.
48 3 Parag Mhashilkar
49 3 Parag Mhashilkar
$centralManager (--central-manager): Central manager where the condor startd will report to. Because this is required, we can not use condor_annex as is with GlideinWMS
50 3 Parag Mhashilkar
51 3 Parag Mhashilkar
$stackName (--stack-name): AWS stack name to use
52 3 Parag Mhashilkar
53 3 Parag Mhashilkar
$keypairName (--keypair): Name of the keypair in AWS to use while creating stack
54 3 Parag Mhashilkar
55 3 Parag Mhashilkar
$vpc (--vpc): VPC to use
56 3 Parag Mhashilkar
57 3 Parag Mhashilkar
$subnet (--subnet): Subnets to use
58 3 Parag Mhashilkar
59 3 Parag Mhashilkar
$imageIDList (--image-ids)
60 3 Parag Mhashilkar
61 3 Parag Mhashilkar
$spotPriceList (--spot-prices)
62 3 Parag Mhashilkar
63 3 Parag Mhashilkar
$instanceTypeList (--instance-types)
64 3 Parag Mhashilkar
65 3 Parag Mhashilkar
h3. Workflow
66 3 Parag Mhashilkar
67 3 Parag Mhashilkar
* Get the aws region to use.
68 3 Parag Mhashilkar
69 3 Parag Mhashilkar
* Create or get the stack to operate (modify/delete) on. If the stack does not exist it is created as needed using the keypair configured in AWS. If stack exists and --delete is given to the command, delete the stack. Use the VPC and Subnets passed by the user or use default with Name HTCondorAnnex. Since subnets are AZ specific, this is also a way to restrict annex to use a given AZ. Following AWS commands are used as part of various validations/information gathering in condor_annex. Either provide launch configuration ($launchConfigList) or provide the $imageIDList $spotPriceList $instanceTypeList
70 3 Parag Mhashilkar
71 3 Parag Mhashilkar
<pre>
72 3 Parag Mhashilkar
aws --region $region ec2 describe-key-pair
73 3 Parag Mhashilkar
aws --region $region ec2 describe-vpcs --filters 'Name=tag:Name,Values=HTCondorAnnex'
74 3 Parag Mhashilkar
aws --region $region ec2 describe-subnets --filters 'Name=tag:Name,Values=HTCondorAnnex' 'Name=vpc-id,Values=$vpc'
75 3 Parag Mhashilkar
</pre>