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 爬虫学习笔记之正则表达式
Sep 21 Python
利用Celery实现Django博客PV统计功能详解
May 08 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
Apr 19 Python
Python 获取主机ip与hostname的方法
Dec 17 Python
Python按钮的响应事件详解
Mar 04 Python
Python实现代码统计工具
Sep 19 Python
Python 改变数组类型为uint8的实现
Apr 09 Python
Django表单提交后实现获取相同name的不同value值
May 14 Python
python爬虫构建代理ip池抓取数据库的示例代码
Sep 22 Python
Python 按比例获取样本数据或执行任务的实现代码
Dec 03 Python
pandas中关于apply+lambda的应用
Feb 28 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
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
php集成动态口令认证
2016/07/21 PHP
PHP查看SSL证书信息的方法
2016/09/22 PHP
php实现的双色球算法示例
2017/06/20 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
2017/11/20 PHP
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
jQuery轮播图功能制作方法详解
2019/12/03 jQuery
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
35个Python编程小技巧
2014/04/01 Python
python实现html转ubb代码(html2ubb)
2014/07/03 Python
Python标准库内置函数complex介绍
2014/11/25 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
2018/02/08 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
shallow copy和deep copy的区别
2016/05/09 面试题
大四学生思想汇报
2014/01/13 职场文书
校园十大歌手策划书
2014/02/01 职场文书
2015年幼儿园毕业感言
2014/02/12 职场文书
运动会通讯稿150字
2014/02/15 职场文书
《四季》教学反思
2014/04/08 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
端午节活动总结报告
2015/02/11 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书
MySQL 5.7常见数据类型
2021/07/15 MySQL