D-37综合架构批量管理 ansible(自动化软件)

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

/etc/ssh/sshd_config --- ssh服务端配置文件
/etc/ssh/ssh_config --- ssh客户端配置文件
cat /etc/ssh/sshd_config
内部重要信息
Port 22 --- 指定服务端口号 52113
ListenAddress 0.0.0.0 --- 任意主机地址都进行监听
PS: 所有服务监听的地址只能是本地网卡上有的地址


image.png

PermitRootLogin yes --- 是否允许root用户远程登录,当参数修改为no时,则代表root用户不可以远程连接到服务器中,此时需先以普通用户的身份进入到服务器中再进行su的切换
PubkeyAuthentication yes --- 是否允许使用公钥的方式进行连接,且下方显示为存储公钥信息的相关文件
PermitEmptyPasswords no --- 是否允许无密码进行远程连接
GSSAPIAuthentication yes --- 使用GSSAPI认证方式进行远程连接;建议设置成no,yes会影响ssh远程连接效率
UseDNS yes --- 是否进行DNS反向解析过程;前提是必须再host文件中配置dns解析关系,才可以进行相应的IP地址戒心,建议配置为no,yes影响ssh远程连接效率

二、远程管理防范入侵

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

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

同时并行管理多台主机

a 实现批量分发数据信息
b 实现批量部署软件服务
c 实现批量收集系统信息 ==>资产管理
d 实现批量自动管理应用 ==>代码上线、服务重启
使用脚本批量管理是串行管理,需一台一台服务器执行,效率低

ansible软件特点

a 部署安装简单方便
b 软件不需要启动服务
c 客户端不需要进行配置
d 功能作用非常强大

四、ansible软件部署过程:

管理端:

仅此一步:安装软件
yum install -y ansible
ansible内部数据信息
ansible.cfg --- ansible程序配置文件 默认配置即可
hosts --- 主机清单文件
roles --- 角色文件(一般为空文件)

被管理端:

确认防火请和selinux安全服务是否关闭

五、 如何配置使用软件

主机清单配置

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 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(使用域名的方式进行远程管理,但必须再host配置文件中进行相关解析)

内置变量意义:
ansible_user --- 指定远程连接用户信息
ansible_password --- 指定远程连接用户密码
ansible_port --- 指定远程连接服务端口
ansible_host --- 可以使用主机名称进行管理 参数后面指定IP地址 参数前面指定主机名信息
如:nfs ansible_host=172.16.1.31

方法四: 嵌入式配置主机清单
第一种
[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
}
排错方法:利用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
}
排错:分发公钥信息

问题三:

[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

排错:修改主机清单信息
ps:只有主机清单中定义主机信息,可以被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=/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"

第三个模块: script 命令模块 批量运行脚本
第一个里程:编写脚本
第二个里程: 批量执行脚本(不用添加任何权限)
ansible oldboy -m script -a "/server/scripts/create_user.sh"

补充: 如何学习模块使用方法:

1.简单了解模块作用
command – Execute commands on targets 在目标主机上执行命令模块
2.模块详细说明
3.掌握模块参数用法:根据样例学习参数信息

PS学习ansible会有不同颜色提示

  1. 绿色: 对主机信息进行查看, 操作执行成功
  2. 黄色: 对主机信息进行查看, 对主机中信息有调整修改
  3. 紫色: 错误提示信息, 建议忠告信息
  4. 红色: 报错提示信息
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容