首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 Chef 自动化部署一个 Web 服务器(3)

使用 Chef 自动化部署一个 Web 服务器(3)

获取服务器信息Chef 不光可以管理服务器,同时服务器将自己的信息上传至 Chef 服务器。使用如下命令查看当前组织里被管理的服务器:
1
knife node list




使用如下命令查看服务器信息,包括服务器的 IP 地址、机器名、操作系统等信息:
1
knife node show node1




有了这些信息后,我们可以重新修改模板,让其显示给定服务器的信息:
清单 4. index.html.erb
1
2
3
4
5
<html>
<body>
<h1>hello from <%= node['fqdn'] %></h1>
</body>
</html>




再将“烹饪手册”上传至 Chef 服务器,然后使用如下命令配置服务器:
1
2
knife ssh {{address}} 'sudo chef-client' --manual-list \
--ssh-user {{user}} --ssh-password '{{password}}'




同理,将{{address}}、{{user}}、{{password}}替换为待配置服务器的真实地址、用户名和密码。打开浏览器,输入服务器地址,看看改动是否生效?
只要一台服务器配置成功,我们便可以用同样的方法配置几十台、上百台。而且一旦配置发生变化,我们只需修改脚本,所有服务器便可以获得相同的更新,这个时候,Chef 的威力就显示出来了。
chef 还是 knife?细心的您可能会注意到,上面的命令,一些是 chef *****,一些却是 knife *****。初次接触 Chef,很容易被这些命令搞混。这里有一个简单的规则:本地执行的命令以 chef 打头,需要远程连接到 Chef 服务器或待配置服务器的命令以 knife 打头。
最后,让我们再复习一遍本文中所使用到的命令:
  • 运行“菜谱”
    1
    chef-client --local-mode hello.rb




  • 使用 Chef 生成“烹饪手册”
    1
    chef generate cookbook learn_chef_httpd




  • 使用 Chef 生成模板
    1
    chef generate template learn_chef_httpd index.html




  • 使用 Chef 运行“烹饪手册”
    1
    chef-client --local-mode –runlist ‘recipe[learn_chef_httpd]’




  • 从 Chef 超市下载“烹饪手册”
    1
    knife cookbook site download learn_chef_httpd




  • 向 Chef 服务器上传“烹饪手册”
    1
    knife cookbook upload learn_chef_httpd




  • 服务器自举
    1
    2
    3
    knife bootstrap {{address}} --ssh-user {{user}} --ssh-password '{{password}}' \
    --sudo --use-sudo-password --node-name node1 \
    --run-list 'recipe[learn_chef_httpd]'




  • 获取当前组织下的服务器列表
    1
    knife node list




  • 显示服务器信息
    1
    knife node show node1




  • 使用 Chef 远程运行“烹饪手册”,配置服务器
    1
    2
    knife ssh {{address}} 'sudo chef-client' --manual-list \
    --ssh-user {{user}} --ssh-password '{{password}}'




结束语随着云计算和 DevOps 技术的发展,有人断言系统管理员和 DBA 会面临失业,未来的云计算公司和数据库公司只会雇佣少数系统管理员和 DBA 管理他们的 IT 基础设施和数据库。虽然作者不大赞成“机器替代人工”这一观点,但提早下手,学点东西总不是坏事,所谓技多不压身嘛。
Chef 能够实现服务器配置的自动化,在 DevOps 运动中占有重要的位置。本文通过一个配置 Web 服务器的例子,一步步引导大家如何使用 Chef。希望您读完本文,能编写出自己的第一个“烹饪手册”。
返回列表