python自动化之Ansible的安装教程


Posted in Python onJune 13, 2019

本文实例讲述了python自动化之Ansible的安装。分享给大家供大家参考,具体如下:

一 点睛

Ansible只需在管理端部署环境即可,建议采用yum源方式来实现部署。

二 安装Ansible

只需要在主服务器安装(主控端)

[root@localhost dev]# yum install ansible -y

三 测试

1 修改在主控机配置文件/etc/ansible/hosts

## green.example.com
## blue.example.com
192.168.0.101
192.168.0.102
[webservers]
## alpha.example.org
## beta.example.org
192.168.0.101
192.168.0.102

2 执行下面操作

通过ping模块测试主机的连通性,分别对单主机及组进行ping操 作,结果如下,说明安装、测试成功。

[root@localhost ansible]# ansible 192.168.0.101 -m ping -k
SSH password:
192.168.0.101 | SUCCESS => {
  "changed": false,
  "ping": "pong"
}
[root@localhost ansible]# ansible webservers -m ping -k
SSH password:
192.168.0.102 | 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.101 | SUCCESS => {
  "changed": false,
  "ping": "pong"
}

3 说明

由于主控端与被控主机未配置SSH证书信任,需要在执行ansible命令时添加-k参数,要求提供root(默认)账号密码,即在提示“SSH password:”时输入。

四 配置Linux主机SSH无密码访问

1 点睛

为了避免Ansible下发指令时输入目标主机密码,通过证书签名达到SSH无密码是一个好的方案,推荐使用ssh-keygen与ssh-copy-id来实现快速证书的生成及公钥下发,其中ssh-keygen生成一对密钥,使用sshcopy-id来下发生成的公钥。

第一步:需要配置与目标设备的密钥认证支持。

[root@localhost home]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
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:9/pGNxnQVWAWpss7PYtJcUDyHsCexgYY6NGWy/oOhTg root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|   o.+ .o ..*++|
|  o = . .=.=. |
|  . + . + .=.  |
|  ...o  *o +. |
| E ... So. = .o |
|  ...  . ..=+ |
|  ..   .=.o. |
|   ..  o.+ o |
|   ..  .o+ . |
+----[SHA256]-----+

私钥文件可以存放在默认路径“~/.ssh/id_rsa”。

第二步:接下来同步公钥文件id_rsa.pub到目标主机,推荐使用ssh-copy-id公钥拷贝工具

[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.102
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Kernel \r on an \m
root@192.168.0.102's password:
Number of key(s) added: 1
Now try logging into the machine, with:  "ssh 'root@192.168.0.102'"
and check to make sure that only the key(s) you wanted were added.

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python使用matplotlib实现在坐标系中画一个矩形的方法
May 20 Python
Python入门之三角函数atan2()函数详解
Nov 08 Python
Python排序搜索基本算法之堆排序实例详解
Dec 08 Python
python xlsxwriter创建excel图表的方法
Jun 11 Python
在numpy矩阵中令小于0的元素改为0的实例
Jan 26 Python
python实现桌面气泡提示功能
Jul 29 Python
python读取与处理netcdf数据方式
Feb 14 Python
在matplotlib中改变figure的布局和大小实例
Apr 23 Python
python轮询机制控制led实例
May 03 Python
keras之权重初始化方式
May 21 Python
pygame用blit()实现动画效果的示例代码
May 28 Python
基于Python爬取素材网站音频文件
Oct 21 Python
PyQt5 实现给窗口设置背景图片的方法
Jun 13 #Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
Jun 13 #Python
Python语法分析之字符串格式化
Jun 13 #Python
pyqt5 从本地选择图片 并显示在label上的实例
Jun 13 #Python
通过pycharm使用git的步骤(图文详解)
Jun 13 #Python
Windows 安装 Anaconda3+PyCharm的方法步骤
Jun 13 #Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
Jun 13 #Python
You might like
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
jQuery 使用手册(一)
2009/09/23 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
JavaScript利用append添加元素报错的解决方法
2014/07/01 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
JavaScript优化以及前段开发小技巧
2017/02/02 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
React之PureComponent的使用作用
2018/07/10 Javascript
vue中$nextTick的用法讲解
2019/01/17 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
Vue实战教程之仿肯德基宅急送App
2019/07/19 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
Python中operator模块的操作符使用示例总结
2016/06/28 Python
python列表生成式与列表生成器的使用
2018/02/23 Python
详解Python_shutil模块
2019/03/15 Python
python实现随机漫步方法和原理
2019/06/10 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
python属于软件吗
2020/06/18 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
瑞典首都斯德哥尔摩的多元奢侈时尚品牌:Acne Studios
2017/07/09 全球购物
GWebs公司笔试题
2012/05/04 面试题
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
电子商务毕业生求职信
2013/11/10 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
先进学校事迹材料
2014/12/30 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python
Fluentd搭建日志收集服务
2022/09/23 Servers