最近研究了 ansible ,打算更进一步来自动化配置服务器。
比如我写一个配置 servers.yml :
groups:
all:
production:
- "db"
- "app"
servers:
- name: db
provider: digitalocean
image: 'ubuntu-16-04-x64'
size: '512mb'
region: 'sgp1'
admin: deployer
- name: app
provider: digitalocean
image: 'ubuntu-16-04-x64'
size: '512mb'
region: 'sgp1'
admin: deployer
同时还有 config.yml 里面有 digitalocean 的 token 。
之后就可以执行命令: update-server server.yml -c config.yml -o server-generated.yml update-server 可以重复执行,已经创建的服务器就会跳过
会连上 digitalocean ,创建 server ,生成 server-generated.yml ,里面会有新服务器的 IP
然后创建 ansible 的服务器列表 create-ansible config server.yml server-generated.yml -o inv.ini
然后写各个 server 的 playbook 。
这样的好处就是针对服务器的变更都是通过配置文件来修改,跟踪架构的变化, 同时看配置文件就知道多服务器系统怎么搭的了。
请问现在有没有类似的工具?谢谢~
1
jianyunet 2017-02-16 18:05:49 +08:00
ansilbe 是通用工具,本来就可以用
|
2
xderam 2017-02-16 18:54:00 +08:00 1
https://www.packer.io
{ "variables": { "aws_access_key": "", "aws_secret_key": "" }, "builders": [{ "type": "amazon-ebs", "access_key": "{{user `aws_access_key`}}", "secret_key": "{{user `aws_secret_key`}}", "region": "us-east-1", "source_ami": "ami-fce3c696", "instance_type": "t2.micro", "ssh_username": "ubuntu", "ami_name": "packer-example {{timestamp}}" }] } 应该是你需要的。 hashicorp 家有一整套你想要的工具链。 |
3
xderam 2017-02-16 18:55:17 +08:00
楼主是什么场景下用的这个呢?很好奇。
|
4
chenqh 2017-02-16 22:48:58 +08:00
不懂。。
|
5
DravenJohnson 2017-02-17 02:11:42 +08:00
ansible 不能用在服务器么?
|
6
halida OP @DravenJohnson ansible 不能创建服务器
|
7
halida OP @DravenJohnson 哦看了一下真的有,比如:
http://docs.ansible.com/ansible/digital_ocean_module.html 不过不知道怎么按照我的想法来设置 |
8
halida OP 看到一个教程:
https://the.binbashtheory.com/using-ansible-with-digitalocean/ 看来可以实现我的想法,就是写一个创建 server 的 playbook 就好了, 然后可以用脚本获得 digitalocean 的 servers 作为 inventory |