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命令行的更多相关文章

  1. Linux中级之ansible概念及hoc命令行调用模式

    一.Ansible简介 ansible是新出现的开源的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统 ...

  2. openstack命令行

    openstack的每一个子项目(project)都有自己对应的命令行API,所有的这些API都是基于RESTful的,python代码实现的API.也就是说,这些API都是基于HTTP实现的,所以A ...

  3. ansible基础命令实例

    参考:https://www.cnblogs.com/ilurker/p/6421624.html 1. 使用自定义的hosts 格式: ansible  组机匹配  -i  自定义的hosts  - ...

  4. Ansible Ad-Hoc命令(三)

    一.Ad-Hoc 介绍 1.了解下什么是Ad-Hoc ? Ad-Hoc 其实就是基于Ansible 运行的命令集,有些类似终端中敲入的shell命令,Ansible提供了两种运行完成任务的方式,一种是 ...

  5. 黑客技术 —— Linux 命令行

    很多和正则表达式 re 是一致的: 1. 修改上次执行的命令 删除多余部分: % grep fooo /var/log/auth.log % ^o % grep foo /var/log/auth.l ...

  6. 数据仓库之抽取数据:通过bcp命令行导入数据

    原文:数据仓库之抽取数据:通过bcp命令行导入数据 在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后 ...

  7. 大话Ansible Ad-Hoc命令

    Ansible是一个系列文章,我会尽量以通俗易懂.诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些. Ansible系列博文直达链接:Ansible入门系列 前言 通过前面的文章,大家 ...

  8. Cmder--Windows下命令行利器

    cmder cmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令. 安装包 安装包链接 下载后,直接解压即用. 修改命令提示符λ为 ...

  9. .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

    2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...

随机推荐

  1. NodeJS沙箱逃逸&&vm

    NodeJS沙箱逃逸 关于nodejs的沙箱 使用场景 在线代码编辑器 第三方js代码 jsonp,like百度搜索框 https://www.baidu.com/s?wd=nodejs&mi ...

  2. session安全&&CBC字符反转攻击&&hash拓展攻击

    session安全 p神写的: 在传统PHP开发中,$_SESSION变量的内容默认会被保存在服务端的一个文件中,通过一个叫"PHPSESSID"的Cookie来区分用户.这类se ...

  3. Ubuntu16.04+Tensorflow+CUDA9.0+cuDNN7.0 环境简明搭建指南

    最近在研究风格化得内容,发现搭建环境实在是很头疼的事情,虽然网上已经有各路大神总结整理好了很多搭建指南,各种问题的解决方案都已经罗列出来供大家参考.然后参考终究是参考,真正自己上手,发现仍旧是各种坑, ...

  4. Centos-帮助信息-man help

    man help 获取指定命令帮助信息 man cmd 获取命令详细帮帮文档 cmd --help 获取简洁命令详情

  5. 【学习笔记/题解】树上启发式合并/CF600E Lomsat gelral

    题目戳我 \(\text{Solution:}\) 树上启发式合并,是对普通暴力的一种优化. 考虑本题,最暴力的做法显然是暴力统计每一次的子树,为了避免其他子树影响,每次统计完子树都需要清空其信息. ...

  6. 使用Jest快照测试api

    你知道什么很烦人吗?API不匹配. 有一天,后台开发人员在没有通知前端开发人员的情况下更改了其中一个api."我们认为dateCreated这个名字比created_at更好,"他 ...

  7. JavaCV FFmpeg H264编码

    上次成功通过FFmpeg采集摄像头的YUV数据,这次针对上一次的程序进行了改造,使用H264编码采集后的数据. (传送门) JavaCV FFmpeg采集摄像头YUV数据 采集摄像头数据是一个解码过程 ...

  8. ubuntu20 使用命令安装 mysql

    命令安装 mysql sudo apt-get update sudo apt-get install -y mysql-server mysql-client 查看 mysql 安装情况 servi ...

  9. Mock测试你的Spring MVC接口

    1. 前言 在Java开发中接触的开发者大多数不太注重对接口的测试,结果在联调对接中出现各种问题.也有的使用Postman等工具进行测试,虽然在使用上没有什么问题,如果接口增加了权限测试起来就比较恶心 ...

  10. MVC-WebApi配置 Swagger(Web Api可视化文档)

    一.从创建MVC WebApi开始 第一步创建MVC WebApi就创建好了,接下来就进入正题,上干货 ================================================ ...