8月21日 批量管理

远程管理服务配置文件

etc/ssh/sshd_config ssh服务端配置文件

/etc/ssh/ssh_config ssh客户端配置文件

#Port 22 指定服务端口号

#ListenAddress 0.0.0.0 任意主机地址都进行监听

#PermitRootLogin yes 是否允许root用户远程登录 oldboy -- su -- root (jumpserver)

#PermitEmptyPasswords no 是否允许无密码进行远程连接

#GSSAPIAuthentication yes 使用GSSAPI认证方式进行远程连接 影响ssh远程连接效率

#UseDNS yes 是否进行DNS反向解析过程 影响ssh远程连接效率

远程管理防范入侵

1.尽量使用密钥认证,不要使用密码认证

2.尽量让架构中的服务器没有外网网卡

3.对拥有外网地址服务器,做好服务地址监听,提高安全性

4.防火墙服务/硬件,根据业务情况,做安全访问控制 ACL访问控制 ASA

5.监控系统重要文件是否被修改 inotify 对比指纹信息(zabbix) /etc/ /var/

6.给重要文件信息上锁 chattr

用户相关文件上锁:passwd shadow group groupshadow

服务程序运行相关:rc.local profile.d/crond

系统环境配置相关:profile bashrc ifcfg-eth0 reslove.conf rsyncd.conf

批量管理服务概念介绍 ansible saltstack

同时并行管理多台主机

实现批量分发数据信息

实现批量部署软件服务

实现批量收集系统信息 资产管理

实现批量自动管理应用 代码上线 服务重启

ansible软件特点:

部署安装简单方便

软件不需要重启服务

客户端不需要进行配置

功能作用非常强大

如何配置使用软件

主机清单配置

vim /etc/ansible/hosts

172.16.1.41                  ansible管理端可以管理的主机信息

主机清单配置方法

官网参考:https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.htm

方法一:直接写上管理主机IP地址信息

172.16.1.41

172.16.1.31

172.15.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 rsync_client -m ping

方法三:设置管理主机连接参数(ansible程序内置变量)信息

[rsync_server]
172.16.1.41 ansible_user=root  ansible_password=123456  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=654321ansible_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.41ansible_user=oldboyansible_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]

遇到的问题

问题一:
    172.16.1.41 | UNREACHABLE! => {
        "changed": false, 
        "msg": "Failed to connect to the host via ssh: ssh: connect to host 172.16.1.41 port 22: Connection refused", 
        "unreachable": true
    }
排错方法:
01. 利用ssh命令远程连接测试

问题二:
    172.16.1.41 | UNREACHABLE! => {
        "changed": false, 
        "msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).", 
        "unreachable": true
    }
排错:
01. 分发公钥信息

    
问题三:
    [root@m01 ansible]# ansible 172.16.1.31 -m ping
    [WARNING]: Could not match supplied host pattern, ignoring: 172.16.1.31
    [WARNING]: No hosts matched, nothing to do
排错:
01. 修改主机清单信息
只有主机清单中定义主机信息,可以被ansible管理

掌握功能模块

第一个模块: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"
第一个里程:编写脚本
第二个里程:将脚本进行分发
ansible oldboy -m copy -a "src=/seripts/create_user.sh dest=/server/scripts/"
第四个里程:批量执行脚本
ansible oldboy -m shell -a "/server/scripts/create_user.sh"


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

你可能感兴趣的:(8月21日 批量管理)