wget https://releases.hashicorp.com/terraform/1.1.5/terraform_1.1.5_linux_amd64.zip unzip into /usr/local/bin
NOTE: You only need to do this once. If you are sharing the cluster with a team, then only one person needs to do it and they need to share the bucket with the other team members.
cd shared_state/aws terraform init terraform apply
You will need to create a configuration file that includes values for the variables that do not have a default value. See the Variables section in the README. For example, you can create a file aws.auto.tfvars
file in the aws
directory with the following content (replace as appropriate):
create_route53_records = "true" private_network = "true" accumulo_root_password = "secret" security_group = "sg-ABCDEF001" route53_zone = "some.domain.com" us_east_1b_subnet = "subnet-ABCDEF123" us_east_1e_subnet = "subnet-ABCDEF124" ami_owner = "000000000001" ami_name_pattern = "MY_AMI_*" authorized_ssh_keys = [ "ssh-rsa .... user1", "ssh-rsa .... user2", "ssh-rsa .... user3" ]
NOTE: ensure that the private key corresponding to the first ssh key in authorized_ssh_keys
in the configuration above has been loaded into your ssh agent, or else terraform apply will fail.
cd aws terraform init --backend-config=bucket=<bucket-name-goes-here> terraform apply
The output of the apply step above will include the IP addresses of the resources that were created. If created correctly, you should be able to ssh to the nodes using ssh hadoop@ip
. If you created DNS addresses for the nodes, then you should be able to ssh using those addresses also. You should also be able to access the web pages (see the “Accessing Web Pages” section of the README for ports)