这是我参与8月更文挑战的第6天。linux
《运维思索:Cobbler无人值守实现操做系统安装规范化》一文只是实现了对操做系统的主机名、网络、磁盘分区的安装规范,但此时还不可以直接用于生产,由于操做系统还有不少配置没有进行优化,接下来的工做就是要对操做系统进行配置规范化。c++
让咱们先中止手头无休止的工做,来简单回想下曾经配置过数不清的服务器,配置过程是否和如下有所相似:vim
阿里源、163源、epel源等安全
gcc、gcc-c++、cmake、wget、iftop、supervisor等bash
a.终端超时时间 b.优化history服务器
a. 文件描述符65535
b. 进程数65535markdown
a. 端口更改 ----测试阶段还是22 b. 禁止root登陆等优化网络
a. 关闭iptables 、firewall b. 有防火墙,作基础配置运维
rc.local 须要受权755,默认缺乏可执行权限。ssh
密码复杂度、禁止无用服务等
以上基本都是操做系统配置优化可能涉及到的点,相信咱们确定都配置过。重点是咱们还在日复一日的手动或脚本化的个性化执行,仍是已经提取规范、在团队中流转自动化、批量化按需执行?
是的,若是运维团队不大,手动或脚本可以知足配置需求;但一旦上规模,团队中每一个人因为我的认知、习惯等,配置后的系统差别化很大?此时就凸显了配置规范化的重要性,配合自动化运维工具,可实现配置的自动化、批量化及按需配置等功能。
对于规范,咱们仍是要按照统一的规范编写风格,遵循简单清晰、直观展现
的原则,详见《运维思索:运维规范如何生成?》 固然规范的依据是创建在事实基础之上,在上文已经提出了,咱们只需将其整合如下便可,具体涉及如下几方面:
用户
服务器使用固定用户,主要为管理用户、应用用户、日志用户
软件源
安装基础组件须要经过统一的软件源
关闭服务
统一关闭selinux、iptables、sendmail、postfix等无用服务
初始目录
建立固定的初始目录,如应用、日志、备份等目录
limit及内核参数
DNS及NTP
环境变量及历史命令记录
终端超时
历史命令记录及远程备份
ssh优化
禁止root登陆
ssh登陆慢优化
修改默认端口
安全设置
密码复杂度及长度等
禁止ctrl+alt+delete等
为了不规范化细节输出,给本就不轻松的运维工做增长额外的负担,所以咱们仍是列举要点,至于细节能够参看自动化部署内容,便于咱们规范+实操的有效结合。
结合配置规范化,咱们下一步的工做就是自动化的实现。在此为应对不通服务器的需求,咱们最好是能实现按需配置
,即既能够实现配置的所有执行,也能够实现某个配置需求的单独执行。所以咱们要提早作好功能的分配
。 在此咱们使用ansible对服务器进行配置的自动化彻底化,以及经过tag实现按需配置。
#对配置自动化经过ansible-playbook实现
vim os_init.yml
- hosts: "{{ host_ip }}"
gather_facts: yes
remote_user: root
roles:
- os_init
#其中task以下
vim mail.yml
- include: user.yml #用户管理
- include: repo.yml #yum源
- include: init_pkg.yml #安装基础组件
- include: profile.yml #环境变量
- include: selinux.yml #selinux
- include: dir.yml #基础目录
- include: limits.yml #系统参数
- include: iptables.yml #防火墙
- include: sysctl.yml #内核参数
- include: rc.local.yml #开机启动
- include: dns.yml #dns
- include: ntp.yml #ntp
- include: rsyslog.yml #日志同步
- include: sshd.yml #ssh优化
- include: safe.yml #安全配置
#服务器配置彻底化
ansible-playbook -b -e host_ip=10.10.2.10 -v os_init.yml
#经过tag实现单独添加用户
ansible-playbook -b -e host_ip=10.10.2.10 -v os_init.yml -t user
#经过tag实现单独安全配置
ansible-playbook -b -e host_ip=10.10.2.10 -v os_init.yml -t safe
复制代码
咱们经过host_ip既能够实现服务器的单独执行,也能够配置经过ansible资产实现服务器的批量执行。
在操做系统的安装规范化+配置规范化前提下,结合Cobbler+Ansible实现了操做系统的安装、配置自动化,能够在必定程度上解决运维工做中的基础运维部分,其更深远的意义在于有效避免了因配置参数混乱致使的生产问题,为往后更多的自动化接入打好了基础。