使用salt对系统进行初始化操作


概述

使用cobbler安装的操作系统,默认安装了一些基本的软件,比如zabbix-agent、salt-minion等,还没有对系统进行基本的初始化操作,为了实现标准化操作,需要在正式使用系统之前,对系统进行标准的初始化操作。基于这一个目标,通过salt来对系统进行初始化操作。主要操作点有如下几个:

  • DNS标准配置
  • history命令调优,记录时间和用户
  • 内核参数优化
  • yum仓库配置
  • zabbix-agent配置
  • 命令记录

下面就基于以上的优化点,来进行针对性的优化

1. DNS标准配置

对于DNS的标准配置,主要是在所有的salt-minion 上配置基本的DNS-SERVER,可以是将已经配置好的dns配置文件,分发给所有的minion,也可以是通过逐条插入的方式,在minion上进行相关配置。这里选择的是将服务器上的dns文件,分发到minion上。所以需要在master上进行相关配置。

创建dns目录结构,编写dns的状态文件,将模板配置文件,放在对应目录的files文件下

[root@master /srv/salt/base/init]# tree
.
└── dns
├── dns.sls
└── files
└── resolv.conf
[root@master /srv/salt/base/init]# cat dns/dns.sls
dns-configuration:
file.managed:
- name: /etc/resolv.conf
- source: salt://init/dns/files/resolv.conf
- user: root
- group: root
- mode: 644 salt '*' state.sls init.dns.dns test=True

2. history调优设置

默认的history命令,只是会记录命令和序号,并不会记录命令时间和操作用户,所以需要在初始化配置的时候,对history进行调优。主要是要在/etc/profile文件中,对history的设置进行增加,可以是通过文件管理模块实现,也可以是直接修改minion上的该文件。

需要增加的命令如下:

export HISTTIMEFORMAT="%F %T `whoami` "

增加完该配置命令后,需要source该文件,使得生效,重新打开一个新的terminal窗口。所以这里需要做的状态文件如下:

[root@master /srv/salt/base/init/history]# cat history.sls
history-configuration:
file.append:
- name: /etc/profile
- text:
- export HISTTIMEFORMAT="%F %T `whoami` "

这里使用的是file模块的append方法,是在该文件的结尾处进行增加。

3.SELinux默认配置

SELinux默认是开启的,需要关闭,然后修改配置文件。这里使用的file模块的line方法,line方法是一个行编辑方法,可以对指定的文件行进行添加、修改和删除等一系列操作,和sed等直接编辑的方法相同。

selinux-configuration:
file.line:
- name: /etc/selinux/config
- match: SELINUX=enforcing
- content: SELINUX=disabled
- mode: replace
cmd.run:
- name: setenforce 0
  • name是指定需要修改的文件名称
  • match是匹配需要修改的文件内的条目
  • content是修改后的内容
  • mode是修改方式,这里写的是替换。

关闭防火墙

firewalld-service:

4.YUM源配置

所有的内网操作系统,在安装基础软件包的时候,可以是通过手动上传软件包进系统进行安装,也可以在每台服务器上挂载镜像盘进行安装,还可以在内网搭建一个YUM源,然后所有的其他服务器都以该服务器为YUM安装源,实现软件的安装。

[root@master /srv/salt/base/init/yumrepo]# tree
.
├── files
│   └── localyumrepo.repo
└── yumrepo.sls 1 directory, 2 files
[root@master /srv/salt/base/init/yumrepo]# cat yumrepo.sls
yum-repo:
cmd.run:
- name: mkdir /etc/yum.repos.d/back&& mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/back
- unless: test -d /etc/yum.repos.d/back
file.managed:
- name: /etc/yum.repos.d/localyumrepo.repo
- source: salt://init/yumrepo/files/localyumrepo.repo
- user: root
- group: root
- mode: 644

5.内核优化

在内核优化过程中,主要是调整的参数有如下几个:

  • ipv4的本地端口,用于连接其他服务器的端口范围
  • 打开的最大文件数量
  • 本地的ipv4转发
  • 交换分区的权重,默认为30

设置内核参数,影响的文件是/etc/sysctl.conf,使用的方法也就是sysctl模块下的present方法。所以内核优化的状态文件是这样写的。

[root@master /srv/salt/base/init]# cat kernel.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

6. Zabbix-agent安装和配置

默认安装zabbix-agent,然后修改配置文件中的server配置项,在这里如果是主动模式,需要设置agent的主机名,这里我们选择指定minion-id为agent主机名。所以写一个zabbix-agent的状态配置文件。

Hostname={{ grains['id']}}

[root@master /srv/salt/base/init/zabbix-agent]# tree
.
├── files
│   └── zabbix_agentd.conf
└── zabbix-agent.sls 1 directory, 2 files
[root@master /srv/salt/base/init/zabbix-agent]# cat zabbix-agent.sls
zabbix-agent-install:
pkg.installed:
- name: zabbix40-agent*
file.managed:
- name: /etc/zabbix/zabbix_agentd.conf
- source: salt://init/zabbix-agent/files/zabbix_agentd.conf
- user: root
- group: root
- mode: 644
- backup: minion
- template: jinja
service.running:
- name: zabbix-agent
- enable: True
- watch:
- file: zabbix-agent-install

7. 状态合并

在编写了每个特定的状态模块后,因为是初始化状态,所以可以直接写入到一个状态文件中,包含这么些个状态,在minion上执行的时候,只需要执行一个状态,方便管理即可。

