自动化运维工具saltstack(二)---grains、pillar、job cache、jinja模板详解与nginx、keepalived服务的配置

1.配置管理(续)

现在,在上一篇博文的基础上,继续讲一下配置管理。补充一下sls文件的知识:
 Salt 状态系统的核心是SLS,或者叫SaLt State 文件。
 SLS表示系统将会是什么样的一种状态,而且是以一种很简单的格式来包含这些数据,常被叫做配置管理。
 sls文件命名:
 sls文件以”.sls”后缀结尾,但在调用是不用写此后缀。
 使用子目录来做组织是个很好的选择。
  init.sls 在一个子目录里面表示引导文件,也就表示子目录本身, 所以apache/init.sls 就是表示apache.
 如果同时存在apache.sls 和 apache/init.sls,则 apache/init.sls 被忽略,apache.sls将被用来表示 apache.

(1)想要批量执行上一篇博客中的apache.install,在base目录下准备top.sls文件:

# vim /srv/salt/top.sls
base:
  '*':
    - apache.install

在这里插入图片描述
(2)批量执行:

salt '*' state.highstate
在这里插入图片描述

在这里插入图片描述
可以看到server2和server3都执行了apache.install,在server3上查看进程
在这里插入图片描述
(3)现在,想要在server3中推nginx服务,那么nginx如何推呢?install.sls文件怎么写呢?具体操作如下:
base模式下,建立nginx子目录,并在子目录下建立files目录,获取nginx安装到到files目录下:

[root@server1 salt]# pwd
/srv/salt
[root@server1 salt]# mkdir nginx
[root@server1 salt]# cd nginx/
[root@server1 nginx]# scp root@172.25.33.250:/home/kiosk/Desktop/nginx-1.15.8.tar.gz .
The authenticity of host '172.25.33.250 (172.25.33.250)' can't be established.
ECDSA key fingerprint is SHA256:Bb8c7OXdsCYqQj0jSzzS/ESbOEP/47vePQXgV4L86es.
ECDSA key fingerprint is MD5:6d:4e:ce:d1:b5:65:f4:cb:0a:21:0b:b8:45:a7:1a:b7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.25.33.250' (ECDSA) to the list of known hosts.
root@172.25.33.250's password: 
nginx-1.15.8.tar.gz                           100% 1004KB  36.9MB/s   00:00    
[root@server1 nginx]# mkdi files
-bash: mkdi: command not found
[root@server1 nginx]# mkdir files
[root@server1 nginx]# mv nginx-1.15.8.tar.gz files
[root@server1 nginx]# cd files/
[root@server1 files]# ls
nginx-1.15.8.tar.gz

在这里插入图片描述

nginx子目录下准备install.sls文件:

##拆分的写Install.sls文件,先写简单操作,nginx压缩文件的解压
[root@server1 nginx]# cat install.sls 
install-nginx:
  file.managed:
    - name: /mnt/nginx-1.15.8.tar.gz
    - source: salt://nginx/files/nginx-1.15.8.tar.gz

  cmd.run:
    - name: cd /mnt && tar zxf nginx-1.15.8.tar.gz && cd nginx-1.15.8
#进行推送,结果如下:

在这里插入图片描述
在这里插入图片描述

##现在,进行nginx的编译,install.sls文件如下:
include:
  - pkgs.install          ##将编译过程中使用的依赖性软件,写成Install.sls文件,包含进来

install-nginx:
  file.managed:
    - name: /mnt/nginx-1.15.8.tar.gz
    - source: salt://nginx/files/nginx-1.15.8.tar.gz

  cmd.run:
    - name: cd /mnt && tar zxf nginx-1.15.8.tar.gz && cd nginx-1.15.8 && sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && ./configure --prefix=/usr/local/nginx && make && make install
    - creates: /usr/local/nginx
[root@server1 nginx]# mkdir ../pkgs
[root@server1 nginx]# vim ../pkgs/install.sls
[root@server1 nginx]# cat ../pkgs/install.sls
nginx-make:     ##nginx编译所需软件
  pkg.installed:
    - pkgs:
      - gcc:
      - make
      - zlib-devel
      - pcre-devel
##进行推送,结果如下:

在这里插入图片描述

##客户端执行结果 通过4506返回给master端 通过zmq消息队列实现的
返回结果实际上是保存的缓存里的 /var/cache/salt/master/jobs  会保存24小时 
在生产实际中是将缓存数据和数据库结合在一起的
[root@server1 nginx]# cd /var/cache
[root@server1 cache]# ls
ldconfig  man  salt  yum
[root@server1 cache]# cd salt/
[root@server1 salt]# cd master/
[root@server1 master]# cd jobs/
[root@server1 jobs]# ls
13  20  4b  57  59  60  61  77  86  98  9f  a0  a8  ad  ae  e1  eb  f2  f5  f6

在这里插入图片描述

##准备nginx.conf到files目录下,并修改nginx.conf文件,使worker进程适应远程主机的cpu数
[root@server1 nginx]# pwd
/srv/salt/nginx
[root@server1 nginx]# ls
files  install.sls  service.sls
[root@server1 nginx]# cd files/
[root@server1 files]# scp root@172.25.33.3:/usr/local/nginx/conf/nginx.conf .
root@172.25.33.3's password: 
nginx.conf                                    100% 2656     1.3MB/s   00:00    
[root@server1 files]# ls
nginx-1.15.8.tar.gz  nginx.conf
[root@server1 files]# vim nginx.conf 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值