0

At my job, I am required to deploy socks5 server on EC2 instances hosted on Alicloud (competitor to AWS). For each EC2 instance, I am required to do the following:

  1. SSH to the IP of an EC2 instance
  2. wget my socks5 server which is a perl script ,
  3. execute this perl script.

I have to deploy about 50 EC2 instances a day. Aside from Docker (which I have been told is an overkill for my task), are there libraries or frameworks out there that allows me to do so?

EDIT

Fabric is a great tool

Jason Ye
  • 2,399
  • 1
  • 8
  • 10
Tinker
  • 161
  • 1
  • 1
  • 5
  • 1
    The term you want is "configuration management system". Puppet, Chef, Ansible, etc. are all useful for this. – ceejayoz Jun 12 '17 at 14:19

3 Answers3

2

You can use Packer to create images and then use Terraform to provision those instances. With packer you can use any configuration management software you want, salt, ansible, chef or puppet.

https://github.com/alibaba/packer-provider/tree/master/examples/alicloud/basic

https://www.terraform.io/docs/providers/alicloud/index.html

strongjz
  • 822
  • 4
  • 7
  • Thank you for recommending this super interesting tool. From a usage point of view, will this be easier than Fabric to get up and running? – Tinker Jun 14 '17 at 06:00
  • I have never used Fabric but I can tell you that using both tools is really easy and convenient. – strongjz Jun 14 '17 at 14:58
1

You can use Ansible (www.ansible.com) , an agent-less opensource configuration management tool.

It has already an integration with EC2 http://docs.ansible.com/ansible/intro_dynamic_inventory.html#example-aws-ec2-external-inventory-script in order to retrieve the manager server list and it use already

It use ad default ssh in order to connect and perform action on the managed servers.

The task 2 can be performed using the modules http://docs.ansible.com/ansible/get_url_module.html or http://docs.ansible.com/ansible/copy_module.html

The task 3 can be execute using the module http://docs.ansible.com/ansible/command_module.html

NoNoNo
  • 1,939
  • 14
  • 19
0

I'm a bit surprised but here you can see the trends for the most popular deployment tools. Take into consideration that chef may be used in other contexts but I think that Ansible is becoming more and more popular because it is simpler.

Then it depends a lot on your usage, some opensource scheduler tools can give you more flexibility and will give you more flexibility.

XYZ123
  • 101
  • 1