ansible简易使用
一、本地环境:
centos 7 192.168.10.10 主控机
centos 7 192.168.10.130 被控机
Windows7 192.168.10.131 被控机
二、安装ansible准备环境
1、安装ansible前,我们使用国内的yum源进行安装。这里使用阿里的第三方软件源
[root@localhost ~]#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]#yum clean all
[root@localhost ~]#yum makecache
[root@localhost ~]#yum install ansible -y
2、设置ssh免秘钥登陆
[root@localhost ~]# ssh-keygen -N '' // 生成公钥和私钥
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): // 这里默认回车即可
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:Uzb5QDBxve8hKWRCVUCNj1Ptc3na3DZp2Udc16XN5vU root@localhost.localdomain
The key's randomart image is:
+---[RSA ]----+
| +=**.. +|
| .+..+ .++|
| . *+ o..O|
| .o=+o o+B|
| S+ ..o BE|
| .. o +=B|
| . o.oo|
| . |
| |
+----[SHA256]-----+
如果选择默认路径,则秘钥文件在当前用户的家目录~/.ssh/下

3、将秘钥发给客户端
[root@localhost ~]# ssh-copy-id root@192.168.10.130
这里有个问题需要注意下,如果主控端以前使用ssh连接过被控端,在给客户端发送秘钥的过程中可能会有些小问题,发送完成后你可能会发现~/.ssh这个目录不见了。不要着急,在执行一次生成秘钥,然后再次将秘钥发给客户端即可。最终你会看到像下面这个样子的:

4、验证ssh免秘钥登陆
[root@localhost ~]# ssh 192.168.10.130
登陆成功后,看起来像下面这样:

三、ansible的简单使用
1、使用ansible测试被监控主机是否存活
[root@localhost ~]# ansible 192.168.10.130 -m ping // 指定主机查看是否存活
如果看到下面这样,说明主机存活。

1.1查询被控端主机名
[root@localhost ~]# ansible damo -m command -a 'hostname'

2、使用ansible控制Windows主机
2.1首先要确保本机Microsoft .NET Framework 4.0以上版本http://download.microsoft.com/download/B/A/4/BA4A7E71-2906-4B2D-A0E1-80CF16844F5F/dotNetFx45_Full_x86_x64.exe
2.2下载powershell 4.0 https://www.microsoft.com/zh-cn/download/details.aspx?id=40855
关于如何安装这里就不再多说了。安装完成后需要重启,重启后我们的powershell应该是这个版本:

2.3设置远程策略允许远程主机连接
set-executionpolicy remotesigned // 注意需要以管理员身份来运行

3、启动winrm服务
winrm quickconfig

3.1查看winrm服务
winrm e winrm/config/listener

3.2为winrm service 配置auth:
winrm set winrm/config/service/auth '@{Basic="true"}'

3.3为winrm service 配置加密方式为允许非加密:
winrm set winrm/config/service '@{AllowUnencrypted="true"}'

好了Windows到这里就告一段落,下面我们进行测试。
4、主控机上需要安装Python winrm模块
[root@localhost ~]# pip install pywinrm
这里需要注意:ansible使用的是Python2.x版本如果安装了多版本的Python3.x的环境要注意在使用pip安装pywinrm模块时要确定模块安装到哪个Python环境中去了,否则ansible有可能会找不到winrm模块,所以为了避免这种混乱尽量在主控端只安装一个Python2.7版本。如果是系统默认yum安装的Python2.7,你还需要yum install python-pip -y 安装pip。
5、在ansible的主机配置文件中添加Windows主机
[root@localhost ~]# vim /etc/ansible/hosts
[linux] // linux主机
192.168.10.130
[windows] // Windows 主机
192.168.10.131 ansible_ssh_user="id_iot" ansible_ssh_pass="123.com" ansible_ssh_port= ansible_connection="winrm" ansible_winrm_server_cert_validation=ignore
6、测试Windows主机是否存活
[root@localhost ~]# ansible windows -m win_ping

6.1查看Windows当前登陆用户
[root@localhost ~]# ansible windows -m win_command -a "whoami"

6.2在被控端主机上创建文件夹
[root@localhost ~]# ansible 192.168.10.131 -m win_file -a 'dest=c:\config_dir state=directory'

