saltstack的部署安装[三]

使用salt部署tomcar 

[root@linux-node1 web]# cat /srv/salt/base/web/tomcat.sls 
jdk-install:
  pkg.installed:
    - pkgs:
      - java-1.8.0-openjdk 

tomcat-install:
  file.managed:
    - name: /usr/local/src/apache-tomcat-8.0.46.tar.gz
    - source: salt://web/files/apache-tomcat-8.0.46.tar.gz
    - user: root
    - group: root
    - mode: 755
  cmd.run:
    - name: cd /usr/local/src && tar xf apache-tomcat-8.0.46.tar.gz -C /usr/local/ && ln -s /usr/local/apache-tomcat-8.0.46 /usr/local/tomcat
    - unless: test -L /usr/local/tomcat && test -d /usr/local/apache-tomcat-8.0.46
/srv/salt/base/web/tomcat.sls

   通过salt推送脚本后如何执行

[root@linux-node1 web]# vim test.sls 

test:
  cmd.run:
    - name: /scripts/test.sh
    - cwd: /
    - stateful: True

[root@linux-node2 ~]# cat /scripts/test.sh 
#!/bin/bash
for i in `seq 5`
  do
    echo "$i" >>/tmp/test.txt
done
[root@linux-node2 ~]# cat /tmp/test.txt 
1
2
3
4
5
如何执行脚本案例

  安装jdk-8u144-linux-x64.rpm并且使用脚本java.sh设置环境变量

[root@linux-node1 ~]# cat /srv/salt/base/tomcat/tomcat-jdk.sls 
jdk-install:
  file.managed:
    - name: /usr/local/jdk-8u144-linux-x64.rpm
    - source: salt://tomcat/files/jdk-8u144-linux-x64.rpm
    - user: root
    - group: root
    - mode: 644
  cmd.run:
    - name: rpm -ivh /usr/local/jdk-8u144-linux-x64.rpm

jdk-scripts:
  file.managed:
    - name: /etc/profile.d/java.sh
    - source: salt://tomcat/files/java.sh
    - user: root
    - group: root
    - mode: 700
  cmd.run:
    - name: /etc/profile.d/java.sh
    - cwd: /
    - stateful: True 

验证:
[root@linux-node2 ~]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
jdk

使用salt部署zabbix_agentd.conf

[root@linux-node3 zabbix]# cat zabbix-agent.sls
include:
  - init.yum-epel

zabbix-agent:
  pkg.installed:
    - name: zabbix22-agent
    - require:
      - file: /etc/yum.repos.d/epel-6.repo
  file.managed:
    - name: /etc/zabbix_agentd.conf
    - source: salt://zabbix/files/zabbix_agentd.conf
    - user: root
    - group: root
    - mode: 644
    - template: jinja
    - defaults:
      ZABBIX_SERVER: 192.168.56.13
      ZABBIX_HOSTNAME: {{ grains['fqdn'] }}
    - require:
      - pkg: zabbix-agent
  service.running:
    - name: zabbix-agent
    - enable: True
    - watch:
      - file: zabbix-agent
      - pkg: zabbix-agent

zabbix_agentd.conf.d:
  file.directory:
    - name: /etc/zabbix_agentd.conf.d
    - watch: 
      - service: zabbix-agent
    - require: 
      - file: zabbix-agent
      - pkg: zabbix-agent
/srv/salt/base/zabbix/zabbix-agent.sls

   配置源

[root@linux-node3 ~]# cat /srv/salt/base/init/yum-epel.sls 
epel-install:
  file.managed:
    - name: /etc/yum.repos.d/epel-6.repo
    - source: salt://init/files/epel-6.repo
    - user: root
    - group: root
    - mode: 644
/srv/salt/base/init/yum-epel.sls

   把epel下载到files目录

[root@linux-node3 ~]# ll /srv/salt/base/init/files/
total 4
-rw-r--r-- 1 root root 1083 Jul  2  2014 epel-6.repo
/srv/salt/base/init/files/

  配置文件修改zabbix_agentd.conf存放

 [root@linux-node3 ~]# vim /srv/salt/base/zabbix/files/zabbix_agentd.conf
81 Server={{ ZABBIX_SERVER }}
133 Hostname={{ ZABBIX_HOSTNAME }}
/srv/salt/base/zabbix/files/zabbix_agentd.conf

使用salt部署Redis

[root@linux-node1 ~]# salt 'xindaichina-node2*' state.sls redis-cluster.redis-master test=True saltenv=prod
[root@linux-node1 ~]# cat /srv/salt/prod/redis-cluster/redis-master.sls 
include:
  - modules.redis.redis-install

redis-master-config:
  file.managed:
    - name: /etc/redis.conf
    - source: salt://redis-cluster/files/redis-master.conf
    - user: root
    - group: root
    - mode: 644
    - template: jinja
    - defaults:
      REDIS_MEM: 100M

redis-master-service:
  service.running:
    - name: redis
    - enable: True
    - watch:
      - file: redis-master-config
redis

使用salt部署keepalived

[root@linux-node1 ]# cat keepalived.sls 
include:
  - modules.keepalived.keepalived-install

keepalived-config:
  file.managed:
    - name: /etc/keepalived/keepalived.conf
    - source: salt://keepalived-cluster/files/keepalived.conf
    - user: root
    - group: root
    - mode: 644
    - template: jinja
    {% if grains['fqdn'] == 'xindaichina-node2' %}
    - ROUTEID: haproxy_ha
    - STATEID: MASTER
    - PRIORITYID: 150
    {% elif grains['fqdn'] == 'xindaichina-node3' %}
    - ROUTEID: haproxy_ha
    - STATEID: BACKUP
    - PRIORITYID: 100
    {% endif %}

keepalived-service:
  service.running:
    - name: keepalived
    - enable: True
    - reload: True
    - watch:
      - file: keepalived-config
keepalived

使用salt部署haproxy

使用salt部署

使用salt部署

使用salt部署

使用salt部署

使用salt部署

posted @ 2017-10-18 13:28  reborn枪  阅读(163)  评论(0)    收藏  举报