SaltStack 配置管理-状态间关系

require依赖

lamp-pkg-install:
  pkg.installed:
    - names:
      - php
      - php-cli
      - php-common
      - mysql
      - php-mysql
      - php-pdo

apache-service:
  pkg.installed:
    - name: httpd
  file.managed:
    - name: /etc/httpd/conf/httpd.conf
    - source: salt://files/httpd.conf
    - user: root
    - group: root
    - mode: 644
    - require:
      - pkg: apache-service   #文件管理依赖于pkg包的安装
  service.running:
    - name: httpd
    - enable: True

mysql-service:
  pkg.installed:
    - name: mysql-server
  file.managed:
    - name: /etc/my.cnf
    - source: salt://files/my.cnf
    - user: root
    - group: root
    - mode: 644
  service.running:
    - name: mysqld
    - enable: True

require_in依赖

lamp-pkg-install:
  pkg.installed:
    - names:
      - php
      - php-cli
      - php-common
      - mysql
      - php-mysql
      - php-pdo

apache-service:
  pkg.installed:
    - name: httpd
  file.managed:
    - name: /etc/httpd/conf/httpd.conf
    - source: salt://files/httpd.conf
    - user: root
    - group: root
    - mode: 644
    - require:
      - pkg: apache-service
  service.running:
    - name: httpd
    - enable: True

mysql-service:
  pkg.installed:
    - name: mysql-server
    - require_in:
      -file: mysql-service   #pkg这个包需要被文件管理模块所使用
  file.managed:
    - name: /etc/my.cnf
    - source: salt://files/my.cnf
    - user: root
    - group: root
    - mode: 644
  service.running:
    - name: mysqld
    - enable: True

watch依赖

lamp-pkg-install:
  pkg.installed:
    - names:
      - php
      - php-cli
      - php-common
      - mysql
      - php-mysql
      - php-pdo

apache-service:
  pkg.installed:
    - name: httpd
  file.managed:
    - name: /etc/httpd/conf/httpd.conf
    - source: salt://files/httpd.conf
    - user: root
    - group: root
    - mode: 644
    - require:
      - pkg: apache-service
  service.running:
    - name: httpd
    - enable: True
    - reload: True
    - watch:
      - file: apache-service   #每当file的文件修改,服务重新reload

mysql-service:
  pkg.installed:
    - name: mysql-server
    - require_in:
      - file: mysql-service
  file.managed:
    - name: /etc/my.cnf
    - source: salt://files/my.cnf
    - user: root
    - group: root
    - mode: 644
  service.running:
    - name: mysqld
    - enable: True

watch_in依赖

lamp-pkg-install:
  pkg.installed:
    - names:
      - php
      - php-cli
      - php-common
      - mysql
      - php-mysql
      - php-pdo

apache-service:
  pkg.installed:
    - name: httpd
  file.managed:
    - name: /etc/httpd/conf/httpd.conf
    - source: salt://files/httpd.conf
    - user: root
    - group: root
    - mode: 644
    - require:
      - pkg: apache-service
  service.running:
    - name: httpd
    - enable: True
    - reload: True
    - watch:
      - file: apache-service

mysql-service:
  pkg.installed:
    - name: mysql-server
    - require_in:
      - file: mysql-service
  file.managed:
    - name: /etc/my.cnf
    - source: salt://files/my.cnf
    - user: root
    - group: root
    - mode: 644
    - watch_in:
      - service: mysql-service   #文件file被watch_in监控,编辑后重启
  service.running:
    - name: mysqld
    - enable: True

watch_in也可以用于监控软件包的变化,如果安装的软件包有版本更新,也会导致服务的相应动作。

lamp-pkg-install:
  pkg.installed:
    - names:
      - php
      - php-cli
      - php-common
      - mysql
      - php-mysql
      - php-pdo

apache-service:
  pkg.installed:
    - name: httpd
    - watch_in:
      - service: apache-service
  file.managed:
    - name: /etc/httpd/conf/httpd.conf
    - source: salt://files/httpd.conf
    - user: root
    - group: root
    - mode: 644
    - require:
      - pkg: apache-service
  service.running:
    - name: httpd
    - enable: True
    - reload: True
    - watch:
      - file: apache-service

mysql-service:
  pkg.installed:
    - name: mysql-server
    - require_in:
      - file: mysql-service
  file.managed:
    - name: /etc/my.cnf
    - source: salt://files/my.cnf
    - user: root
    - group: root
    - mode: 644
    - watch_in:
      - service: mysql-service
  service.running:
    - name: mysqld
    - enable: True
时间: 2024-09-30 23:36:01

SaltStack 配置管理-状态间关系的相关文章

SaltStack实战之配置管理-状态间关系

SaltStack实战之配置管理-状态间关系 学习 SaltStack SaltStack实战之配置管理-状态间关系 1. 状态相关模块 1.1 pkg 1.2 file 1.3 service 1.4 requisites 2. 实际应用 1. 状态相关模块 1.1 pkg 状态模块:pkg 功能:管理软件包状态 常用方法: pkg.installed # 确保软件包已安装,如果没有安装则安装 pkg.latest # 确保软件包是最新版本,如果不是,则进行升级 pkg.remove # 确保

SaltStack配置管理--状态间的关系

SaltStack配置管理--状态间的关系 1.include的引用 需求场景:用于含有多个SLS的状态,使用include可以进行多个状态的组合 [[email protected] prod]# pwd /srv/salt/prod [[email protected] prod]# vim lamp.sls include: - apache.init - php.init - mysql.init [[email protected] prod]# vim ../base/top.sls

SaltStack配置管理--状态间的关系(六)

一.include的引用 需求场景:用于含有多个SLS的状态,使用include可以进行多个状态的组合,将安装apache,php,mysql集合在一个sls中 [[email protected] prod]# pwd /srv/salt/prod [[email protected] prod]# vim lamp.sls include: - apache.init - php.init - mysql.init [[email protected] prod]# vim ../base/

SaltStack配置管理-jinja模板

上一篇:SaltStack配置管理-状态间关系 需求:需要apache配置文件里面监听的端口是每个minion本地的地址 saltstack默认的模板是jinjia模板 参考文档:http://docs.jinkan.org/docs/jinja2/ 两种分隔符: {% ... %} 和 {{ ... }} .前者用于执行诸如 for 循环 或赋值的语句,后者把表达式的结果打印到模板上. 如何知道salt配置文件是一个模板 需要在sls配置文件里面定义 apache.init.sls 修改配置h

依赖注入与对象间关系

依赖注入(DI)是控制反转(IoC)的一种方式.目前,在.NET和Java领域已经有相当多基于DI思想的对象容器,如:Spring,Unity等.本文试图避免重复性地介绍DI基础知识和DI容器的使用,而是希望深一层探讨DI的本质和对象间关系,以达到合理设计避免滥用DI的目的. 依赖注入 vs 创建对象 有不少地方这样描述:"依赖注入改变了使用对象前先创建的传统方式,而是从外部注入依赖的对象".这样的描述其实似是而非,先来看一个例子: interface ICar{     void R

进程间关系

POSIX规定一个进程内部的多个thread要共享一个PID, 但是,在linux kernel中不论是进程还是线程,都是会分配一个task struct并且分配一个唯一的PID(这时候PID其实就是thread ID). 这样,为了满足POSIX的线程规定,linux引入了线程组的概念,一个进程中的所有线程所共享的那个PID被称为线程组ID,也就是task struct中的tgid成员. 因此,在linux kernel中,线程组ID(tgid,thread group id)就是传统意义的进

(转)进程间关系:进程、僵尸进程、孤儿进程、进程组、前台进程组、后台进程组、孤儿进程组、会话、控制终端

不同的shell对使用管道线时创建子进程的顺序不同,本文以bash为例,它是支持作业控制的shell的典型代表. 僵尸进程与孤儿进程 僵尸进程:先于父进程终止,但是父进程没有对其进行善后处理(获取终止子进程有关信息,释放它仍占有的资源).消灭僵尸进程的唯一方法是终止其父进程.孤儿进程:该进程的父进程先于自身终止.其特点是PPID=1(init进程的ID).一个孤儿进程可以自成孤儿进程组. 文中用到的缩写 PID = 进程ID (由内核根据延迟重用算法生成)PPID = 父进程ID(只能由内核修改

Rhythmk 学习 Hibernate 05 - Hibernate 表间关系 [ManyToOne,OneToMany]

1.项目结构: 1.1.场景说明: 一个订单,包含多个产品 1.2.类文件: Order.java ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 package com.rhythmk.model; import java.util.Date; public

Rhythmk 学习 Hibernate 05 - Hibernate 表间关系 [One To One]

1.One To One 单相 背景: 古代一个老婆  只能关联一个老公 husband.java ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package com.rhythmk.model; public class husband {          public Integer getHusbandId() {         return husbandId;     }     public void setHusba