include:
- init.dns.dns
- init.firewalld
- init.history
- init.kernel
- init.selinux
- init.yumrepo.yumrepo
- init.zabbix-agent.zabbix-agent

利用salt进行系统初始化操作的更多相关文章

  1. 详解linux系统的启动过程及系统初始化

    一.linux系统的启动流程 关于linux系统的启动流程我们可以按步进行划分为如下: POST加电自检 -->BIOS(Boot Sequence)-->加载对应引导上的MBR(boot ...

  2. Android手机上,利用bat脚本模拟用户操作

    ………… 那么你就可以来看看这篇帖子了. 言归正传 利用bat脚本模拟用户操作,需要用到两点: ①就是adb命令了,adb命令可以用来模拟用户在手机上的操作 ②bat语言,就是批处理语言,主要用来进行 ...

  3. Saltstack生产案例之系统初始化

    把之前的配置打个包 zip -r salt.zip * 拷贝到/root/tools目录 博客园文件里面也保留一份,删除之前所有的salt配置文件重新开始 想 1,系统初始化 2,功能模块:设置单独的 ...

  4. saltstack系统初始化(九)

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

  5. 利用salt stack pillar安装多组keepalived

    利用salt stack pillar安装多组keepalived 环境描述 在生产环境中,需要搭建三套keepalived环境,3个master和3个backup,要安装的软件和配置文件,虽然不是很 ...

  6. windows系统快捷操作の进阶篇

    上次介绍了windows系统上一些自带的常用快捷键,有些确实很方便,也满足了我们的一部分需求.但是我们追求效率的步伐怎会止步于此?这一次我将会进一步介绍windows上提升效率的方法. 一:运行 打开 ...

  7. centos7 系统初始化脚本

    现在自己的本地虚拟机系统,直接安装的是centos7.2 mini版,安装完成发现好多东西都没有安装,所以写了一个简单的系统初始化脚本,让自己可以省一些力气,哈哈 人懒主要是. 下面贴出写的脚本,脚本 ...

  8. linux -小记(1) 问题:"linux ifconfig查看网卡名称与配置文件不否" 或 启动网卡提示“ eth0 似乎不存在, 初始化操作将被延迟”。

    "linux ifconfig查看网卡名称与配置文件不否" 或 启动网卡提示" eth0 似乎不存在, 初始化操作将被延迟" . 问题 1. service n ...

  9. libevent (一) socket属性设置与初始化操作

    socket属性设置与初始化操作 libevent是一个事件触发的网络库,适用于windows.linux.bsd等多种平台,内部使用select.epoll.kqueue等系统调用管理事件机制.著名 ...

随机推荐

  1. sql-分组查询

    分组查询: 关键字:group by 可以将查询结果分组,并返回行的汇总信息 注意: 1.出现在select后面的字段 要么是是聚合函数中的,要么就是group by 中的 2.要筛选结果 可以先使用 ...

  2. HTML开发实例-简单相亲网站开发(主体为table)

    实现功能:简单的相亲网站: 清楚不常在,抓紧谈恋爱 我承诺 年满十八岁 单身 抱着严肃态度 寻找真诚的另一半 性别: 男 女 生日: --请选择年-- 2019 2020 2021 --请选择月-- ...

  3. springboot 启动报错"No bean named 'org.springframework.context.annotation.ConfigurationClassPostProcessor.importRegistry' available"

    1.问题 springboot启动报错 "D:\Program Files\Java\jdk-11\bin\java.exe" -XX:TieredStopAtLevel=1 -n ...

  4. 如何减小SRAM读写操作时的串扰

    静态存储器SRAM是一款不需要刷新电路即能保存它内部存储数据的存储器.在SRAM 存储阵列的设计中,经常会出现串扰问题发生.那么要如何减小如何减小SRAM读写操作时的串扰,以及提高SRAM的可靠性呢, ...

  5. Golang模拟用户登陆,突破教务系统

    目录 一.Golang模拟用户登陆,突破教务系统 1.1 请求登陆页面 1.2 抓包分析登陆请求 1.3 golang使用js引擎合成salt 1.4 模拟表单提交,完成登陆 1.5 进入成绩查询页, ...

  6. Chisel3 - util - OneHot

    https://mp.weixin.qq.com/s/Jsy8P3m9W2EYKwneGVekiw   独热码相关的电路生成器.   参考链接: https://github.com/freechip ...

  7. js在运算时的类型转换

    日期类型与数字类型的运算 在加法时将日期对象与数字都当作字符串进行连接 字符串的运算方式中没有减法.乘法.除法.转化成数字类型进行运算 字符串类型字符与数字类型的运算 在加法时将二者都转换成字符串进行 ...

  8. Java实现 LeetCode 453 最小移动次数使数组元素相等

    453. 最小移动次数使数组元素相等 给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数.每次移动可以使 n - 1 个元素增加 1. 示例: 输入: [1,2,3] 输出: 3 ...

  9. Java实现合并排序

    1 问题描述 给定一组数据,使用合并排序得到这组数据的非降序排列. 2 解决方案 2.1 合并排序原理简介 引用自百度百科: 合并排序是建立在归并操作上的一种有效的排序算法.该算法是采用分治法(Div ...

  10. Liunx常用运维命令整理记录

    前言 作为后端开发者,掌握一些常用的运维命令也是很有必要的,本文记录常用Liunx运维命令 基本命令 目录切换 cd base-admin/ 切换到当前目录下的base-admin目录 cd .. 切 ...