今天在部署Zabbix的Proxy时,在负责安装的Exec中去掉了一些无关的Package的依赖,结果,就出现了依赖关系的问题。

在zabbix::install中,我写的是require mysql::devel

class zabbix::install {

    require mysql::devel
....
Exec {"zabbix_install":
...
}
} define zabbix::config ( reuqire zabbix::install
... ) { ...
}

然后mysql那边的情况是

class mysql {
include mysql::install, mysql::initial, mysql::service
} class mysql::devel {
include mysql::install, mysql::install::devel, mysql::initial, mysql::service
}

上面mysqld这个类的依赖关系是:

  • mysql::service 依赖于 mysql::initial
  • mysql::initial 依赖于 mysql::install

实际上,mysql::install::devel只有一个包,但是如果继承的话,依赖关系就不好指定了。

根据Puppet官方说明,require除了include之外,还包含了先后顺序。

http://docs.puppetlabs.com/puppet/3/reference/lang_relationships.html

但是,为什么我这里require之后,就出现问题了呢?

执行的情况看起来是乱序的,总是先执行完Exec["zabbix_install"]之后,才会去部署Class["mysql::initial"]中的内容,所以自动部署的脚本总是失败。

最后,没有办法在Exec中添加了如下内容:

    ...
require => Class["mysql::service"]
...

这时候,执行的情况就是正常的,也没有出现mysql-devel的包在其之后安装的问题。

如果添加mysql::devel或者mysql,都会出现问题(一样的问题)。

这时回想起来,删除的包中有php-mysql,如果要安装该包,一定要先安装mysql-server。

从之前Zabbix Node的部署情况来看,其实也没有按照顺序进行部署,Server的依赖关系处理了一部分后,才去部署MySQL的。

puppet学习:类与类的依赖关系的问题的更多相关文章

  1. [UML]UML系列——类图class的依赖关系

    相关文章          [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       [UML]UML系列—— ...

  2. 类图class的依赖关系

    类图class的依赖关系 相关文章          [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       ...

  3. python 学习笔记(十四)有依赖关系的接口开发

    接口开发中存在很多有依赖关系的接口,例如:BBS中发帖的时候就需要进行校验用户是否登录,那么此时发帖的接口就与用户登录接口有依赖关系.在发帖时就需要先获取用户的session,与当前登录用户进行校验对 ...

  4. 初识UML类图--类之间关系

    前言 最近有打算学习一下设计模式,所以就去看了园子里面左潇龙大哥的设计模式文章,看完之后只有一个感觉,我啥时候也能写出来这么牛逼的文章啊,但是我这语文老师死的早的人还是算了,但是设计模式还是要学的,这 ...

  5. 2.java面向对象类与类/类与对象之间关系详解

    继承.实现.依赖.关联.聚合.组合的联系与区别 下面的内容很基础,同时也很简单,但是也很重要. 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功 ...

  6. 微软企业库5.0 学习之路——扩展学习篇、库中的依赖关系注入(重构 Microsoft Enterprise Library)[转]

    这篇文章是我在patterns & practices看到的一篇有关EntLib5.0的文章,主要介绍了EntLib5.0的这次的架构变化由来,觉得很不错,大家可以看一下! 在过去几年中,依赖 ...

  7. 终于明白六大类UML类图关系了

    UML,全称Unified Modeling Language,统一建模语言.而UML图分为用例图.类图.对象图.状态图.活动图.时序图.协作图.构件图.部署图等9种图. 在面向对象语言中,我们经常看 ...

  8. [UML]UML系列——类图class的泛化关系

    系列文章       [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       [UML]UML系列——类图C ...

  9. [UML]UML系列——类图class的实现关系Realization

    系列文章 [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       [UML]UML系列——类图Class   ...

  10. 图解UML类与类之间的六中关系

    大话设计模式上的一个图,我用EA画出来的:  UML中的6大关系相关英文及音标:  依赖关系 dependency [di'pendənsi]  关联关系 association  [ə,səuʃi' ...

随机推荐

  1. 实时数据处理环境搭建flume+kafka+storm:0.环境依赖

    storm需要java和Python  部署依赖环境 --- 要求Java 6+ .Python 2.6.6+   java,python安装配置完成       

  2. Linux学习笔记(5)-进程管理

    进程简介 进程是正在执行的一个程序或命令,每一个进程都有自己的地址空间,并占有一定的系统资源.感性的认识,进程就是一个正在运行的程序 进程管理的作用 判断服务器的运行状态 查看系统中有哪些进程 杀死进 ...

  3. 一个简单的js计数器(web储存)。

    <span id="countspan"></span> <a href="#" onclick="countNumbe ...

  4. mysql 获取季度的第一天 本月的第一天,本周的第一天sql语句(转)

    感谢:http://www.111cn.net/database/110/d45124323da8d2d87b80f78319987eda.htm 查看同主题的另一篇博客:http://blog.cs ...

  5. Spring aop与HibernateTemplate——session管理(每事务一次 Session)

    一.HibernateTemplate与Spring aop简介 参见http://bbs.csdn.net/topics/340207475中网友blueram的发言.(感谢blueram) 二.在 ...

  6. 用JavaScript获取页面上被选中的文字的技巧

    这里介绍的一个小技巧是如何用JavaScript获取页面上被选中的文字的方法.最关键的JavaScript API是: event.selection = window.getSelection(); ...

  7. WCF服务的创建和发布到IIS

    一. WCF服务的创建 有两种创建方式: 1.WCF服务库 2.WCF服务应用程序 如下图所示: 这里选择WCF服务库.注意事项: 1.WCF服务库是一个类库项目,这里选择.net 3.5版本(版本高 ...

  8. HDU4651+数学公式

    见Goolgle http://zh.wikipedia.org/zh-cn/%E6%95%B4%E6%95%B8%E5%88%86%E6%8B%86 /* 数学公式 ans[i]:i可以有ans[i ...

  9. samba配置smb.conf

    [share]      path = /home/phinecos/share      available = yes      browsealbe = yes      public = ye ...

  10. 杭电ACM(1002) -- A + B Problem II 大数相加 -提交通过

    杭电ACM(1002)大数相加 A + B Problem II Problem DescriptionI have a very simple problem for you. Given two ...