一、SaltStack的了解

SaltStack管理工具允许管理员对多个操作系统创建一个一致的管理系统,包括VMware vSphere环境。

SaltStack作用于仆从和主拓扑。SaltStack与特定的命令结合使用可以在一个或多个下属执行。

主要用的语言为python

二、SaltStack的配置

使用自动化软件,实现在server1中显示server2中执行的内容(server1、2均为rhel6.5)

1、在server1中配置yum源

--->  vim  /etc/yum.repos.d/rhel-source.repo    # 添加如下仓库

[salt]
name=salt
baseurl=http://172.25.2.250/rhel6
gpgcheck=0--->  yum clean  all

--->  yum repolist      # 成功结果如下

--->  scp  /etc/yum.repos.d/rhel-source.repo  server2:/etc/yum.repos.d/     # 完成后复制到server2中

2、在server1中安装salt-master,并修改master的配置文件

--->  yum install -y salt-master

--->  vim  /etc/salt/master        # 取消534-536行的注释

--->  /etc/init.d/salt-master  start   # 启动服务

--->  netstat  -antlp         # 查看端口

注释:4505端口用来链接slave,发布订阅;4506端口用来请求响应(模式为zmq,消息队列)

--->  lsof  -i  :4505    # lsof查看端口的链接情况

3、在server2中安装salt-minion软件,并修改minion的配置文件

--->  yum  install -y  salt-minion

--->  vim  /etc/salt/minion                # 添加master对应的ip

--->  /etc/init.d/salt-minion  start      # 启动minion服务。(启动服务后,会生成一个minion.id文件。若修改ip之后,要删除该文件,然后重新启动)

4、在server1中添加server2。(也是master和minion交换公钥的过程)

--->  salt-key  -A        # 添加显示的主机

--->  salt-key  -L        # 显示salt的情况

5、我们可以在master和minion两个主机上分别查看公钥,是相同的。

6、在server1端进行测试

--->  salt  server2  test.ping     # 查看server2是否可以ping通

--->  salt  server2  cmd.run  df   # 查看server2的df

server2:

三、自动化部署

(一)http服务的安装

1)在server1中配置http的安装脚本

--->  mkdir  /srv/salt      # 由于之前取消master配置文件的注释,所以要有目录/srv/salt

--->  cd /srv/salt

--->  mkdir  apache     # 创建apache目录。用来存放脚本

--->  cd  apache

--->  vim web.sls      # 注意,该语言格式要求严格,每行开头有空格的时候,必须是两个空格

apache-install:

  pkg.installed:
    - pkgs:
      - httpd
      - php

--->  salt server2 state.sls  apache.web   # 执行脚本

2)、在server2中查看httpd和php的是否安装

(二)启动httpd服务并修改端口为8080

1)首先在server1中创建目录,存放httpd.conf配置文件

--->  cd  /srv/salt/apache/

--->  mkdir files

2)将server2安装好的httpd的配置文件复制到server1的固定目录下

--->  scp  /etc/httpd/conf/httpd.conf  server1:/srv/salt/apache/files

3)在server1中编辑执行脚本

--->  vim  web.sls

apache-install:
  pkg.installed:
    - pkgs:
      - httpd
      - php
  file.managed:
    - name: /etc/httpd/conf/httpd.conf
    - source: salt://apache/files/httpd.conf
    - mode: 644
    - user: root
  service.running:
    - name: httpd
    - enable: True
    - reload: True
    - watch:
      - file: apache-install# 在执行脚本之前,我们先修改server1中的httpd.conf文件的端口为8080

--->  salt server2 state.sls  apache.web

4)测试:在server2中查看httpd的端口

--->  netstat  -antlp

(三)自动化部署:源码安装nginx

1)在server1中编辑配置脚本

--->  mkdir  /src/salt/nginx/

--->  cd  /src/salt/nginx

--->  mkdir  files        # files目录中存放nginx源码包

--->  vim  nginx.sls      # 进行nginx源码安装的时候,首先安装依赖包;再发送源码包,最后进行源码包的解压

nginx-install:
pkg.installed:
- pkgs:
- gcc
- pcre-devel
- openssl-devel # 安装源码编译的依赖项 file.managed:
- name: /opt/nginx-1.15.3.tar.gz
- source: salt://nginx/files/nginx-1.15.3.tar.gz # 源码包存放的位置 cmd.run:
- name: cd /opt && tar zxf nginx-1.15.3.tar.gz && cd nginx-1.15.3 && sed -i.bak 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && sed -i.bak 's/#define NGINX_VER "nginx\/" NGINX_VERSION/#define NGINX_VER "nginx"/g' src/core/nginx.h && ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio &> /dev/null && make > /dev/null && make install > /dev/null
- creates: /usr/local/nginx # 检验条件,当存在这个目录时,就不再编译安装

--->  salt server2  state.sls  nginx.install     # 执行脚本,结果如下

2)在server2中查看nginx是否安装成功

(四)salt自动重新加载nginx的配置文件

1)创建user目录,存放的sls脚本文件,用来生成nginx用户

--->  cd  /srv/salt

--->  mkdir  user

--->  vim  nginx.sls             # 创建nginx组和用户

nginx-group:
  group.present:
    - name: nginx
    - gid: 800

nginx-user:
  user.present:
    - name: nginx
    - uid: 800
    - gid: 800
    - shell: /sbin/nologin
    - createhome: False
    - home: /usr/local/nginx

2)修改server.sls文件

--->  vim /srv/salt/nginx/service.sls

include:
  - user.nginx            # 调用usermul下的nginx.sls来创建用户
  - nginx.install         # 执行软件包的安装

/usr/local/nginx/conf/nginx.conf:
  file.managed:
    - source: salt://nginx/files/nginx.conf

nginx-service:
  file.managed:
    - name: /etc/init.d/nginx
    - source: salt://nginx/files/nginx
    - mode: 755
  service.running:
    - name: nginx
    - reload: True
    - watch:
      - file: /usr/local/nginx/conf/nginx.conf
3)执行service.sls文件

--->  cd /usr/salt/nginx

--->  salt server2 state.sls   nginx.service

4)在server2中查看nginx用户和nginx服务的启动状态

SaltStack自动化运维工具的更多相关文章

  1. SaltStack(自动化运维工具)

    SaltStack管理工具允许管理员对多个操作系统创建一个一致的管理系统,包括VMware vSphere环境.SaltStack作用于仆从和主拓扑.SaltStack与特定的命令结合使用可以在一个或 ...

  2. saltstack自动化运维工具搭建个人笔记

    至于为什么选择saltstack,因为Puppet.Chef基于Ruby开发,而ansible.saltstack基于python开发,便于后期二次,良好的可移植性. 又,ansible基于SSH协议 ...

  3. 自动化运维工具 SaltStack 搭建

    原文地址:https://www.ibm.com/developerworks/cn/opensource/os-devops-saltstack-in-cloud/index.html#N10072 ...

  4. 自动化运维工具SaltStack详细部署

    ==========================================================================================一.基础介绍==== ...

  5. 自动化运维工具SaltStack详细部署【转】

    ==========================================================================================一.基础介绍==== ...

  6. CheungSSH国产自动化运维工具开源Web界面

    CheungSSH web2.0 发布文档 CheungSSH 简介 CheungSSH是一款国人自主研发的Linux运维自动化管理服务器软件,秉着为企业降低运营成本,解放管理员双手和自动化生产的理念 ...

  7. 自动化运维工具Ansible详细部署 (转载)

    自动化运维工具Ansible详细部署 标签:ansible 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog. ...

  8. 企业级自动化运维工具应用实战-ansible

    背景 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测试,运 ...

  9. Ansible自动化运维工具-上

    [Ansible特点] 1)Ansible与saltstack均是基于Python语言开发的 2)安装使用简单,基于不同插件和模块实现各种软件,平台,版本的管理以及支持虚拟容器多层级的部署 3)不需要 ...

随机推荐

  1. spring boot 启动后执行初始化方法

    http://blog.csdn.net/catoop/article/details/50501710 1.创建实现接口 CommandLineRunner 的类 package org.sprin ...

  2. 移动端Css初始化

    @charset "utf-8"; /* 禁用iPhone中Safari的字号自动调整 */ html { -webkit-text-size-adjust: %; -ms-tex ...

  3. java自学入门心得体会 从环境配置开始

    java —— 一种可以撰写跨平台应用软件的面向对象的程序设计语言. 很多教程里都要概述java语言的诞生发明.其实像图灵的”图灵机“和”图灵测试“一样,当初的java并不是这样. 是用来操控一些电冰 ...

  4. java的事务类型及定义

    转载: 什么是事务: 首先,说说什么事务.我认为事务,就是一组操作数据库的动作集合. 事务是现代数据库理论中的核心概念之一.如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务. ...

  5. Robot framework(RF)学习基础

    1.框架特点 2.安装 3.基本内容 RF框架是通用的测试框架,一直由诺西网络维护. 易于使用 采用表格法 可以使用关键字驱动,数据驱动和行为驱动开发完成.(keyword-driven,data-d ...

  6. MVC ---- 如何使用Predicate以及如何自定定义Predicate委托

    微软公司提供只能返回bool值,接受一个参数的委托类型(Predicate). //Predicate委托 public static class PredicateDemo{ //内置方法 publ ...

  7. 生信软件的好帮手-bioconda--转载

    http://mp.weixin.qq.com/s/nK1Kkf9lfZStoX25Y7SzHQ 这篇文章主要适用于Linux平台,当然MacOS也行,不过它有更好安装方法. 此外网上也会许多更好的关 ...

  8. SQLServer中对时间和长度的处理

    ---关于时间处理的函数 GETDATE() DATEADD(DAY,-20,GETDATE()) CONVERT(VARCHAR(100), GETDATE(), 112) DATENAME(PAR ...

  9. Admin管理后台

    Django奉行Python的内置电池哲学.它自带了一系列在Web开发中用于解决常见问题或需求的额外的.可选工具.这些工具和插件,例如django.contrib.redirects都必须在setti ...

  10. c++ primer plus 第三章 课后题答案

    #include<iostream> using namespace std; int main() { ; int shen_gao; cout <<"Please ...