saltstack之配置管理实践1 系统初始化配置

6年前 (2017-05-24) gtj saltstack, 自动化 0评论 已收录 1065℃

下面我们使用saltstack配置管理完成下面的架构:



1、系统初始化 改DNS,调整内核参数,安装必要的软件
2、功能模块 (haproxy、nginx、php等独立软件,可以被引用多次使用)
3、业务模块 (所有的状态是以业务为单位)

mkdir /srv/salt/base/init/
1、配置dns解析
vim /srv/salt/base/init/dns.sls
/etc/resolv.conf:
file.managed:
- source: salt://init/files/resolv.conf
- user: root
- group: root
- mode: 644
mkdir /srv/salt/base/init/files
cp /etc/resolv.conf /srv/salt/base/init/files/

2、history记录时间:
http://blog.csdn.net/evils798/article/details/7991367

追加内容到文件:append
[root@linux-node1 ~]# vim /srv/salt/base/init/history.sls
/etc/profile:
file.append:
- text:
- export HISTTIMEFORMAT="%F %T `whoami`"

3、记录所有命令到messages:
测试:
http://wushank.blog.51cto.com/3489095/1623832
[root@linux-node1 ~]# export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg";}'
[root@linux-node1 ~]# uptime ##在敲此命令前打开 tail -f /var/log/messages
11:30:22 up 1 day, 16:29, 3 users, load average: 0.00, 0.00, 0.00

另打开一个窗口:
[root@linux-node1 ~]# tail -f /var/log/messages
May 17 11:29:54 linux-node1 root: [euid=root]:root pts/1 2017-05-17 05:35 (10.20.23.1):[/root]export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg";}'
May 17 11:30:22 linux-node1 root: [euid=root]:root pts/1 2017-05-17 05:35 (10.20.23.1):[/root]uptime
##euid是root,,用户名root,,来自于哪个shell:pts/1,,当前的时间 在哪个目录下执行的,命令是什么

##下面使用saltstack进行编写:
[root@linux-node1 ~]# vim /srv/salt/base/init/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";}'

4、修改内核配置:
我们所有的系统都需要修改内核参数,一般都是修改/etc/sysctl.conf,,有两种方法,一是直接管理这个文件,(不推荐,,因为每台机器的内存不可能完全一样,,和内存相关的参数都是根据内存自行分配的,,不可能所有的都一样),,二是直接向文件里添加内容,,但是也不方便,,saltstack提供了一种修改内核参数的模块,可以使用这个模块进行配置(sysctl)
https://docs.saltstack.com/en/latest/ref/states/all/salt.states.sysctl.html#configuration-of-the-linux-kernel-using-sysctl

[root@linux-node1 ~]# cat /proc/sys/vm/swappiness ##交换分区使用
60
[root@linux-node1 ~]# cat /proc/sys/net/ipv4/ip_local_port_range ##本地随机端口的分配
32768 61000
[root@linux-node1 ~]# cat /proc/sys/fs/file-max ##能打开的最大连接数
97132
[root@linux-node2 ~]# cat /proc/sys/net/ipv4/ip_nonlocal_bind ##能否监听非本地ip,0不可以,1可以,做负载均衡时要改为1
0

[root@linux-node1 ~]# vim /srv/salt/base/init/sysctl.sls ##还有很多,,主要学习方法
vm.swappiness:
sysctl.present:
- value: 0

net.ipv4.ip_local_port_range:
sysctl.present:
- value: 10000 65000

fs.file-max:
sysctl.present:
- value: 100000

5、整理并进行测试:
[root@linux-node1 ~]# ll /srv/salt/base/init
总用量 20
-rw-r--r-- 1 root root 169 5月 17 11:49 audit.sls
-rw-r--r-- 1 root root 131 5月 17 09:14 dns.sls
drwxr-xr-x 2 root root 4096 5月 17 09:15 files
-rw-r--r-- 1 root root 87 5月 17 09:33 history.sls
-rw-r--r-- 1 root root 173 5月 17 12:07 sysctl.sl
##若是此处还有多个文件,想要一次性执行的话,就得在top.sls一一列出,,我们可以写一个文件,把此处的文件都包含在内,这样在top.sls只要写一个就好了:
[root@linux-node1 ~]# vim /srv/salt/base/init/env_init.sls
include:
- init.dns
- init.history
- init.audit
- init.sysctl
[root@linux-node1 ~]# vim /srv/salt/base/top.sls
base:
'*':
- init.env_init
##现在已经完成一部分,,若是此时我想测试下写的内容对不对,就在后面加上test=True就OK了
[root@linux-node1 ~]# salt '*' state.highstate test=True

博主

这货来去如风,什么鬼都没留下!!!

相关推荐

嗨、骚年、快来消灭0回复。

×
订阅图标按钮
Less is more!!!