首页 > 其他分享 >自动化运维工具【SaltStack】

自动化运维工具【SaltStack】

时间:2024-02-04 10:47:23浏览次数:26  
标签:httpd 运维 server1 server2 --- nginx 自动化 SaltStack salt

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服务的启动状态

运维人员平时用到的4个常见自动化工具:(https://www.landui.com/docs-10975)

 

 

 

参考:https://blog.csdn.net/hellolcr/article/details/121085943

https://www.cnblogs.com/songzhixue/p/11153013.html

 

标签:httpd,运维,server1,server2,---,nginx,自动化,SaltStack,salt
From: https://www.cnblogs.com/klb561/p/18005726

相关文章

  • 自动化运维工具【ansible】
    ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于paramiko开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行......
  • 【APP自动化进阶】pytest+appium多设备并发
    并发编程基础【Python进阶】并发编程方式APP自动化并发项目实战项目步骤获取设备信息并根据设备数量开启n个进程appium服务处理pytest前置处理开启appium服务pytest后置处理关闭appium服务pytest进行用例执行,并输出报告数据等待进程执行完毕生成每个设备的allure报告......
  • Linux运维笔记[14]-搭建内网docker镜像服务
    摘要使用docker-registry搭建内网镜像服务,平替DockerHub.原理简介docker-registry简介[https://juejin.cn/post/7214037206863495205]官方提供了DockerHub网站来作为一个公开的集中仓库,然而,本地访问DockerHub速度往往很慢,并且很多时候我们需要一个本地的私有仓库只供网内......
  • 拓扑、监控、展示、流量、资产一体化管理,重庆石柱中医院部署智和信通统一运维平台
    县中医院创建于1983年,是集医疗、教学、科研、急救、康复为一体的国家“二级甲等”综合性中医院,其智慧医院建设总体目标是以患者为中心,电子病历为核心,基于医院信息平台,实现全院资源的统一调度与管理,为患者、临床、管理者提供全面的信息支撑服务,进一步改善患者就医体验、提升工作效......
  • 【自动化基础】pytest详解及进阶使用
    pytest介绍及基本使用【自动化测试框架】pytest和unitttest你知道多少?区别在哪?该用哪个?pytest原理参数化@pytest.mark.parametrize(argnames,argvalues,indirect=False,ids=None,scope=None))参数说明argnames必传,参数名,以逗号分隔的字符串,表示一个或多个......
  • Jenkins超全安装,自动化部署SSM项目,消除你的部署烦恼
    Jenkins超全安装,自动化部署SSM项目,消除你的部署烦恼:https://blog.csdn.net/m0_54349490/article/details/130268867?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170683971316800188582910%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request......
  • SpringBoot自动化配置原理
    SpringBoot自动化配置从注解@SpringBootApplication开始,它封装的注解如下图所示:需要注意的有三个注解:1.第一个注解是@SpringBootConfiguration,底层是一个@Configuration注解,表示当前类是一个配置类,可以使得引导类中的SpringBoot或Spring配置能生效2.第二个注解是@ComponentSc......
  • SpringBoot的自动化配置原理
    1.启动类上有一个注解,是一个复合注解,由三个注解组成第一个注解是@SpringBootConfiguration,底层是一个@Configuration注解,表示当前类是一个配置类第二个注解是@ComponentScan是一个组件扫描,spring会扫描引导类所在包及子包下的组件第三个注解是@EnableAutoConfiguration注......
  • Selenium自动化测试之python
    1、简介Selenium是一个自动化测试工具,它支持多种浏览器和操作系统,可以模拟真实用户的行为,如点击、输入文本、滚动页面等。Selenium可以在多种编程语言中使用,如Java、Python、C#等。它可以帮助测试人员快速、准确地测试应用程序的功能和性能。Selenium还提供了丰富的API和库,使得测......
  • SpringBoot自动化配置原理
    先在pom.xml文件中引入配置依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId><version>2.1.4.RELEASE</version>&......