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 相关文章推荐
Windows下搭建python开发环境详细步骤
Jul 20 Python
python下调用pytesseract识别某网站验证码的实现方法
Jun 06 Python
python简单实现操作Mysql数据库
Jan 29 Python
Python中的并发处理之asyncio包使用的详解
Apr 03 Python
儿童学习python的一些小技巧
May 27 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
Nov 06 Python
Python Selenium 之关闭窗口close与quit的方法
Feb 13 Python
Python实现制度转换(货币,温度,长度)
Jul 14 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
Aug 06 Python
python 中值滤波,椒盐去噪,图片增强实例
Dec 18 Python
Python字符串的修改方法实例
Dec 19 Python
详解Python中string模块除去Str还剩下什么
Nov 30 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
用PHP和ACCESS写聊天室(六)
2006/10/09 PHP
PHP中防止SQL注入实现代码
2011/02/19 PHP
Apache2中实现多网站域名绑定的实现方法
2011/06/01 PHP
php命令行用法入门实例教程
2014/10/27 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
javascript中如何处理引号编码"
2013/08/15 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
浅谈javascript的调试
2015/01/28 Javascript
javascript实现博客园页面右下角返回顶部按钮
2015/02/22 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
javascript insertAfter()定义与用法示例
2016/07/25 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
深度解读vue-resize的具体用法
2020/07/08 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
[03:03]2014DOTA2国际邀请赛 EG战队专访
2014/07/12 DOTA
Python的Django框架中使用SQLAlchemy操作数据库的教程
2016/06/02 Python
Python利用递归实现文件的复制方法
2018/10/27 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
树莓派使用USB摄像头和motion实现监控
2019/06/22 Python
Python使用matplotlib 画矩形的三种方式分析
2019/10/31 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
英文简历中的自我评价
2013/10/06 职场文书
接待员岗位责任制
2014/02/10 职场文书
倡议书范文格式
2014/05/12 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
个人维稳承诺书
2015/05/04 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript