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/

七、ansible Galaxy角色仓库

  https://blog.51cto.com/u_10308545/2665192

posted @   思维无界限  阅读(2443)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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工具
点击右上角即可分享
微信分享提示

目录导航