技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 其他 --> puppet手册之建立软件安装源

puppet手册之建立软件安装源

浏览:1612次  出处信息
ex4 alt2">require => Package["apache2-mpm-worker"],
notify => Service["apache2"],
}
file { "/etc/apache2/sites-enabled/gemrepo":
ensure => symlink,
target => "/etc/apache2/sites-available/gemrepo",
require => File["/etc/apache2/sites-available/gemrepo"],
notify => Service["apache2"],
}
file { "/var/gemrepo":
ensure => directory,
}
}

2.创建/etc/puppet/modules/repo/files/gemrepo.conf 文件,内容如下:

1
2
3
4
5
6
7
8
9
10
<VirtualHost *:80>
ServerAdmin john@bitfieldconsulting.com
ServerName gems.bitfieldconsulting.com
ErrorLog logs/gems.bitfieldconsulting.com-error_log
CustomLog logs/gems.bitfieldconsulting.com-access_log common
Alias / /var/gemrepo/
<Location />
Options Indexes
</Location>
</VirtualHost>

3.添加下面代码到你的节点:

1
2
3
node cookbook {
include repo::gem-server
}

4.运行Puppet:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# puppet agent --test
info: Retrieving plugin
info: Caching catalog for cookbook.bitfieldconsulting.com
info: Applying configuration version '1304949279'
notice: /Stage[main]/Repo::Gem-server/File[/etc/apache2/sites-
available/gemrepo]/ensure: defined content as '{md5}ae1fd948098f14
503de02441d02a825d'
info: /Stage[main]/Repo::Gem-server/File[/etc/apache2/sites-
available/gemrepo]: Scheduling refresh of Service[apache2]
notice: /Stage[main]/Repo::Gem-server/File[/etc/apache2/sites-
enabled/gemrepo]/ensure: created
info: /Stage[main]/Repo::Gem-server/File[/etc/apache2/sites-
enabled/gemrepo]: Scheduling refresh of Service[apache2]
notice: /Stage[main]/Apache/Service[apache2]: Triggered 'refresh'from 2 events
notice: /Stage[main]/Repo::Gem-server/File[/var/gemrepo]/ensure:created
notice: Finished catalog run in 6.52 seconds

它是如何工作的….
极其像APT 源,并遵循相同的原则,我们定义了一个gem仓库的目录,并定义了一个虚拟
主机,确保它能响应gems.bitfieldconsulting.com请求.

还有更多…
同样的,你如果把某些东西放到gem仓库也是非常有用的,下面会演示如何去做,
以及如何配置节点能访问gem 仓库.

添加gems

增加一个新的gems到你的仓库非常简单.把gem 放到 /var/gemrepo/gems ,并在
/var/gemrepo目录运行gem generate_index命令.

1
# gem generate_index

使用gem 仓库

和APT 仓库一样,确保节点知道gems 源主机的主机名bitfieldconsulting.com,
,它通常使用Puppet来部署主机条目,或者配置DNS.
然后,你可以在Puppet指定一个软件包,如下所示:

1
2
3
4
package { "json":
provider => "gem",
}

顺便说一句,由于在天朝,rubygems.org无法正常使用,你懂的,需要拨vpn才可以,推荐大家使用

taobao的镜像作为源.地址为:http://ruby.taobao.org/


[总结]

puppet cookbook系列未完待续,下一小节,就介绍最后两小节的,在puppet中如何使用源文件

来自动构建软件包,以及在puppet中如何比较软件包的版本,因为我们在运维工作中,经常

会遇到软件包要统一版本管理,我们可以在puppet使用versioncmp来比较app版本,进而

让我们明确是否需要更新app版本.详情,期待下文.

建议继续学习:

  1. 使用Apache 和Passenger来运行puppetmaster    (阅读:7030)
  2. 自动化运维之企业实际案例分析    (阅读:3804)
  3. puppet使用rsync来同步文件教程    (阅读:3309)
  4. DevOps之Puppet    (阅读:2988)
  5. 如何有效运行puppet cron任务以及如何触发运行puppet    (阅读:3024)
  6. puppet vagrant 管理VirtualBox 虚拟机    (阅读:2740)
  7. puppet运维之使用自定义函数    (阅读:2650)
  8. puppet extlookup 和puppet hiera使用    (阅读:2255)
  9. puppetmaster集群解决方案之puppet客户端共享一张证书    (阅读:1975)
  10. puppet 手册检查puppet配置文件和使用puppet tags    (阅读:1634)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:很容易忽略的ETS表个数限制问题
后一篇:SecureCRT for Mac OS X 6.7.3破解方法 >>
文章信息
建议继续学习
近3天十大热文
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1