首页 > 其他分享 >ansible 自动化运维工具

ansible 自动化运维工具

时间:2022-11-20 13:58:01浏览次数:48  
标签:运维 ansible rsa 192.168 Ansible ssh 自动化 id

Ansible实战部署

三台虚拟机

Rsync01 192.168.0.10  被管理的机器

Nfs01            20 被管理的机器(配置好ssh服务 以及关闭防火墙等)

M01             30   管理的机器  

 

 

Ansible 管理机器 30

选择yum自动化安装 阿里云,epel原 ,前提得配置好

yum -y install epel-release

yum install ansible libselinux-python -y

 

被管理的机器10 20

yum -y install epel-release libselinux-python

 

查看你ansible的包在哪里30

rpm -ql ansible | grep -E '^/etc|^/usr/bin' 查看ansible的包

 

ansible –version 查看版本好

 

ansible 的管理方式 两种

传统 的ssh 密码验证

密钥管理

 

配置好 ansible 的配置文件 添加被管理的机器ip 地址或者主机名

备份现有的配置文件  (cp)

Vim hosts

[sever]

192.168.0.10

192.168.0.20

 

Ssh 密码认证方式管理机器

Ansible 是直接利用Linux本地的ssh 服务,以及一些远程的ssh操作,一般客户端的ssh都是开启的无需额外管理

30

-m 指定功能模块 默认就是comand

-a 告诉模块执行的参数

-k 询问密码验证

-u 指定运行的用户

例告诉被管理的机器,你要执行什么 ,以及用什么用户去执行

Ansible server -m command -a“hostname” -k -u root

如上的操作一般会有红色文字报错 只需要手动ssh对主机进行一次链接即可使用ansible命令

 

Ssh [email protected]  链接确认 yes  输入链接的主机密码即可

 

 

Ansible 认证之批量免密登录

每次执行ansible 命令的时候都需要输入对应的主机密码这样就很繁琐 因此我们可以设置免密登录的快捷方式

 

修改hosts文件 来实现ssh认证

可以在 /etc/ansible/hosts 定义好密码即可

192.168.0.10 ansible_user=root ansible_ssh_pass=123123

192.168.0.20 ansible_user=root ansible_ssh_pass=123123

Ansible_host   主机地址

Ansible_port    端口,默认是22端口

ansible_user    认证用户

ansible_ssh_pass  用户密码

 

以上的这个免密方式 如果 主机被攻陷 从机的信息也会被共攻陷的人拿到,所以我们需要ssh 密钥的方式批量管理主机 这个方式比hosts 文件更安全放心

创建shell 脚本文件 来 执行公私钥免密登录

ssh-keygen -f ~/.ssh/id_rsa -P "" > /dev/null 2>&1

-ssh-keygen 密钥生成的命令

-f 把私钥文件写到用户的家目录下的.shh目录当中,把私钥的信息写入到 id_rsa中

-p 指定空字符串 把空的密码写到私钥rsa中

把输出的信息(正确或者错误)重定向到dev/null 写道黑洞&1当中

此时检查公私要文件 cd /.shh  然后查看是否存在id_rsa这个文件

然后 创建一个脚本文件

命令如下

#!/bin/bash

rm -rf ~/.ssh/id_rsa*

ssh-keygen -f ~/.ssh/id_rsa -P "" > /dev/null 2>&1

SSH_Pass=123123

Key_Path=~/.ssh/id_rsa.pub

for ip in 30 40  (你的从机地址)

do

       sshpass -p$SSH_Pass ssh-copy-id -i $Key_Path "-o StrictHostKeyChecking=no"192.168.0.$ip

done

~                                                                                          

-o ‘ StrictHostKeyChecking=no’: 登录不需要确认  

连接主机就是

Ssh  o ‘ StrictHostKeyChecking=no’’要登陆的主机号’

总结

在生产环境中,ansible 的连接方式 最好就是配置 ssh公私要免密登录

如果生产环境要求较高 可以用普通用户执行 在提权操作

标签:运维,ansible,rsa,192.168,Ansible,ssh,自动化,id
From: https://www.cnblogs.com/smile020420/p/16908343.html

相关文章