把之前的配置打个包

zip -r salt.zip *

拷贝到/root/tools目录

博客园文件里面也保留一份,删除之前所有的salt配置文件重新开始

1,系统初始化

2,功能模块:设置单独的目录haproxy nginx php mysql memcached

3,业务模块:根据业务类型,例如web 服务 论坛 bbs

include

1,salt环境配置

开发,测试(功能测试环境,性能测试环境) 预生产 生成

base 基础环境

init目录,环境初始化 1.dns配置  2history记录时间 3记录命令操作 4内核参数优化 5安装yum仓库 6安装Zabbix-agent

2,prod生成环境

vim /etc/salt/master

mkdir -p /srv/salt/base
mkdir -p /srv/salt/prod

mkdir -p /srv/pillar/base
mkdir -p /srv/pillar/prod

重启

systemctl restart salt-master

cd /srv/salt/base/

mkdir init

cd init

vim dns.sls

/etc/resolv.conf:
file.managed:
- source: salt://init/files/resolv.conf
- user: root
- gourp: root
- mode: 644

新建文件命令,拷贝配置文件

mkdir files

cp /etc/resolv.conf  files/

vim history.sls

/etc/profile:
file.append:
- text:
- export HISTTIMEFORMAT="%F %T `whoami` "

PS:在/etc/profile 末尾追加一行显示执行时间以及执行者

vim audit.sls

/etc/bashrc:
file.append:
- text:
- export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'

PS:记录命令的操作即命令审计

vim sysctl.sls

net.ipv4.ip_local_port_range:
sysctl.present:
- value: 10000 65000
fs.file-max:
sysctl.present:
- value: 2000000
net.ipv4.ip_forward:
sysctl.present:
- value: 1
vm.swappiness:
sysctl.present:
- value: 0

PS:内核参数优化

net.ipv4.ip_local_port_range: 本地可用端口范围 作为客户端发起连接的时候

net.ipv4.ip_forward: 开启转发

sysctl.present:交换分区使用权重为0是尽量不使用

vim epel.sls

yum_repo_release:
pkg.installed:
- sources:
- epel-release: http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

vim zabbix-agent.sls

zabbix-agent:
pkg.installed:
- name: zabbix-agent
file.managed:
- name: /etc/zabbix/zabbix_agentd.conf
- source: salt://init/files/zabbix_agentd.conf
- template: jinja
- defaults:
Server: {{ pillar['zabbix-agent']['Zabbix_Server'] }}
- require:
- pkg: zabbix-agent
service.running:
- enable: True
- watch:
- pkg: zabbix-agent
- file: zabbix-agent
zabbix_agentd.conf.d:
file.directory:
- name: /etc/zabbix/zabbix_agentd.conf.d
- watch_in:
- service: zabbix-agent
- require:
- pkg: zabbix-agent
- file: zabbix-agent

拷贝配置文件

cp /etc/zabbix/zabbix_agentd.conf files/

vim files/zabbix_agentd.conf

PS:这里{}内变量名称Server要和/srv/salt/base/init/zabbix-agent.sls  一样为Server

直接执行出错

因为没有配置pillar

cd /srv/pillar/base/

mkdir zabbix
cd zabbix/

vim agent.sls

zabbix-agent:
Zabbix_Server: 10.8.45.27

这样设置还不行,需要master指定给

vim /srv/pillar/base/top.sls

base:
'*':
- zabbix.agent

salt '*' state.sls init.zabbix-agent

执行状态成功了

到此初始化写完了

cd /srv/salt/base/init

vim init.sls

include:
- init.dns
- init.history
- init.audit
- init.sysctl
- init.epel
- init.zabbix-agent

执行salt '10-8-86-172' state.sls init.init

成功了

这个是执行单个配置文件 高级状态是定义top.sls

cd /srv/salt/base

vim top.sls

base:
'*':
- init.init

 先tree一下

使用salt '*' state.highstate  执行top.sls 因为这里定的是 * init.init 其实效果和上面的是一样的

PS:使用backup: minion可以在配置文件有更新的时候把原始配置文件备份

一旦配置文件有更新会把原始配置文件备份一遍

参考文档

https://github.com/unixhot/saltbook-code/blob/master/salt/



Saltstack生产案例之系统初始化的更多相关文章

  1. SaltStack生产案例-服务部署(redis,mysql,apache+php,haproxy+keepalived)

    顺序代码资料链接 课上资料.zip 接上篇:SaltStack生产案例-系统初始化 1,redis 主从 2,mysql 主从 2.1 mysql-install.sls (安装 初始化) 2.2   ...

  2. SaltStack生产案例-系统初始化

    需求分析 一,系统初始化 1.1  关闭SELinux 1.2  关闭默认iptables 1.3  时间同步(配置NTP)  1.4  文件描述符(必备/etc/security/limmits.c ...

  3. Saltstack生产案例之Haproxy安装

    cd /srv/salt/prod/ mkdir haproxymkdir keepalivedmkdir nginxmkdir phpmkdir memcachedmkdir pkg cd pkg ...

  4. saltstack系统初始化(九)

    一.系统初始化需要的配置 当我们的服务器上架并安装好操作系统后,都会有一些基础的操作,所以生产环境中使用SaltStack,建议将所有服务器都会涉及的基础配置或者软件部署归类放在base环境下.此处, ...

  5. saltstack之(七)配置管理系统初始化init

    saltstack的配置管理分环境管理:①.base为基础环境,一般会存放一些所有服务器都使用的配置管理信息.②.dev为开发测试环境,一般会存放一些开发测试服务器使用的配置管理信息.③.pro为线上 ...

  6. Linux安装系统注意事项及系统初始化

      Linux安装系统注意事项 1.分区 学习用途: /boot:200M /swap :内存的1到2倍 /:根据需要分配大小,比如虚拟机下总空间是15G,那么可以分配8——10G跟/分区,如果是生产 ...

  7. centos系统初始化流程及实现系统裁剪

    Linux系统的初始化流程: POST:ROM+RAM BIOS: Boot Sequence MBR: 446:bootloader 64: 分区表 2: 5A kernel文件:基本磁盘分区 /s ...

  8. Shell编程—企业生产案例

    Linux系统Shell编程—企业生产案例(一) 企业数据库可以说是重点保护对象啊,没有之一,数据在当今企业里就是生命线,因此今天就来说一说,如何通过shell脚本来检查或监控MYSQL数据库服务是否 ...

  9. 06 saltstack生产实例-需求

    https://github.com/unixhot/saltbook-code .Cobbler 1.15 统一网卡名 .Zabbix 系统已经安装好了! base .手动实现 .需要使用salt的 ...

随机推荐

  1. How to solve the problem : "You have been logged on with a temporary profile"

    /*By Jiangong SUN*/ I've encountered a problem in one server, which is : Every time I login into the ...

  2. Go之函数直接实现接口

    //1.定义一个接口 type Run interface { Runing() } //2.定义一个函数类型 type Runer func() //3.让函数直接实现接口 func (self R ...

  3. Nginx(十一)-- keepalived简介

    1. 什么是keepalived 基于VRRP(虚拟路由器冗余协议)来实现对web服务的高可用方案. keepalived下载地址:http://download.csdn.net/detail/u0 ...

  4. mosquitto 参数配置

    mosquitto 参数配置 1.retry_interval  当QoS为1或2的消息已经被发送后,mosquitto在一段时间内仍未接收到客户端的反馈消息,将重新发送消息. 默认为20秒 2.sy ...

  5. 使用Html和ashx文件实现其简单的注册页面

    记得上一次博客中实现的是其登录页面,其实学会了登录页面,注册页面自然就知道怎么写啦,都是一个意思的,但是今天不知道怎么个情况,写一个注册页面程序 中 一直在出错,大的问题小的问题一直出错,似乎是不在状 ...

  6. codeforces水题100道 第二十题 Codeforces Round #191 (Div. 2) A. Flipping Game (brute force)

    题目链接:http://www.codeforces.com/problemset/problem/327/A题意:你现在有n张牌,这些派一面是0,另一面是1.编号从1到n,你需要翻转[i,j]区间的 ...

  7. iOS 沙盒目录结构及正确使用

    前言:处于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如在用户授权情况下访问通讯录,相册等),这个规则展示了iOS系统的封闭性.在开发中常常需要数据存储的功 ...

  8. “std”: 具有该名称的命名空间不存在

    当只用using namesp std 时,会报 error C2871: “std”: 具有该名称的命名空间不存在. 包含一个含有std的头文件就不会报错了,比如<iostream>.& ...

  9. 解决neo4j @Transactional 与Spring data jpa @Transactional 冲突问题,@CreatedBy,@CreatedDate,@LastModifiedBy,@LastModifiedDate,以及解决@Version失效问题

    之前mybatis特别流行,所以前几个项目都是用@SelectProvider,@InsertProvider,@UpdateProvider,@DeleteProvider 加反射泛型封装了一些通用 ...

  10. SQL数据库对象名无效的解决方法

    对象名 'dbo.xxxx' 无效. 最后找到如下方法解决:原因是必须把所有以前的所有者改为DBO就不会出问题了. 执行下面语句,更改所有表的所有者为DBO exec sp_msforeachtabl ...