ansible-hoc命令行
ansible一种开源的自动化工具
ansible:
hoc命令行:
是一款开源的自动化运维工具
python
paramiko #模拟ssh协议批量管理主机
jinja2 #模板语言,主要用来传递变量
yaml #相当于是一种编程语言
控制方式:
1. 免密钥:key-gen
参数形式:ansible_ssh_user=root; ansible_ssh_pass=root ansible_ssh_port=22
2. host inventory:记录着客户端的ip信息
调用ansible的三种模式:
hoc:命令行
playbooks:剧本|脚本
roles:角色
安装ansible:
yum install epel-release
yum install ansible -y
配置
[root@master ~]# vim /etc/ansible/hosts
[testhosts]
192.168.254.10 ansible_ssh_user=root ansible_ssh_pass=root ansible_ssh_port=22
192.168.254.12 ansible_ssh_user=root ansible_ssh_pass=root ansible_ssh_port=22
ansible默认并发数:5台(最高255)
ansible -f #控制并发数
线程是最小的调度单位
进程是最小的管理单元
ansible-doc -l #查看所支持的模块
ansible-doc -s MODEL_NAME #模块的具体用法和参数
ansible all --list-hosts #查看所有主机
ansible配置文件:(/etc/ansible/ansible.cfg)
#inventory = /etc/ansible/hosts 主机管理资产清单
#library = /usr/share/my_modules/ ansible操作的动作,无论是本地或者远程,都使用一小段代码来执行,这小段代码称之为模块,这个library就是用来存放这些模块的路径
#module_utils = /usr/share/my_module_utils/
#remote_tmp = ~/.ansible/tmp
#local_tmp = ~/.ansible/tmp
#forks = 5 ansible默认操作主机的并发数
#poll_interval = 15
#sudo_user = root 这是默认的执行命令的用户,也可以在playbook中重新设置这个参数
#ask_sudo_pass = True 用来控制Ansible playbook 在执行sudo之前是否询问sudo密码.默认为no
#ask_pass = True Ansible 剧本playbook 是否会自动默认弹出弹出密码.默认为no
#transport = smart
#remote_port = 22 这个指定连接被管理节点的端口,默认是22,除非设置了特殊的ssh端口
#module_lang = C 默认模块和系统之间通信的计算机语言,默认为’C’语言
#module_set_locale = False
#host_key_checking = False 这是设置是否检查ssh秘钥,可以设置为False和True
#timeout = 10 ssh连接超时时间
#log_path = /var/log/ansible.log ansible默认是不记录日志的,如果想把ansible系统输出的日志存放到文件中可以开启这个选项
#private_key_file = /path/to/file 使用ssh公钥私钥登录系统的时候,使用的秘钥路径
还有更多的配置项,大家可以参考官方文档,如下: http://docs.ansible.com/ansible/latest/intro_configuration.html#private-key-file
常用模块:
ping:指定ansible server跟client的连通性
ansible testhosts -m ping
setup: 收集远程主机的facts
每个被管理的节点在接受并运行管理命令之前,会将自己主机相关信息,如操作系统版本,ip地址等报告给远程ansible主机
#ansible 192.168.254.10 -m setup
command:命令模块,默认模块,用于在远程执行命令:
ansible all -a 'date'
cron:
state:
prsent:安装
absent:移除
#ansible testhosts -m cron -a "minute=*/10 job='echo hello' state=present name=test_cron"
user:
name=:指明创建的用户的名字
#ansible testhosts -m user -a 'name=user1 uid=250 group=group250'
group:
#ansible testhosts -m group -a 'name=group250 gid=250'
copy:
src=:定义本地源文件路径
dest=:定义远程目标文件路径
#ansible testhosts -m copy -a 'src=/root/a.txt dest=/root/a.txt'
content=:取代src,表示直接用此处指定的信息生成为目标的内容
#ansible testhosts -m copy -a 'content=nihao dest=/root/a.txt'
service:指定运行状态
name=:服务名称
state=:状态,取值有started,stopped,restarted
ansible tests -m service -a 'name=httpd state=restarted'
shell:在远程主机上运行命令
尤其是在用到管道等功能的复杂命令
ansible tests -m shell -a 'cat /etc/passwd|grep user'
script: 将本地脚本复制到远程主机并运行
ansible testhosts -m script -a '/root/a.sh'
yum:安装程序包
ansible testhosts -m yum -a 'name=tree state=latest'
name=:指定要安装的程序包,可以带上版本号
state=:present,latest表示安装,absent表示卸载
ansible-hoc命令行的更多相关文章
- Linux中级之ansible概念及hoc命令行调用模式
一.Ansible简介 ansible是新出现的开源的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统 ...
- openstack命令行
openstack的每一个子项目(project)都有自己对应的命令行API,所有的这些API都是基于RESTful的,python代码实现的API.也就是说,这些API都是基于HTTP实现的,所以A ...
- ansible基础命令实例
参考:https://www.cnblogs.com/ilurker/p/6421624.html 1. 使用自定义的hosts 格式: ansible 组机匹配 -i 自定义的hosts - ...
- Ansible Ad-Hoc命令(三)
一.Ad-Hoc 介绍 1.了解下什么是Ad-Hoc ? Ad-Hoc 其实就是基于Ansible 运行的命令集,有些类似终端中敲入的shell命令,Ansible提供了两种运行完成任务的方式,一种是 ...
- 黑客技术 —— Linux 命令行
很多和正则表达式 re 是一致的: 1. 修改上次执行的命令 删除多余部分: % grep fooo /var/log/auth.log % ^o % grep foo /var/log/auth.l ...
- 数据仓库之抽取数据:通过bcp命令行导入数据
原文:数据仓库之抽取数据:通过bcp命令行导入数据 在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后 ...
- 大话Ansible Ad-Hoc命令
Ansible是一个系列文章,我会尽量以通俗易懂.诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些. Ansible系列博文直达链接:Ansible入门系列 前言 通过前面的文章,大家 ...
- Cmder--Windows下命令行利器
cmder cmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令. 安装包 安装包链接 下载后,直接解压即用. 修改命令提示符λ为 ...
- .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门
2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...
随机推荐
- JVM学习(一)什么是JVM
一.初识JVM(虚拟机) JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功 ...
- 使用Navicat连接MySQL8.0版本报1251错误
出现1251错误是因为,MySQL8.0版本改变了密码的验证规则caching_sha2_password,MySQL之前的版本验证规则是mysql_native_password,现在需要修改MyS ...
- 关于struts1与struts2
1.Action方面 Action是整个Struts框架的核心内容,Struts1.x与Struts2的Action模型很大的区别.Struts2是一个 pull-MVC架构 ,从开发者角度看,就是说 ...
- 修改默认配置文件.android.gradle.androidstudio到其他目录
.android 这个文件夹主要是用来存放模拟器的,是占用空间最大的一个,如果你没有使用它的模拟器,可以直接把这个文件夹删除.因为我建立了两个x86的模拟器,吃掉了我20G的空间.果断搬走. 复制当前 ...
- 摊牌了!我要手写一个“Spring Boot”
目前的话,已经把 Spring MVC 相关常用的注解比如@GetMapping .@PostMapping .@PathVariable 写完了.我也已经将项目开源出来了,地址:https://gi ...
- 下载 Oracle Database XE 11gR2
操作系统:Windows 10 x64 第一节:下载 Oracle Database XE 11gR2 第二节:安装.验证安装 Oracle Database XE 11gR2 第三节:Oracle ...
- Metasploit简单使用——后渗透阶段
在上文中我们复现了永恒之蓝漏洞,这里我们学习一下利用msf简单的后渗透阶段的知识/ 一.meterperter常用命令 sysinfo #查看目标主机系统信息 run scraper #查看目标主机详 ...
- [源码阅读] 阿里SOFA服务注册中心MetaServer(1)
[源码阅读] 阿里SOFA服务注册中心MetaServer(1) 目录 [源码阅读] 阿里SOFA服务注册中心MetaServer(1) 0x00 摘要 0x01 服务注册中心 1.1 服务注册中心简 ...
- 如何部署MongoDB并开启远程访问Docker版
Docker安装 安装方法 pull最新版本mongo docker pull mongo 运行 --name设置名称 -v挂载数据 -p端口映射 -d后台运行 mkdir ~/mongo #随便啦自 ...
- nginx的变量系统
本来想写一下nginx的脚本引擎的,但是看起来实在是有点庞大,一时间还不知道该从哪里写比较好.就先写一下他的变量系统吧,这是脚本引擎非常重要的组成部分. 首先为了表述清楚先规定几个术语吧 内置变量:n ...