saltstack 初始化LINUX系统

前面我们已经了解了saltstack的基础功能,现在就可以使用saltstack为初始化新安装的linux系统。

初始化列表:

1.关闭selinux 3.修改sshd配置文件 4.内核优化 5.ulimit修改 6.history记录 7.时区修改及添加cron 8.安装epel 9.修改resolv解析文件 10.软件安装 好了,此前我们已经修改了salt的base目录,默认在/srv/salt 下我们调整到/etc/salt目录下了 现在呢,我们需要去建立一个目录专门用于存放初始化sls的。

[root@localhost base]# pwd /etc/salt/base

[root@localhost base]# mkdir init

date_time.sls

系统时区修改

[root@localhost init]# vim date_time.sls 
  date_time:
    pkg.installed:
      - name: ntpdate
      - unless: rpm -qa | grep ntpdate
 
    cmd.run:
      - name:  rm -rf /etc/localtime && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && ntpdate pool.ntp.org
      - require:
        - pkg: ntpdate
 
    cron.present:
      - name: /usr/sbin/ntpdate pool.ntp.org >/dev/null
      - user: root
      - minute: '*/5'
      - require:
        - pkg: ntpdate

epel.sls

epel文件调整,系统为centos 7

[root@localhost init]#vim epel.sls 
  epel_install:
    pkg.installed:
      - sources:
        - epel-release: http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
      - unless: rpm -qa | grep epel-release-7-5

history.sls

修改操作命令记录

[root@localhost init]# vim history.sls 
  /etc/bashrc:
    file.append:
      - text:
        - HISTTIMEFORMAT="%F %T `whoami` "
    cmd.run:
      - name: source /etc/bashrc

limits.sls

limits参数调整

[root@localhost init]# vim limits.sls 
  /etc/security/limits.conf:
    file.append:
      - text:
        - '* hard nofile 204800'
        - '* soft nofile 204800'
 
  /etc/profile:
    file.append:
      - text:
        - 'ulimit -c unlimited'
 
  ~/.bashrc:
    file.append:
      - text:
        - alias vi='"'vim'"'

resolv.sls

DNS解析文件修改

[root@localhost init]#vim resolv.sls 
  resolv:
    file.managed:
      - name: /etc/resolv.conf
      - source: salt://init/resolv.conf
[root@localhost init]# vim resolv.conf 
# Generated by NetworkManager
nameserver 114.114.114.114
nameserver 8.8.8.8
[root@localhost init]#

selinux.sls

selinux卸载

[root@localhost init]# vim selinux.sls 
  selinux:
    cmd.run:
      - name: yum remove selinux-policy -y

soft_install.sls

基础软件安装

[root@localhost init]# vim soft_install.sls 
  soft-install:
    pkg.installed:
      - names:
        - lrzsz
        - telnet
        - openssh-clients
        - ftp
        - sysstat
        - bc
        - rsync
        - wget
        - screen
        - dstat
        - vim-enhanced
        - gcc
        - gcc-c++
        - make
        - dos2unix
        - net-tools
[root@localhost init]#

sshd_config.sls

SSHD配置文件调整

[root@localhost init]# vim sshd_config.sls 
  sshd:
 
   file.managed:
     - name: /etc/ssh/sshd_config
     - source: salt://init/sshd_config
 
   service.running:
     - enable: True
     - reload: True
     - watch:
       - file: /etc/ssh/sshd_config
[root@localhost init]# vim sshd_config
Port 22
Protocol 2
SyslogFacility AUTHPRIV
PasswordAuthentication yes
PermitEmptyPasswords no
ChallengeResponseAuthentication yes
Compression yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding yes
UsePAM yes
UseDNS no
Subsystem       sftp    /usr/libexec/openssh/sftp-server
LogLevel  DEBUG
 
#allowusers root@192.168.140.129
#allowusers root@192.168.140.1

sysctl.sls

内核参数调整

[root@localhost init]# vim sysctl.sls 
net.ipv4.conf.default.rp_filter:
  sysctl.present:
    - value: 1
net.ipv4.conf.default.accept_source_route:
  sysctl.present:
    - value: 0
 
kernel.sysrq:
  sysctl.present:
    - value: 0
 
kernel.core_uses_pid:
  sysctl.present:
    - value: 1
 
kernel.msgmnb:
  sysctl.present:
    - value: 65536
 
kernel.msgmax:
  sysctl.present:
    - value: 65536
 
kernel.shmmax:
  sysctl.present:
    - value: 68719476736
 
kernel.shmall:
  sysctl.present:
    - value: 4294967296
 
kernel.shmmni:
  sysctl.present:
    - value: 4096
 
kern.maxfiles:
  sysctl.present:
    - value: 65536
 
net.ipv4.tcp_fin_timeout:
  sysctl.present:
    - value: 30
 
net.ipv4.tcp_keepalive_time:
  sysctl.present:
    - value: 1200
 
net.ipv4.tcp_window_scaling:
  sysctl.present:
    - value: 1
 
net.ipv4.tcp_sack:
  sysctl.present:
    - value: 1
 
net.ipv4.tcp_syncookies:
  sysctl.present:
    - value: 1
 
net.ipv4.tcp_tw_reuse:
  sysctl.present:
    - value: 1
 
net.ipv4.tcp_tw_recycle:
  sysctl.present:
    - value: 1
 
net.ipv4.ip_local_port_range:
  sysctl.present:
    - value: 1024 65000
 
 
net.ipv4.tcp_max_tw_buckets:
  sysctl.present:
    - value: 6000
 
net.ipv4.tcp_max_syn_backlog:
  sysctl.present:
    - value: 65535
 
net.core.netdev_max_backlog:
  sysctl.present:
    - value: 262144
 
 
net.core.wmem_default:
  sysctl.present:
    - value: 8388608
 
net.core.rmem_default:
  sysctl.present:
    - value: 8388608
 
 
net.core.rmem_max:
  sysctl.present:
    - value: 16777216
 
net.core.wmem_max:
  sysctl.present:
    - value: 16777216
 
 
net.ipv4.tcp_timestamps:
  sysctl.present:
    - value: 0
 
net.ipv4.tcp_synack_retries:
  sysctl.present:
    - value: 2
 
net.ipv4.tcp_syn_retries:
  sysctl.present:
    - value: 2
 
net.ipv4.tcp_mem:
  sysctl.present:
    - value: 94500000 915000000 927000000
 
net.ipv4.tcp_max_orphans:
  sysctl.present:
    - value: 3276800
[root@localhost init]#

建立入口文件及管理文件

[root@localhost base]# pwd
/etc/salt/base
[root@localhost base]# ls
init  system_init.sls  top.sls
[root@localhost base]# vim system_init.sls 
include:
  - init.selinux
  - init.epel
  - init.date_time
  - init.soft_install
  - init.history
  - init.limits
  - init.sysctl
  - init.sshd_config
  - init.resolv
[root@localhost base]# vim top.sls 
base:
  '*':
      - system_init
[root@localhost base]#

执行命令

[root@localhost base]# salt '*' state.highstate test=True     执行前先测试
[root@localhost base]#  salt '*' state.highstate

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

讲真,你该做备份的有效性校验了

编辑手记:最近刷爆了朋友圈的GitLab删库事件惊醒了一大批运维人员,五重备份全部失效,这是真的吗?嗯,经过无数次确认,的确所有备份都失效。而我同样相信,存在类...

4236
来自专栏沃趣科技

Oracle数据库性能障碍分析利器:SYSTEMSTATE DUMP介绍

作者 孟庆辉 沃趣科技数据库工程师 当数据库出现严重的性能问题或者hang了的时候,我们非常需要通过systemstate dump来知道进程在做什么,在等待...

3637
来自专栏乐沙弥的世界

RMAN 配置、监控与管理

一个通道代表一个到设备(磁盘或磁带)的数据流并且在目标数据库或辅助数据库实例上产生一个相应的服务器会话(server session)

1121
来自专栏杨建荣的学习笔记

奇怪的登录问题及解决 (75天)

最近新建了好几个测试库,有一个库在过了一段时间之后,出现了很奇怪的问题,有时候能够登录,有时候又登不上。 通过sqlplus登录,报错如下: >sqlplus ...

2056
来自专栏我和未来有约会

Silverlight 3.0 中的 Local Connection

现在很多的需求中需要一个插件实例和另一个实例进行通讯。在同一个页面中调用Html、js等来通讯,而这个往往有一些限制,需要专门的去设置一些权限。在Silverl...

2117
来自专栏北京马哥教育

一些Centos Python生产环境的部署命令

拿到一台干净的centos之后, 初始化Python环境, 一些命令和问题记录而已 可以搞成脚本自动初始化, 当然, 用docker更好 基础环境 1. 创建...

2954
来自专栏散尽浮华

Linux下DNS服务(Bind9)之Web管理利器-NamedManager部署说明

NamedManager 是一个基于Web的DNS管理系统,可用来添加、调整和删除DNS的zones/records数据。它使用Bind作为底层DNS服务,提供...

1.1K8
来自专栏草根专栏

使用Identity Server 4建立Authorization Server (1)

本文内容基本完全来自于Identity Server 4官方文档: https://identityserver4.readthedocs.io/ 官方文档很详...

47510
来自专栏猿天地

Spring Cloud中如何保证各个微服务之间调用的安全性

一.背景 微服务架构下,我们的系统根据业务被拆分成了多个职责单一的微服务。 每个服务都有自己的一套API提供给别的服务调用,那么如何保证安全性呢? 不是说你想调...

58914
来自专栏bboysoul

如何黑入安卓手机(ezsploit)

安装很简单clone git clone https://github.com/rand0m1ze/ezsploit.git cd ezsploit ch...

1242

扫码关注云+社区