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定时检查启动某个exe程序适合检测exe是否挂了
Jan 21 Python
python中xrange和range的区别
May 13 Python
python实现去除下载电影和电视剧文件名中的多余字符的方法
Sep 23 Python
python中global用法实例分析
Apr 30 Python
python下setuptools的安装详解及No module named setuptools的解决方法
Jul 06 Python
python将秒数转化为时间格式的实例
Sep 16 Python
python爬虫 批量下载zabbix文档代码实例
Aug 21 Python
基于python操作ES实例详解
Nov 16 Python
pytorch 改变tensor尺寸的实现
Jan 03 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 Python
Python编解码问题及文本文件处理方法详解
Jun 20 Python
Python爬虫入门案例之回车桌面壁纸网美女图片采集
Oct 16 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 各种应用乱码问题的解决方法
2010/05/09 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
PHP获取youku视频真实flv文件地址的方法
2014/12/23 PHP
php获取远程文件大小
2015/10/20 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
简单的jQuery入门指引
2015/07/28 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
微信小程序 下拉菜单的实现
2017/04/06 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
基于python编写的微博应用
2014/10/17 Python
Python中map和列表推导效率比较实例分析
2015/06/17 Python
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
python实现requests发送/上传多个文件的示例
2018/06/04 Python
python 字段拆分详解
2019/12/17 Python
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
2016/05/09 HTML / CSS
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
房地产开盘策划方案
2014/02/10 职场文书
主管竞聘书范文
2014/03/31 职场文书
2014年药店店长工作总结
2014/11/17 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL