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对内存的使用(深浅拷贝)
Jan 17 Python
python list是否包含另一个list所有元素的实例
May 04 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
Jun 26 Python
Flask框架各种常见装饰器示例
Jul 17 Python
Python使用pymysql从MySQL数据库中读出数据的方法
Jul 25 Python
python使用suds调用webservice接口的方法
Jan 03 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
详细分析Python垃圾回收机制
Jul 01 Python
Python 中如何写注释
Aug 28 Python
python 视频下载神器(you-get)的具体使用
Jan 06 Python
基于tensorflow __init__、build 和call的使用小结
Feb 26 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
咖啡知识 咖啡养豆要养多久 排气又是什么
2021/03/06 新手入门
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
2019/02/15 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
JavaScript调用Activex控件的事件的实现方法
2010/04/11 Javascript
围观tangram js库
2010/12/28 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
javascript进行数组追加方法小结
2014/06/16 Javascript
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
js判断是否为空和typeof的用法(详解)
2016/10/07 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
vue2 前端搜索实现示例
2018/02/26 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
线程和进程的区别及Python代码实例
2015/02/04 Python
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
深入理解NumPy简明教程---数组1
2016/12/17 Python
Python实现单词翻译功能
2017/06/06 Python
用pandas按列合并两个文件的实例
2018/04/12 Python
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
台湾网友喜爱的综合型网路购物商城:Yahoo! 奇摩购物中心
2018/03/10 全球购物
大学生如何写自荐信
2014/01/08 职场文书
最新奶茶店创业计划书
2014/01/25 职场文书
文秘自荐信
2014/06/28 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP
SQL 聚合、分组和排序
2021/11/11 MySQL