跳到正文
网络寻租
返回

用chef对少量服务器进行配置管理

原先介绍了chef,现在需要面对一个实际的问题:如何用chef管理少量的服务器。

我希望:

我采用的解决方案:

都弄好之后,可以写这样的服务器配置文件:

---
  # 服务器名字
  name: "test"
  # 基础配置的recipe
  base-system:
    # 是否跑软件包更新
    update: false
    # 是否设置自动更新
    auto-upgrade: true

    # base-system会自动创建一个deployer管理员用户,谁可以通过公钥的方式访问这个用户
    authorized_keys:
      - "linjunhalida"

    # 写在databags里面的配置参数,可以连接到slack发提醒
    notify: 'test'
    # 是否每天判断服务器是否需要重启或者更新
    check:
      need_reboot: true
      need_upgrade: true
    # 设置服务器定期重启
    schedule-reboot:
      minute: '26'
      hour: '8'
      weekday: '2'
    # 设置服务器自动升级安全更新
    schedule-upgrade:
      reboot: true
      minute: '1'
      hour: '0'
      weekday: '1'
    # 服务器启动的时候跑的应用
    start:
      - name: "railsapp"
        user: 'deployer'
        pwd: '/home/deployer/apps/railsapp/current'
        cmds:
          - 'bundle exec thin restart -C config/thin.yml'
          - 'RAILS_ENV=staging bundle exec rake resque:restart_workers'
          - 'RAILS_ENV=staging bundle exec rake ts:restart'

  run_list:
    - "recipe[chef-solo-search]" # so chef-solo search can work
    - "recipe[base-system]"

chef部署之后,会创建目录/etc/base-system,里面存放各种配置和执行脚本,同时安装到crontab,/etc/rc.local等各种地方。 服务器的关键操作,比如重启,安全更新结果,都会通过notify功能汇报到slack上面。 我可以通过node配置文件,清晰看到每台服务器是如何配置的。并且这个系统可以演化,更换一种配置方式,只需要重新跑一下部署。

不过还是有一些难办的问题:


分享这篇文章:

上一篇
正确使用社交网络的方法
下一篇
学习ASP.NET心得

评论

评论通过 GitHub 账号发布,需要先使用 GitHub 登录。