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. xss利用——BeEF#stage4(其余功能介绍)

    目录 信息收集 => 社会工程 =>网络扫描 => 结合metasploit => tunneling => xss => 维持权限 功能介绍 #1 - 信息收集 ...

  2. MySQL 5.7二进制日志

    简介 二进制日志是MySQL服务器用来记录数据修改事件的,比如INSERT.UPDATE.DELETE等会导致数据发生变化的语句,SELECT语句不会被记录在内.MySQL必须先执行完一条语句才能知道 ...

  3. randomatic

    下载 randomaticrandomatic 使用简单的字符序列生成指定长度的随机字符串.原generate-password. 请考虑下面这个项目的作者,Jon Schlinkert主演的,考虑项 ...

  4. 启动VNC Shell扩展

    下载source files - 18.3 Kb Introduction 我们使用RealVNC来远程控制我们的网络中的pc机,VNC是一个伟大的产品,但如果不记住计算机名称,它可以是乏味的,在网络 ...

  5. [学习笔记] Tarjan算法求桥和割点

    在之前的博客中我们已经介绍了如何用Tarjan算法求有向图中的强连通分量,而今天我们要谈的Tarjan求桥.割点,也是和上篇有博客有类似之处的. 关于桥和割点: 桥:在一个有向图中,如果删去一条边,而 ...

  6. spring redis 配置

  7. 使用AirtestProject+pytest做支付宝小程序UI自动化测试

    一,前言 1,背景 因公司业务需要做支付宝小程序的UI自动化测试,于是在网上查找小程序的自动化资料,发现微信小程序是有自己的测试框架的,但几乎找不到支付宝小程序UI自动化测试相关的资料.白piao失败 ...

  8. pytest文档48-切换 base_url 测试环境(pytest-base-url)

    前言 当我们自动化代码写完成之后,期望能在不同的环境测试,这时候应该把 base_url 单独拿出来,能通过配置文件和支持命令行参数执行. pytest-base-url 是 pytest 里面提供的 ...

  9. python接口测试之读取配置文件

    1.python使用自带的configparser模块用来读取配置文件,配置文件可以为.conf或.ini结尾 在使用前需要先安装该模块,使用pip安装即可 2.新建一个名为a.conf的配置文件 a ...

  10. BUUCTF-[极客大挑战 2019]HardSQL 1详解

    来到sql注入骚姿势,我们一点一点开始学 我们来到这道题,然后尝试注入,结果发现 拼接'or '1'='1 'or '1'='2如果是字符型注入则会报错,然而并没有而是显示的页面一样, 通过常规注入, ...