美文网首页
自动化运维 ansible 安装及免密配置

自动化运维 ansible 安装及免密配置

作者: WeekDiffculty | 来源:发表于2023-07-29 11:04 被阅读0次

    管理机

    1、选择yum自动化安装,阿里云epel源,提前配置好

    yum install epe-release -y
    
    yum install ansible libselinux-python -y
    
    

    2、检查 assible软件安装情况,查询配置文件,和可执行命令
    [root@localhost conf]# rpm -ql ansible | grep -E '/etc|/usr/bin'

    rpm -ql ansible | grep -E '^/etc|^/usr/bin'
    

    3、检查ansible版本

    ansible --version
    
    

    再准备ansible 被管理机器

    安装ansible所需要的系统模块

    yum install peel-release libselinux-python -y 
    
    

    ansible 管理方式

    ansible批量管理机器的方式主要有两种

    • 传统的ssh密码验证
    • 密钥管理
    配置好aisle的配置文件,添加被管理的机器ip地址,或者主机名
    1、备份现有的配置文件
    cp /etc/ansible/hosts{,.ori}
    
    同上面的命令
    2、添加管理的机器ip
    vim /etc/ansible/hosts
    [fengge]
    192.168.101.67
    192.168.101.68
    

    SSH 密码认证方式管理

    ansible是直接利用Linux本地ssh服务,以及一些远程的操作,一般情况客户端ssh默认开启

    1、在管理机执行如下命令
    -m 指定功能模块,默认command模块
    -a 告诉模块需要执行的参数
    -k 询问密码验证
    -u 指定运行的用户
    在管理机上,告诉其他别管理机器,你要执行什么命令,以及用什么用户去执行
    ansible fengge -m command -a "hostname" -k -u root
    
    2、执行完通常报错,需要手动ssh进行一次连接
    
    3、再次执行 
    
    

    配置免密登陆

    ansible自带的密码认证参数

    可以在/etc/ansible/hosts 文件中定义好密码即可实现快速认证,远程管理主机
    
    参数
    ansible_host   主机地址
    ansible_port    端口,默认22
    ansible_user    认证的用户
    ansible_ssh_pass    用户认证的密码
    
    使用修改hosts文件实现认证
    [fengge]
    192.168.101.66 ansible_user=root ansible_ssh_pass=123456
    192.168.101.67 ansible_user=root ansible_ssh_pass=123456
    192.168.101.68 ansible_user=root ansible_ssh_pass=123456
    
    [root@localhost ansible]# ansible fengge -m command -a "hostname"
    192.168.101.67 | CHANGED | rc=0 >>
    localhost.localdomain
    192.168.101.68 | CHANGED | rc=0 >>
    localhost.localdomain
    192.168.101.66 | CHANGED | rc=0 >>
    localhost.localdomain
    

    SSH密钥方式批量管理机器

    1、在管理机上创建ssh密钥对

    [root@localhost ~]# ssh-keygen -f ~/.ssh/id_rsa -P "" > /dev/null 2>%1
    

    2、此时检查私钥文件

    [root@localhost ~]# cd ~/.ssh/
    [root@localhost .ssh]# ls
    authorized_keys  id_rsa  id_rsa.pub  known_hosts
    

    编写公钥分发脚本

    #!/bin/bash
    rm -rf ~/.ssh/id_rsa*
    ssh-keygen -f ~/.ssh/id_rsa -P "" > /dev/null 2>&1
    SSH_Pass=123456
    Key_Path=~/.ssh/id_rsa.pub
    for ip in 66 67 68
    do
            sshpass -p$SSH_Pass ssh-copy-id -i $Key_Path "-o StrictHostKeyChecking=no" 192.168.101.$ip
    done
    # 非交互式分发公钥需要用sshpass指定ssh密码,通过-o StrictHostKeyChecking=no 跳过SSH链接确认信息
    

    sh ssh_key_send 执行脚本

    ansible fengge -m command -a "uname -a"
    

    此时在管理机上再链接客户机就不需要密码了,

    总结

    在生产环境中,ansible的链接方式,二选一即可,最好是配置ssh公私钥密码登录

    相关文章

      网友评论

          本文标题:自动化运维 ansible 安装及免密配置

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