最近研究了 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 。
这样的好处就是针对服务器的变更都是通过配置文件来修改,跟踪架构的变化, 同时看配置文件就知道多服务器系统怎么搭的了。
请问现在有没有类似的工具?谢谢~
|  |      1jianyunet      2017-02-16 18:05:49 +08:00 ansilbe 是通用工具,本来就可以用 | 
|  |      2xderam      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 家有一整套你想要的工具链。 | 
|  |      3xderam      2017-02-16 18:55:17 +08:00 楼主是什么场景下用的这个呢?很好奇。 | 
|      4chenqh      2017-02-16 22:48:58 +08:00 不懂。。 | 
|  |      5DravenJohnson      2017-02-17 02:11:42 +08:00 ansible 不能用在服务器么? | 
|  |      6halida OP @DravenJohnson ansible 不能创建服务器 | 
|  |      7halida OP @DravenJohnson 哦看了一下真的有,比如: http://docs.ansible.com/ansible/digital_ocean_module.html 不过不知道怎么按照我的想法来设置 | 
|  |      8halida OP  1 看到一个教程: https://the.binbashtheory.com/using-ansible-with-digitalocean/ 看来可以实现我的想法,就是写一个创建 server 的 playbook 就好了, 然后可以用脚本获得 digitalocean 的 servers 作为 inventory |