有什么利用配置文件定义服务器的工具,类似 ansible 但是是针对服务器的

2017-02-16 17:53:52 +08:00
 halida

最近研究了 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 。

这样的好处就是针对服务器的变更都是通过配置文件来修改,跟踪架构的变化, 同时看配置文件就知道多服务器系统怎么搭的了。

请问现在有没有类似的工具?谢谢~

3889 次点击
所在节点    DevOps
8 条回复
jianyunet
2017-02-16 18:05:49 +08:00
ansilbe 是通用工具,本来就可以用
xderam
2017-02-16 18:54:00 +08:00
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 家有一整套你想要的工具链。
xderam
2017-02-16 18:55:17 +08:00
楼主是什么场景下用的这个呢?很好奇。
chenqh
2017-02-16 22:48:58 +08:00
不懂。。
DravenJohnson
2017-02-17 02:11:42 +08:00
ansible 不能用在服务器么?
halida
2017-02-17 12:38:53 +08:00
@DravenJohnson ansible 不能创建服务器
halida
2017-02-17 12:40:55 +08:00
@DravenJohnson 哦看了一下真的有,比如:
http://docs.ansible.com/ansible/digital_ocean_module.html

不过不知道怎么按照我的想法来设置
halida
2017-02-17 16:27:46 +08:00
看到一个教程:
https://the.binbashtheory.com/using-ansible-with-digitalocean/
看来可以实现我的想法,就是写一个创建 server 的 playbook 就好了,
然后可以用脚本获得 digitalocean 的 servers 作为 inventory

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/340960

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX