saltstack的探索-安装vim、nginx服务和配置、自定义脚本

1. 配置minion
首先,移除原来的测试minion
[[email protected] bin]# salt-key -d test230
The following keys are going to be deleted:
Accepted Keys:
test230
Proceed? [N/y] y
Key for minion test230 deleted.

新增minion:
【svr205-2】
[[email protected] ~]# yum install salt-minion -y
[[email protected] ~]# vim /etc/salt/minion
master: 10.0.200.21
id: svr205-2

[[email protected] ~]# service salt-minion start
Starting salt-minion daemon:                               [  OK  ]

【svr205-2, 3, 4, 5类似】同上

2. 配置master和minion的key
[[email protected] bin]# salt-key -L
Accepted Keys:
Unaccepted Keys:
svr205-2
svr205-3
svr205-4
svr205-5
Rejected Keys:

[[email protected] bin]# salt-key -a svr205*
The following keys are going to be accepted:
Unaccepted Keys:
svr205-2
svr205-3
svr205-4
svr205-5
Proceed? [n/Y] y
Key for minion svr205-2 accepted.
Key for minion svr205-3 accepted.
[[email protected] bin]# salt-key -L
Accepted Keys:
svr205-2
svr205-3
svr205-4
svr205-5
Unaccepted Keys:
Rejected Keys:

测试:
[[email protected] salt]# salt ‘svr205-*‘ test.ping
svr205-3:
    True
svr205-2:
    True
svr205-5:
    True
svr205-4:
    True

3. 配置管理-同步vim配置
[[email protected] salt]# pwd
/srv/salt
[[email protected] salt]# cat edit/vim.sls 
vim-enhanced:
    pkg.installed: []

/root/.vimrc:
    file.managed:
        - source: salt://edit/conf/vimrc
        - mode: 644
        - uesr: root
        - group: root
[[email protected] salt]# ls edit/conf/
vimrc

[[email protected] salt]# salt ‘svr205-*‘ state.sls edit.vim
##########################################################################
略
##########################################################################

4. 远程执行-在4台主机上执行脚本lvs-realsvr,并加入开机启动。
启动脚本:
[[email protected] salt]# cat lvs/real/start.sls 
/etc/rc.d/init.d/lvs-realsvr:
  file.managed:
    - source: salt://lvs/bin/lvs-realsvr.sh
    - mode: 755

lvs-realsvr:
  cmd.run:
    - require:
      - file: /etc/rc.d/init.d/lvs-realsvr
    - name: service lvs-realsvr start && chkconfig lvs-realsvr on

关闭脚本:
[[email protected] salt]# cat lvs/real/stop.sls 
/etc/rc.d/init.d/lvs-realsvr:
  file.managed:
    - source: salt://lvs/bin/lvs-realsvr.sh
    - mode: 755

lvs-realsvr:
  cmd.run:
    - require:
      - file: /etc/rc.d/init.d/lvs-realsvr
    - name: service lvs-realsvr stop && chkconfig lvs-realsvr off

控制脚本:
[[email protected] salt]# cat lvs/bin/lvs-realsvr.sh 
#!/bin/bash
# 
# 2015/2/28
# lvs real server
#
# chkconfig:   - 85 15
# description:  control vip on lvs realserver 

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

lockfile="/var/lock/subsys/lvs-real"
  
s_vip=‘10.0.205.100‘

start() {
  ifconfig lo:1 ${s_vip} netmask 255.255.255.255 broadcast ${s_vip}
  route add -host ${s_vip} dev lo:1
  echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo 2 >/proc/sys/net/ipv4/conf/lo/arp_announce
  echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
  echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce

  retval=$?
  echo
  [ $retval -eq 0 ] && touch $lockfile
  return $retval
}

stop() {
  echo 0 >/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo 0 >/proc/sys/net/ipv4/conf/lo/arp_announce
  echo 0 >/proc/sys/net/ipv4/conf/all/arp_ignore
  echo 0 >/proc/sys/net/ipv4/conf/all/arp_announce
  ifconfig lo:1 down
  route del -host ${s_vip}

  retval=$?
  echo
  [ $retval -eq 0 ] && rm -f $lockfile
  return $retval
}

status() {
  ip a |grep inet |grep -v inet6  
}

case $1 in  
  start)
    start
    status
    ;;
  stop)
    stop
    status
    ;;
  status)
    status
    ;;
  *)  
    echo $"Usage: $0 {start|stop|status}"
    exit 2 
esac  
   
   
执行:
[[email protected] salt]# salt ‘svr205-*‘ state.sls lvs.real.start
##########################################################################
略
##########################################################################
查看minion的状态:
【svr205-2】
[[email protected] ~]# ll /etc/init.d/lvs-realsvr 
-rwxr-xr-x 1 root root 1252 Feb 28 05:31 /etc/init.d/lvs-realsvr
[[email protected] ~]# ip a |grep inet |grep -v inet6
    inet 127.0.0.1/8 scope host lo
    inet 10.0.205.100/32 brd 10.0.205.100 scope global lo:1
    inet 10.0.205.2/8 brd 10.255.255.255 scope global eth0

    
[[email protected] salt]# salt ‘svr205-*‘ state.sls lvs.real.stop
##########################################################################
略
##########################################################################
查看minion的状态:
【svr205-2】
[[email protected] ~]# ip a |grep inet |grep -v inet6
    inet 127.0.0.1/8 scope host lo
    inet 10.0.205.2/8 brd 10.255.255.255 scope global eth0
   

5. 配置管理-安装nginx服务,并加入开机启动。
[[email protected] salt]# cat nginx/init.sls 
nginx:
  pkg.installed: []
  service.running:
    - require:
      - pkg: nginx
  cmd.run:
    - require:
      - pkg: nginx
    - name: chkconfig nginx on

[[email protected] salt]# salt ‘svr205-*‘ state.sls 
##########################################################################
略
##########################################################################

深入一步,使用模版部署自定义的index.html,更新nginx首页,显示当前web主机的hostname和ip信息。
[[email protected] salt]# cat nginx/init.sls 
nginx:
  pkg.installed: []
  service.running:
    - watch:
      - file: /usr/share/nginx/html/index.html
    - require:
      - pkg: nginx
  cmd.run:
    - require:
      - pkg: nginx
    - name: chkconfig nginx on

/usr/share/nginx/html/index.html:
  file.managed:
    - source: salt://nginx/conf/index.html
    - template: jinja

[[email protected] salt]# cat nginx/conf/index.html 
<p>
  HOST:   {{ grains[‘host‘] }} <br />
  <br /><br />
{% for k,v in grains.get(‘ip4_interfaces‘).items() %}
  {{ k }}: {{ v.pop() }} <br />
{% endfor %}
</p>

[[email protected] salt]# salt ‘svr205-*‘ state.sls nginx
##########################################################################
略
##########################################################################

查看文件是否有改变:
【svr205-2】
[[email protected] ~]# cat /usr/share/nginx/html/index.html 
<p>
  HOST:   svr205-2 <br />
  <br /><br />

  lo: 10.0.205.100 <br />

  eth0: 10.0.205.2 <br />

</p>

如上,得到了该主机的hostname和ip信息,符合预期。
时间: 2024-10-07 06:47:28

saltstack的探索-安装vim、nginx服务和配置、自定义脚本的相关文章

FastDFS安装与nginx反向代理配置

操作系统 Ubuntu Server nginx相关软件 nginx-1.10.1 http://nginx.org/en/download.html nginx清除缓存模块 ngx_cache_purge-2.3 http://labs.frickle.com/nginx_ngx_cache_purge/ pcre-8.36 https://sourceforge.net/projects/pcre/files/pcre/8.36/ zlib库 http://zlib.net/zlib-1.2

nginx服务端配置pdf文件下载

