day37综合架构批量管理篇

  • 远程管理配置文件参数

  • 远程管理防范入侵方法

  • 批量管理服务概念作用

  • 批量管理服务安装部署

  • 批量管理服务配置应用

    • 主机清单配置部分
    • 模块功能应用

1.远程管理服务配置文件

/etc/ssh/sshd_config   ---ssh服务端配置文件
/etc/ssh/ssh_config    ---ssh客户端配置文件
服务端部分配置说明:
    #Port 22               --- 指定服务端口号  52113 
    #ListenAddress 0.0.0.0 --- 任意主机地址都进行监听
     PS: 所有服务监听的地址只能是本地网卡上有的地址
    #PermitRootLogin yes   --- 是否允许root用户远程登录 oldboy -- su -- root  (jumpserver)
    #PermitEmptyPasswords no    --- 是否允许无密码进行远程连接
    #GSSAPIAuthentication yes   --- 使用GSSAPI认证方式进行远程连接  影响ssh远程连接效率
    #UseDNS yes                 --- 是否进行DNS反向解析过程         影响ssh远程连接效率

2.远程管理防范入侵
  01.尽量使用秘钥认证,不要使用密码认证(或者密码复杂,定期修改)
  02.尽量让架构中的服务器没有外网网卡
  03.对于拥有外网地址服务器,做好服务地址监听,提高安全性
  04.防火墙服务/硬件,根据业务情况做安全访问控制(ACL访问控制)
  05.监控系统重要文件是否被修改(inotify 对比指纹信息)
  如/etc、/var
  06.给重要文件信息上锁(chattr)
    用户相关文件上锁: passwd shadow group groupshadow
    服务程序运行相关: rc.local profile.d/ crond
    系统环境配置相关: profile bashrc ifcfg-eth0 reslove.conf rsyncd.conf

补充chattr:
chatter: 锁定文件,不能删除,不能更改
        +a:  只能给文件添加内容,但是删除不了,
              chattr +a  /etc/passwd
        -d:      不可删除
        加锁:chattr +i  /etc/passwd       文件不能删除,不能更改,不能移动
        查看加锁: lsattr /etc/passwd      文件加了一个参数 i 表示锁定
        解锁:chattr -i /home/omd/h.txt    - 表示解除

3.批量管理服务概念介绍(ansible)

ansible:自动化运维工具,基于Python开发、SSH远程管理服务实现远程主机批量管理,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

ansible软件特点:
a.部署安装简单方便,不需要编写配置文件(/etc/ansible/ansible.cfg)
b.管理端不需要启动服务
c.客户端不需要进行配置
d.服务程序管理操作模块众多(module)
e.利用剧本编写来实现自动化(playbook)

ansible批量管理服务功能:
a 实现批量分发数据信息
b 实现批量部署软件服务
c 实现批量收集系统信息 资产管理
d 实现批量自动管理应用 代码上线 服务重启

4.ansible软件部署过程

管理端:
        第一个里程:安装软件
        yum install -y ansible
       
被管理者:确认防火墙和selinux安全服务是否关闭

5.如何配置使用软件

ansible命令语法格式.png

1).主机清单配置

vim /etc/ansible/hosts
    172.16.1.41                  --- ansible管理端可以管理的主机信息
    
    主机清单配置方法:
    官方参考: https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html
    方法一: 直接写上管理主机IP地址信息
    172.16.1.41
    172.16.1.31
    172.16.1.7

    进行测试:
    ansible 172.16.1.31,172.16.1.41 -m ping    --- 单台或多台主机测试
    ansible all -m ping                        --- 对所有管理主机测试

方法二: 按照分组信息进行配置   *****
    [rsync_server]
    172.16.1.41
    
    [rsync_client]
    172.16.1.31
    172.16.1.7
    
    进行测试:
    ansible 管理谁 -m 模块 信息实现什么功能
    ansible rsync_client -m ping

方法三: 设置管理主机连接参数(ansible程序内置变量)信息
    [rsync_server]
    172.16.1.41  ansible_user=root ansible_password=654321 ansible_port=22
    
    [rsync_server]
    backup  ansible_host=172.16.1.41 ansible_user=root ansible_password=654321 ansible_port=22

    [rsync_server]
    www.oldboy.com ansible_user=root ansible_password=654321 ansible_port=22
    
    ansible_user      --- 指定远程连接用户信息
    ansible_password  --- 指定远程连接用户密码
    ansible_port      --- 指定远程连接服务端口
    ansible_host      --- 可以使用主机名称进行管理  参数后面指定IP地址  参数前面指定主机名信息  

方法四: 嵌入式配置主机清单
    [rsync:children]
    rsync_server
    rsync_client
    
    [rsync_server]
    www.oldboy.com ansible_host=172.16.1.41 ansible_user=oldboy ansible_password=654321 ansible_port=22
    
    [rsync_client]
    172.16.1.31
    172.16.1.7
    
    进行测试:
    ansible rsync -m ping

[rsync_client]
    172.16.1.31
    172.16.1.7
    [rsync_client:vars]        --- 对管理组中所有主机信息,统一设置变量
    ansible_user=root
    ansible_password=654321
    ansible_port=22

方法五: 使用匹配符号信息,匹配多个主机
    [rsync_client]
    172.16.1.[1:7]
    
    [rsync_client]
    web-[a:z]

2).功能模块

第一个模块(默认模块): command  命令模块 批量执行命令  
    ansible oldboy -m command -a "hostname"

第二个模块(万能模块): shell    命令模块 批量执行命令     
    ansible oldboy -m shell -a "yum install -y htop"
    ansible oldboy -m shell -a "cd /tmp;pwd"

第三个模块: script   命令模块 批量运行脚本  
    第一个里程:  编写脚本 
    第二个里程: 批量执行脚本
    ansible oldboy -m script -a "/server/scripts/create_user.sh"

专业的模块干专业的事:如使用脚本创建一个用户(利用万能模块和script模块对比)
万能模块:
        第一个里程: 编写脚本
    第二个里程: 将脚本进行分发
    ansible oldboy -m copy -a "src=/server/scripts/create_user.sh dest=/server/scripts/"
    第三个里程: 修改脚本权限
    ansible oldboy -m file -a "path=/server/scripts/create_user.sh mode=755"
    第四个里程: 批量执行脚本
    ansible oldboy -m shell -a "/server/scripts/create_user.sh"

你可能感兴趣的:(day37综合架构批量管理篇)