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单链表实现代码实例
Nov 21 Python
用Python的线程来解决生产者消费问题的示例
Apr 02 Python
python实现的正则表达式功能入门教程【经典】
Jun 05 Python
Python+matplotlib实现华丽的文本框演示代码
Jan 22 Python
对numpy中的where方法嵌套使用详解
Oct 31 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 Python
命令行运行Python脚本时传入参数的三种方式详解
Oct 11 Python
python实现大战外星人小游戏实例代码
Dec 26 Python
使用matlab 判断两个矩阵是否相等的实例
May 11 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
Jun 18 Python
Python:__eq__和__str__函数的使用示例
Sep 26 Python
python神经网络学习 使用Keras进行简单分类
May 04 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数组与对象之间使用递归实现转换的方法
2015/06/24 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
利用jQuery的deferred对象实现异步按顺序加载JS文件
2013/03/17 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
原生js封装的一些jquery方法(详解)
2016/09/20 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
react-router JS 控制路由跳转实例
2017/06/15 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
JavaScript oncopy事件用法实例解析
2020/05/13 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
Python上传package到Pypi(代码简单)
2016/02/06 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
Django model update的多种用法介绍
2020/03/28 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
python tkinter之 复选、文本、下拉的实现
2020/03/04 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
IRO美国官网:法国服装品牌
2018/03/06 全球购物
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
劳模先进事迹材料
2014/12/24 职场文书
党员个人总结自评
2015/02/14 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP
mysql 带多个条件的查询方式
2021/06/05 MySQL