ansible开局配置-openEuler

ops/2024/11/2 10:30:55/

ansible干啥用的就不多介绍了,这篇文章主要在说ansible安装、开局配置、免密登录

ansible_2">ansible安装

  1. 查看系统版本
cat /etc/openEuler-latest

输出内容如下:

openeulerversion=openEuler-24.03-LTS

compiletime=2024-05-27-21-31-28

gccversion=12.3.1-30.oe2403

kernelversion=6.6.0-28.0.0.34.oe2403

openjdkversion=1.8.0.412.b08-5.oe2403

  1. 清除软件库缓存
dnf clean all
  1. 建议软件库缓存
dnf makecache 
  1. 安装epel-release软件仓
    1. 下载对应版本epel-release的软件仓库
# 不同系统版本需要安装不同的epel-release
wget https://mirrors.aliyun.com/repo/epel-testing.repo
2. 重新建立软件库索引
mv epel-testing.repo /etc/yum.repo.d/
dnf clean all 
dnf makecache 
  1. 安装ansible
dnf -y install ansible

等待安装完成即可

开局配置

  1. 常用文件介绍

/etc/ansible/hosts ## 用于存放需要批量管理的主机IP或主机名称

/etc/ansible/ansible.cfg ## 该文件为ansible的主要配置文件

  1. 添加主机到ansible
192.168.0.10    ansible_ssh_pass=主机密码        ansible_ssh_user=主机账号
192.168.0.11    ansible_ssh_pass=主机密码        ansible_ssh_user=主机账号
192.168.0.12    ansible_ssh_pass=主机密码       ansible_ssh_user=主机账号

ansible_ssh_pass:远程主机登录密码

ansible_ssh_user:远程主机登录账号

  1. 远程执行ping命令,会发现执行报错
ansible all -m ping

输出内容如下:

192.168.0.10 | FAILED! => {

“msg”: “Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support
this. Please add this host’s fingerprint to your known_hosts file to
manage this host.”

}

192.168.0.11 | FAILED! => {

“msg”: “Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support
this. Please add this host’s fingerprint to your known_hosts file to
manage this host.”

}

192.168.0.12 | FAILED! => {

“msg”: “Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support
this. Please add this host’s fingerprint to your known_hosts file to
manage this host.”

}

出现这个问题主要是因为ansible默认是没有开启账号密码登录的,默认采用证书登录,只需要在配置文件中把证书登录关闭就可以执行成功了。

进入/etc/ansible/ansible.cfg文件,将host_key_checking = False取消注释或者增加该内容即可

再次重新执行就不会有问题了,成功后输出内容如下

192.168.0.11 | SUCCESS => {

"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"},"changed": false,"ping": "pong"

}

192.168.0.10 | SUCCESS => {

"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"},"changed": false,"ping": "pong"

}

192.168.0.12 | SUCCESS => {

"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"},"changed": false,"ping": "pong"

}

配置免密登录

  1. 生成密钥
ssh-keygen

一路回车即可,输出内容如下:

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa

Your public key has been saved in /root/.ssh/id_rsa.pub

The key fingerprint is:

SHA256:+RGyyNnrIHOLllk+e2hpNyTmxjBZkMY5vvDmTGuEh5g root@ecs-5352

The key’s randomart image is:

±–[RSA 3072]----+

| . o |

| B |

| o o . . |

| . …+ + . |

| o = ++ S . |

|E o @ + .o . |

| Bo%o=. . |

| O=@++ |

| o.+o=… |

±—[SHA256]-----+

  1. 编写playbook脚本文件
- hosts: # 主机组remote_user: # 用户名tasks:- name: push ansible keyauthorized_key: user=root key="{{ lookup('file' ,'密钥存放位置')}}" state=present

示例:

- hosts: allremote_user: roottasks:- name: push ansible keyauthorized_key: user=root key="{{ lookup('file' ,'/root/.ssh/id_rsa.pub')}}" state=present
  1. 执行playbook脚本文件
ansible-playbook push_key.yml

输出结果如下表示执行成功:

[root@ecs-5352 yml]# ansible-playbook push_key.yml

PLAY [all]


TASK [Gathering Facts]


ok: [192.168.0.10]

ok: [192.168.0.12]

ok: [192.168.0.11]

TASK [push ansible key]


changed: [192.168.0.10]

changed: [192.168.0.12]

changed: [192.168.0.11]

PLAY RECAP


192.168.0.10 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

192.168.0.11 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

192.168.0.12 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

  1. 测试是否可以免密
    1. ansible.cfg配置文件中的host_key_checking = False注释掉

2. 删除hosts文件主机后面的用户名和密码

3. 测试执行ping命令
ansible all -m ping

输出结果如下:

192.168.0.10 | SUCCESS => {

"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"},"changed": false,"ping": "pong"

}

192.168.0.12 | SUCCESS => {

"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"},"changed": false,"ping": "pong"

}

192.168.0.11 | SUCCESS => {

"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"},"changed": false,"ping": "pong"

}

  1. 再次测试

直接在ansible主机上,使用ssh命令测试是否可以免密登录

ssh root@192.168.0.11

无需输入密码即可登录成功


http://www.ppmy.cn/ops/130397.html

相关文章

threadLocal的运用

RequestAttributes requestAttributes RequestContextHolder.getRequestAttributes();//使用哪一个取决于springmvc在保存request信息时具体用的子类,他们通常无父子单独实现、//如果有父子可以继承第一个持有的httpServletRequestHttpServletRequest request ((S…

yocto如何获取现成recipes

在 OpenEmbedded 中查找特定的 recipes 可以通过以下几种方法: 1. 使用在线层索引网站: Layers.openembedded.org:这是一个常用的在线资源,您可以在该网站的相关页面中搜索特定的 recipes。 比如,访问 https://laye…

【网络】HTTP(超文本传输协议)详解

目录 引言一、HTTP的基本概念1.1 什么是HTTP?1.2 HTTP的工作流程 二、HTTP请求与响应2.1 HTTP请求格式2.2 HTTP响应格式 三、常见的HTTP状态码3.1 其他状态码示例 四、HTTP版本的演变4.1 HTTP/1.04.2 HTTP/1.14.3 HTTP/24.4 HTTP/3 五、HTTP的安全性5.1 HTTPS5.2 常…

高频电子线路---倍频器与振荡器

目录 倍频电路原理 丙类倍频器原理电路 问题: 提升滤波方法: 导通角 振荡器 振荡器基本工作原理 首先是怎么维持 那么如何振荡呢? 思考题: 组成要素 振荡器的起振条件 平衡条件 要点提示 稳定条件 振幅平衡 硬激励起振时: 稳定条件 相位平衡 倍频电路原理 简单原理 : …

微信小程序之流浪动物救助:爱与希望同行

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 🍅获取源码联系方式请查看文末🍅 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目…

springMVC中的请求拦截器

在Spring MVC中,请求拦截器(Interceptor)是一种可以用来拦截用户的请求,并进行一些预处理或后处理的机制。它主要用于实现诸如权限检查、记录日志、修改请求或响应等方面的功能。 要使用Spring MVC的拦截器,你需要创建…

Google推出了AI驱动的学习工具“Learn About”

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

C# 结构型设计模式----外观模式

1、简介 外观模式,顾名思义肯定是描述外在的一种表现,在人与人之间,外观的好坏体现在各自的长相以及穿着,气质等表现,而在系统设计之间,外观则是表现在系统的接口调用,调用接口的代码越简洁&…