ansible企业应用实战
一、为新系统添加安全认证SSHKey
一)ansible密码认证
1、配置inventory,默认配置/etc/ansible/hosts,添加配置如下
#定义k8s node主机组 [ops-k8s] ops-k8s-node01 ops-k8s-node02 #冒号分隔,vars定义变量,改变k8s node主机组默认连接信息 [ops-k8s:vars] #指定默认连接的用户和密码 ansible_ssh_user = "root" ansible_ssh_pass = "admin@123"
2、测试默认变量是否生效
# ansible ops-k8s -m shell -a "whoami" ops-k8s-node02 | SUCCESS | rc=0 >> root ops-k8s-node01 | SUCCESS | rc=0 >> root ops-k8s-master02 | SUCCESS | rc=0 >> root
3、调用Ansible authorized_key模块,添加认证至远程主机
方式一:使用认证模块
ansible ops-k8s -m authorized_key -a "user=root key='{{ lookup('file', '/root/.ssh/id_rsa.pub') }}' path=/root/.ssh/authorized_keys manage_dir=no"
方式二:调用ansible的copy模块和shell模块
#copy公钥远程主机/tmp目录下 ansible ops-k8s -m copy -a "src=/root/.ssh/id_rsa.pub dest=/tmp/id_rsa.pub" #添加公钥到指定目录下 ansible ops-k8s -m shelll -a "cat /tmp/id_rsa.pub >>/root/.ssh/authorized_keys"
4、删除连接用户信息,使用ansible命令进行验收
#定义k8s node主机组 [ops-k8s] ops-k8s-node01 ops-k8s-node02
##将下面的内容删除 #冒号分隔,vars定义变量,改变k8s node主机组默认连接信息 #[ops-k8s:vars] #指定默认连接的用户和密码 #ansible_ssh_user = "root" #ansible_ssh_pass = "admin@123"
二)ssh-copy-id秘钥分发
使用ssh-copy-id用于复制指定用户的公钥至远程服务器,同时修改~/.ssh的目录权限。
1、向单台服务器秘钥分发
非交互性创建秘钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1
分发公钥
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no -p52113 172.16.1.41"
2、基于sshpass批量秘钥分发
sshpass使用链接:https://linux.cn/article-8086-1.html
#安装sshpass yum install sshpass
#/bin/bash #fenfa all pub key by wzs at 20161014 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1 for n in 31 61 41 7 8 do sshpass -p 123456 ssh -o StrictHostKeyChecking=no 172.16.1.$n "mkdir -m 700 -p ~/.ssh/" sshpass -p 123456 scp -o StrictHostKeyChecking=no ~/.ssh/id_dsa.pub wzs@172.16.1.$n:~/.ssh/authorized_keys sshpass -p 123456 ssh -o StrictHostKeyChecking=no 172.16.1.$n "chmod 600 ~/.ssh/authorized_keys" /bin/ls -ld /home/wzs/.ssh /bin/ls -l /home/wzs/.ssh done
3、使用expect配置免密码登录
#!/bin/bash keypath=/root/.ssh [ -d ${keypath} ] || mkdir -p ${keypath} rpm -q expect &> /dev/null || yum install expect -y ssh-keygen -t rsa -f /root/.ssh/id_rsa -P "" password=centos for host in `seq 10 14`;do expect <<EOF set timeout 5 spawn ssh-copy-id 192.168.2.$host expect { "yes/no" { send "yes\n";exp_continue } "password" { send "$password\n" } } expect eof EOF done
二、企业高可用架构的ansible应用
Ansible 使用高级进阶:https://blog.csdn.net/achuDk/article/details/74892903
《Ansible权威指南》第九章
9.2 企业高可用架构的Ansible应用
9.3 ELK日志系统基于Ansible的自动化实现
9.4 实时日志系统基于Ansible的自动化实现
9.5 Zabbix基于Ansible的自动化实现
9.6 Ansible+Git+GitLab实现自动化发布
9.7 Docker的Ansible自动化应用
三、ansible图形化界面 ansible tower 安装方法
https://blog.csdn.net/xiaocao12/article/details/54864082
四、ansible管理Windows服务器实践
ansible管理windows实践 https://www.cnblogs.com/kingleft/p/6391652.html
powershell 扩展 (PSCX) 安装指南 http://www.cnblogs.com/kingleft/p/6444125.html
五、部署分布式日志系统
部署分布式日志系统 https://www.cnblogs.com/zhaojiankai/p/7678700.html
六、ansible全面学习实战
ansible全面学习实战 https://www.jianshu.com/p/c56a88b103f8
学习链接:http://www.zsythink.net/archives/category/%E8%BF%90%E7%BB%B4%E7%9B%B8%E5%85%B3/ansible/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具