lamp自动部署工具_SaltStack配置管理学习笔记-LAMP自动化部署简单案例

前边针对Saltstack进行了大量基础知识以及组件 、方法和state方面的介绍,该实战一次了,下边针对实际安装案例lamp安装做一个笔记。该笔记主要是lamp一个环境的安装实例,引入了ID声明和Names声明,以及source的路径问题。知道以后编写类型的功能,需要如何入手来进行规划。

首先先梳理一下流程,我将lamp设置到的是/srv/salt/dev这个开发环境中:

(1)要实现lamp的批量安装,需要yum一个包,那就用到pkg.installed。

(2)然后涉及一个匹配文件的统一,那么需要我们file.managed来实现。

(3)配置完以后我们需要将服务启动病设置系统自启动,需要用到service.running ,那么基本lamp就完成了。其中这三个组件也是上次笔记《Saltstack配置管理学习笔记:配置管理概述》已经对pkg file和service这三个组件的用法的实战练习。好了,动手搞:

1,我们先设置入口文件top.sls

[[email protected] salt]# cat top.sls

base:

'*':

- init.dns

dev:

'miniontest':

- lamp

top.sls这里指定了我们lamp.sls的目录位于dev这个环境,操作target为 saltstack-node2.example.com,指定的sls文件为lamp.sls (绝对路径/srv/salt/dev/lamp.sls)

2,开始写lamp.sls这个文件:

[[email protected] dev]# vi lamp.sls 内容如下:

lamp-pkg-install:

pkg.installed:

- names:

- httpd

- php

- php-cli

- php-common

- mysql

- mysql-server

- php-mysql

- php-pdo

apache-service:

file.managed:

- name: /etc/httpd/conf/httpd.conf

- source: salt://files/httpd.conf

- user: root

- group: root

- mode: 644

service.running:

- name: httpd

- enable: True

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

我们这个lamp.sls 文件基本有如下内容:

(1)lamp-pkg-install  以及apache-servie mysql-service 都是一个ID声明,模块是禁止开头写的,注意下每个ID都是唯一的。如果同名,那么优先匹配到的ID会先执行。

(2)name声明。之前我们操作init.dns 的时候,我们是将/etc/resolv.conf 放到了第一位,这里我们file.managed的时候,下边通过-name 指定了操作对象。

(3)通过该文件书写,我们还练习了pkg.installed  file.managed 以及service.running的用法。 当然里边的一些参数比如哪个用户运行 以及服务名定义,可以自己来指定,这里主要是做测试使用。

(4)对比文件我们放到了/srv/salt/dev/files目录中,里边file.managed的时候我们通过source:  salt://file 进行了指定。注意这里已经选择了dev目录,不要写成salt://dev/files。其中httpd.conf my.cnf是我们已经配置好的文件为标准。注意下salt://为当前根目录,以top.sls指定的环境为基准。

3,执行结果

master端:salt ‘miniontest’  state.highstate 执行结果如下

----------

ID: lamp-pkg-install

Function: pkg.installed

Name: httpd

Result: True

Comment: Package httpd is already installed.

Started: 00:55:22.265846

Duration: 545.714 ms

Changes:

----------

ID: lamp-pkg-install

Function: pkg.installed

Name: mysql

Result: True

Comment: Package mysql is already installed.

Started: 00:55:22.819381

Duration: 0.664 ms

Changes:

----------

ID: apache-service

Function: file.managed

Name: /etc/httpd/conf/httpd.conf

Result: True

Comment: File /etc/httpd/conf/httpd.conf is in the correct state

Started: 00:55:22.821636

Duration: 4.835 ms

Changes:

----------

ID: mysql.service

Function: file.managed

Name: /etc/my.cnf

Result: True

Comment: File /etc/my.cnf is in the correct state

Started: 00:55:22.863781

Duration: 5.222 ms

Changes:

----------

ID: mysql.service

Function: service.running

Name: mysqld

Result: True

Comment: Service mysqld is already enabled, and is in the desired state

Started: 00:55:22.869160

Duration: 53.577 ms

Changes:

Summary

-------------

Succeeded: 13

Failed: 0

-------------

Total states run: 13

可以看到已经成功,限于篇幅,我这里省略了一些ID的显示。下边看下minion端的安装情况:

[email protected]]# netstat -tnlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1009/redis-server

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1047/sshd

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1123/master

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2477/mysqld

tcp 0 0 :::80 :::* LISTEN 2539/httpd

tcp 0 0 :::22 :::* LISTEN 1047/sshd

tcp 0 0 ::1:25 :::* LISTEN 1123/master

可以看到服务apache mysql已经启动,下边我们看下服务随系统启动情况:

[[email protected]]# chkconfig --list httpd

httpd 0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

[[email protected]]# chkconfig --list mysqld

mysqld 0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

好了,安装lamp已经成功。

4,测试执行:

访问查看apache:

访问测试php环境:

查看mysql:

搞定,收工。 笔记到此结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值