ansible 命令主要用于批量管理,来实现自动化管理。常用批量操作包括:主机分组管理、实时批量执行命令或脚本、实时批量分发文件或目录、定时同步文件等。

一、安装 ansible

yum install ansible

安装完成后 /etc/ansible/ 目录下有个 hosts 文件,对主机实现批量管理主要是通过配置 hosts 文件。

二、ansible 命令参数介绍

基本使用:

ansible命令格式:ansible <host-pattern> [options]

常用 options 参数:
-m, NAME, --module-name=NAME: 指定执行使用的模块。
-a, 'ARGUMENTS', --args='ARGUMENTS': 模块参数。
-k, --ask-pass SSH: 认证密码。

常用 -m (module) 参数:

shell、copy、script、file、yum、user、service

<host-pattern> 主机列表配置:

编辑 /etc/ansible/hosts 文件,添加要批量执行的主机,可以指定分组。

[GROUP1]    #组名
10.111.17.119: # 主机:端口,不指定端口则默认 ssh 端口为22
10.111.17.120: [GROUP2]
10.111.18.119:
10.111.18.120:

三、常用批量操作

ansible常用批量操作方式基本可以有 shell、copy 和 script 三个 module 完成。

3.1 批量执行 shell 命令

比如查看 GROUP1 主机组机器的 ssh 进程。

ansible GROUP1 -m shell -a 'ps -ef |grep ssh' -k

shell 模块是使用最频繁的,file、yum、user、service 这四个 module 的功能 shell 都可以完成。

ansible GROUP1 -m shell -a 'mkdir -p /root/test/' -k       #file-module,新建目录   
ansible GROUP1 -m shell -a 'yum install vim -y' -k         #yum-module,安装软件
ansible GROUP1 -m shell -a 'useradd -d /mnt/kwang kwang' -k   #file-module,添加用户
ansible GROUP1 -m shell -a 'service status iptables' -k     #service-module,查看服务状态

3.2 批量拷贝文件

将 /root/ 目录下的 ansible-test.jar 批量拷贝到指定主机组机器上。

ansible GROUP1 -m copy -a 'src=/root/ansible-test.jar dest=/root/' -k

3.3 批量执行 shell 脚本

在指定主机组机器上执行本机上的 /root/test.sh 脚本

ansible GROUP1 -m script -a '/root/test.sh' -k

批量执行 shell 脚本的逻辑是先将脚本拷贝到指定主机组机器上,然后执行命令。

3.4 批量替换相同文件的指定内容

将主机组机器上的 /root/ansible.txt 文本中的 'ansible script test' 内容替换成 'be replaced',其实批量替换操作是 shell 模块的操作。

ansible GROUP1 -m shell -a "sed -i 's/ansible script test/be replaced/g' /root/ansible.txt" -k 

【参考资料】

[1] 杨云1028, 自动化运维工具ansible详细介绍.

Linux命令集锦:ansible命令的更多相关文章

  1. 常用Linux命令集锦-ls命令

    1.命令格式:ls [选项] [目录名] 2.常用参数 -a:列出该目录下所有文件(包含隐藏文件). -A:列出该目录下除了隐藏文件的所有文件. -l:以行显示目录下的所有文件.输出信息从左到右分别是 ...

  2. 自动化运维工具——ansible命令使用(二)

    一.Ansible系列命令使用 ansible命令执行过程 1 . 加载自己的配置文件 默认/etc/ansible/ansible.cfg 2 . 加载自己对应的模块文件,如command 3 . ...

  3. 3.1、Ansible命令简要说明及初步使用

    1.Ansible命令 1.1 Ad-hoc说明 Ansible中有一个很重要的功能就是可以执行ad-hoc命令,它表示即时.临时的意思,即表示一次性的命令.与之相对的是ansible playboo ...

  4. linux 常用命令 集锦

    第一章  LINUX简介及安装    1一.LINUX介绍    1二.LINUX安装    2三.LINUX目录    2四.总结来说:    3第二章 常用命令及帐户管理    4一.linux命 ...

  5. Linux命令集锦

    梳理常用的Linux命令 day1--cd命令 cd命令:(注意以下的命令,cd后均有一个空格) 1.进入盘符: cd f: 2.进入当前目录命令: cd . 3.进入指定文件夹(在进入确定盘符之后, ...

  6. [置顶] Linux 常用命令集锦

    出处:http://www.vaikan.com/what-are-the-most-useful-swiss-army-knife-one-liners-on-unix/ Linux命令行里的&qu ...

  7. 【No.2】监控Linux性能25个命令行工具

    接着上一篇博文继续 [No.1]监控Linux性能25个命令行工具 10:mpstat -- 显示每个CPU的占用情况 该命令可以显示每个CPU的占用情况,如果有一个CPU占用率特别高,那么有可能是一 ...

  8. 【No.1】监控Linux性能25个命令行工具

    如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?通过以下命令或者工具可以快速定位 top vmstat lsof tcpdump netsta ...

  9. ansible命令

    ansible 默认提供了很多模块来供我们使用.在 Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块,通过 ansible-doc  -s   ...

随机推荐

  1. GetHashCode之于引用类型和值类型及其特性

    GetHashCode 方法可由派生类型重写.如果 GetHashCode 未重写,则通过调用基类的 Object.GetHashCode 方法来计算引用类型的哈希代码. 引用类型:Object.Ge ...

  2. async 与 await

    async 关键字 1.含义:表示函数是一个异步函数,意味着该函数的执行不会阻塞后面代码的执行 2.定义与调用 async function hello (flag) { if (flag) { re ...

  3. HTML5——5 HTML5 SVG

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 【UVALive-7040F】Color

    题目大意:给定一个长度为 N 的序列,现有 M 种颜色,选出一些颜色对这个序列进行染色,要求相邻元素颜色不相同.求最终序列恰好有 K 种不同颜色的染色方案数,结果对1e9+7取模. 题解:二项式反演 ...

  5. Solving Docker permission denied while trying to connect to the Docker daemon socket

    The error message tells you that your current user can’t access the docker engine, because you’re la ...

  6. 不同显卡对mrt 的支持

    ios bits限制大概512bits 低端256bits mali 也是bits限制 2017年 Mali-T760 128bits adreno android显卡4 肯定可以 因为deferre ...

  7. Mysql中查询索引和创建索引

    查询索引   show index from table_name 1.添加PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( ` ...

  8. [BZOJ 1146] [CTSC2008]网络管理Network(树状数组+主席树)

    题目描述 M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门.为了让分布在世界各地的N个部门之间协同工作,公司搭建了一个连接整个公司的通信网络.该网络的结构由N个路由器和N-1条高 ...

  9. Connect AS400 through firewall(JDBC will require ports: 449, 8470, 8471, and 8476)

    What TCP ports are used by ODBC to connect to the DB2/400?  8471/9471 http://search400.techtarget.co ...

  10. 洛谷 P4933 大师

    题面 (实名推荐:本题的出题人小哥哥打球暴帅哦!(APIO/CTSC/WC的时候一起打过球w,而且大学在我隔壁喔) ) 没仔细看数据范围的时候真是摸不着头脑...还以为要 O(N^2) dp 爆锤.. ...