默认情况下,通过nginx服务器来访问pdf文件,在浏览器上是会直接打开该pdf文件呈现内容的.如果想要访问pdf文件时,实现下载文件的效果,则需要在nginx服务端做一些配置. # vi nginx.conf  location /{   if ($request_filename ~*^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){   add_header Content-Disposition:'attachment;';

saltstack的探索-给zabbix客户端推送一个自定义的配置文件

目的:使用zabbix监控指定的内容,例如某个进程是否存在,因此我们推送一个自定义的zabbix配置到指定的客户端,然后重启zabbix-agent服务. 目录和脚本: [[email protected] zabbix]# ls agent.sls  bin  conf  sbin  template.sls [[email protected] zabbix]# cat conf/myapp_process.conf  UserParameter=myapp.process.get[*], 

mysql和nginx服务是否正常监控脚本

一.监控web服务器和mysql方法 1.监控端口(nginx也相同) 1.1本地监控 netstat -tunlp|grep 3306|wc -l ss -tunlp|grep 3306|wc -l 1.2远程监控 nmap 10.117.33.98 -p 3306|grep open|wc -l echo -e "\n"|telnet 10.117.33.98 3306 2>/dev/null |grep Connected|wc -l 2.监控进程(nginx同) ps -

Nginx服务优化配置

1.expires缓存模块 具体配置可参考官方文档 http://nginx.org/en/docs/http/ngx_http_headers_module.html#expires [[email protected] conf]# cat nginx.conf | egrep -v "#|^$" user nginx; worker_processes 1; events { worker_connections 1024; } http { include mime.types

Lamp架构部署网络环境——nginx服务的配置

nigix的基本概念 nginx 最常的用途是提供反向代理服务 那么反向代理如下介绍基本信息:代理服务器作为客户端这边的中介接受请求,隐藏掉真实的客户,向服务器获取资源.如果代理服务器在长城外的话还能顺便帮助我们实现翻越长城的目的.而反向代理顾名思义就是反过来代理服务器作为服务器的中介,隐藏掉真实提供服务的服务器,这么做当然不是为了实现翻越长城,而是为了实现安全和负载均衡等一系列的功能.所谓安全指客户端的请求不会直接落到内网的服务器上而是通过代理做了一层转发,在这一层就可以实现安全过滤,流控,防

nginx服务做用户认证和基于域名的虚拟主机

实验一.用nginx怎么实现用户访问时的认证 一.目标        通过调整Nginx服务端配置,实现以下目标: 访问Web页面需要进行用户认证 用户名为:tom,密码为:123456 二.方案         通过Nginx实现Web页面的认证,需要修改Nginx配置文件,在配置文件中添加auth语句实现用户认证.    最后使用htpasswd命令创建用户及密码即可,服务端:192.168.4.102,客户端:192.168.4.101 三.实施步骤(nginx服务安装见我的"搭建ngin

【CNMP系列】CentOS7.0下安装Nginx服务

话步前言,CNMP之路,系统起步:http://www.cnblogs.com/riverdubu/p/6425028.html 这回我来讲解下CentOS7.0下如何安装和配置Nginx服务 Nginx的历史不在此赘述,轻量,快是它的特性.只是因为现在的模块没有达到apache的模块数量级,未来有超越apache的势头. 首先,我们要安装个必要的软件(上节提到过,可能有人并未安装) #yum install wget 因为Nginx以来与gcc的编译环境,所以,在mini centos中需要安

Nginx服务安装从小白到精通你只差这个文件(包括各种依赖包的解释)

Nginx 安装nginx,升级 用户认证 auth_basic_user_file 虚拟主机 加密 反向代理: 源码包安装nginx yum –y install gcc pcre-devel(支持正则表达) openssl-devel(支持认证加密) #常见依赖包 useradd –s /sbin/nologin nginx #为程序创建用户 tar -xf nginx-1.8.0.tar.gz cd nginx-1.8.0 ./configure --help | grep with #查