美文网首页
day 37 综合架构批量管理 ansible

day 37 综合架构批量管理 ansible

作者: 流云若雨 | 来源:发表于2019-08-21 16:11 被阅读0次

课程介绍部分

1.远程管理配置文件参数
2.远程管理方法入侵方法
3.批量管理服务概念作用
4.批量管理服务安装部署
5.批量管理服务配置应用
    a 主机清单配置部分
    b 掌握模块功能应用
    c 掌握剧本功能配置

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

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

二.远程管理防范 入侵

1.尽量使用秘钥认证   不要使用密码认证(注意密码复杂度)
2.尽量让架构中的服务器没有外网网卡
3.对于拥有外网地址服务器,做好服务地址监听,提高安全性
4.防火墙服务/硬件,根据业务情况,做安全访问配置
5.监控系统重要文件是否被修改    inotfy
        /etc/profile
        /var/
6.给重要文件信息上锁
      用户相关文件上锁:passwd,shadow-group grouppashdow
      服务程序运行相关:rc.local   proiled.d   crond 
系统环境配置相关:profile bashrc ifcfg-eth0  reslove.conf  rsyncd.conf

三.批量管理服务概念介绍

同时并行 管理多台主机
a 实现批量分发数据信息
b 实现批量部署软件服务
c 实现批量收集系统信息   资产管理
d 实现批量自动化管理应用   代码上线   服务重启  
ansible软件特点
1.部署安装简单方便
2.软件不需要启动服务
3.客户端不需要进行配置
4.功能作用非常强大

四.ansible软件部署过程

管理端:
第一个里程:安装软件
yum install -y ansible
ansible.cfg   ---ansible程序配置文件   默认配置即可
hosts      ------主机清单文件
roles
被管理端:
确认防火墙和selinux安全服务是否关闭

五.如何配置使用软件

1.主机清单配置
vim /etc/ansible/hosts
172.16.1.41      --- ansible管理端可以管理的主机信息
主机清单配置方法:
方法一:直接写上管理主机ip地址信息
172.16.1.41
172.16.1.31
172.16.1.7
进行测试:
ansible 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=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]

遇到的问题:
    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管理

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"

第一个里程: 编写脚本
第二个里程: 将脚本进行分发
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"  
虽然shell是万能的模块,但是在有些方面他是特别麻烦的  有专门的命令模块
第三个模块:script 命令模块 批量运行脚本
第一个里程:编写脚本
第二个里程:批量执行脚本
ansible oldboy -m script -a "/server/scripts/create_user.sh"    
补充:如何学习模块使用方法:
01. 简单了解模块作用
    command – Execute commands on targets  在目标主机上执行命令模块
02. 模块详细说明
03. 掌握模块参数用法
    根据样例学习参数信息
补充:学习ansible会有不同颜色提示
01.绿色:对主机信息进行查看,操作执行成功
02.黄色:对主机信息进行查看,对主机中信息有改动修改
03.紫色:错误提示信息,建议忠告信息 
04.红色:报错提示信息
3.掌握剧本编写

作业:

01. 解释ssh远程连接数据加密方式    三组  HTTPS 
对称加密
非对称加密
哈希函数加密

02. 如何利用xshell软件实现基于秘钥方式连接虚拟主机
vim /etc/ssh/sshd_config
47 AuthorizedKeysFile      .ssh/authorized_keys

03. 批量分发秘钥时, 每台主机密码不一样, 每台主机远程服务端口不一样
思路: 1 创建一个用户主机IP 端口 密码文件 
cat >> /server/scripts/host_txt <<EOF   
172.16.1.7    123123  22
172.16.1.31   321321  52113
172.16.1.41   321321  52114
EOF

思路: 2 读取加载文件每一行信息
cat /server/scripts/host_txt|\
while read line 
do 
   xxx
done

while read line 
do 
   xxx
done </server/scripts/host_txt

思路: 3. 读取每一行时, 要提取出相应信息
host_IP="$(awk '{print $1}' $line)"
host_pass="$(awk '{print $2}' $line)"
host_port="$(awk '{print $3}' $line)"
sshpass -p$host_pass ssh-copy-id -i "公钥文件"  $host_IP -o xxx=no  -p $host_port 

04. 课程知识总结:

1. ssh远程管理服务配置文件   监控参数作用
2. ssh远程管理服务防范入侵 
3. ansible软件功能作用
4. ansible软件部署过程 
5. ansible软件配置应用
   a ansible主机清单配置方法  5种方法
   b ansible主机模块功能应用  3个模块 command(默认模块) shell(万能模块) script(批量执行脚本模块)      

作业:
01. ansible利用域名管理主机时, 每次都需要有yes/no确认, 如何实现免交互  四组
02. 以下四个内置变量有什么用
ansible_become
ansible_become_method
ansible_become_user
ansible_become_password
03. 自学两个模块使用方法
expect – Executes a command and responds to prompts
telnet – Executes a low-down and dirty telnet command   

相关文章

网友评论

      本文标题:day 37 综合架构批量管理 ansible

      本文链接:https://www.haomeiwen.com/subject/fvbvsctx.html