未完待续。。。。
ansible简易使用的更多相关文章
- ansible基础-Jinja2模版 | 过滤器
Jinja2模版介绍 注:本文demo使用ansible2.7稳定版 在ansible基础-变量的「8.2 模版使用变量」章节中关于模版与变量也有所提及,有兴趣的同学可以去回顾一下. ansible通 ...
- ansible中的playbook详解
首先简单说明一下playbook,playbook是什么呢?根本上说playbook和shell脚本没有任何的区别,playbook就像shell一样,也是把一堆的命令组合起来,然后加入对应条件判断等 ...
- Ansible基础入门
1.1 Ansible是什么 随着移动互联.物联网.互联网+.大数据.云计算等大规模应用的催生推动,以及人们日常生活的互联网化,互联网的蓬勃发展不仅冲击影响着整个经济体,更对人们的生活理 ...
- 2、Ansible配置文件详解
0.配置文件 两个核心文件:ansible.cfg和hosts文件,默认都存放在/etc/ansible目录下. ansible.cfg:主要设置一些ansible初始化的信息,比如日志存放路径.模块 ...
- Ansible学习记录三:配置文件
0.配置文件 两个核心文件:ansible.cfg和hosts文件,默认都存放在/etc/ansible目录下. ansible.cfg:主要设置一些ansible初始化的信息,比如日志存放路径.模块 ...
- 一、Ansible入门篇
一.Ansible简介 Ansible是一个自动化运维的工具 基于python语言编写,因此机器需要具备python环境. 通过ssh的连接方式进行自动化部署,ansible优先使用OpenSSH,在 ...
- DevOps-ISC,CSS,Prometheus,Ansible ,Terraform,zabbix
https://www.terraform.io/ Terraform Use Infrastructure as Code to provision and manage any cloud, in ...
- ansible的基础使用(一)
ansible基础使用(一) ansible的主要功能 A:为什么是ansible B:ansible的安装 C:ansible的相关文件 D:ansible的基本使用 ansible的简单操作 A: ...
- ansible简要说明
说明 Ansible是一个python编写模型驱动的配置管理器,支持多节点发布.远程任务执行.默认使用 SSH 进行远程连接.无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展.本文基于ans ...
随机推荐
- idea加载springboot 项目热加载失效
需要打开 help -> find action ->registry ->其中的compiler.automake.allow.when.app.running勾上
- css 文本属性和字体属性
1.将浮动居中 这需要三个盒子 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- ConcurrentSkipListMap的常用方法
package com.geo.map; import java.util.Iterator;import java.util.Map.Entry;import java.util.Set;impo ...
- 登录-退出,在T分钟实现BC次用户登录退出,单次登录-退出%90用户时间t,需要的并发用户(线程)
聚合报告%90响应时间:%90用户响应时小于该值 2种理解方式: 一. 1s可完成的用户1/t: T分钟完成的用户T *(1/t); BC次用户需要的线程数Thread= BC/(T*(1/t)) = ...
- 201871010118-唐敬博 《面向对象程序设计(java)》第十五周学习总结
博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 <https://www.cnblogs.com/nwnu-daizh/> 这个作业的要求在哪里 <https://ww ...
- SHELL脚本--变量
环境变量 环境变量就是运行在"环境"上下文的,在这个上下文都可以引用.例如,常见的cd.ls等命令严格来说应该使用绝对路径如/bin/ls来执行,由于/bin目录加入到了PATH环 ...
- python基础语法20 面向对象5 exec内置函数的补充,元类,属性查找顺序
exec内置函数的补充 exec: 是一个python内置函数,可以将字符串的代码添加到名称空间中; - 全局名称空间 - 局部名称空间 exec(字符串形式的代码, 全局名称空间, 局部名称空间) ...
- Leetcode练习
1. 两数相加 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这 ...
- [CODEVS4632][BZOJ4326]运输计划
题目描述 Description 公元 2044 年,人类进入了宇宙纪元.L 国有 n 个星球,还有 n−1 条双向航道,每条航道建立在两个星球之间,这 n−1 条航道连通了 L 国的所有星球.小 P ...
- Layui 文件上传 附带data数据
配置项中增加参数: , data: { CaseId: function () { return $("#CaseId option:selected").val(); }, Ca ...