Ansible常用Ad-Hoc命令介绍

在自动化运维的过程中,我们常常会通过命令行的形式使用Ansible模块,ansible自带了259各模块,我们可以通过一些命令来查看ansible中所含的模块,也可以查看单一模块的信息。下面,我就为大家介绍一些常用的模块。
关于ansible的部署安装请参考:
部署自动化运维服务——Ansible

ansible-doc-l                          //显示所有自带模块
ansible-doc -s “模块名称”      //查看具体模块的信息,使用‘q’退出介绍

Ad-Hoc命令格式

Ah-Hoc常用可选项如下:

  • v:--verbose:输出更详细的执行过程信息,-vvv可得到执行过程所有信息
  • i:PATH,--inventory=PATH:指定inventory信息,默认/etc/absible/hosts
  • f:NUM,--forks=NUM:并发线程数,默认5个线程
  • m:NAME,--module-name=NAME:指定执行使用的模块
  • M:DIRECTORY,--module-path=DIRECTORY:指定模块存放路径,默认/usr/share/ansible,也可以通过ANSIBLE_LIBRARY设定默认路径
  • a:‘ARGUMENTS‘,--args=‘ARGUMENTS‘:模块参数
  • k:--ask-pass SSH:认证密码
  • K:--ask-sudo-pass sudo:用户的密码(--sudo时使用)
  • o:--one-line:标准输出至一行
  • s:--sudo:相当于Linux系统下的sudo命令
  • c:CONNECTION,--connection=CONNECTION:指定连接方式,可用选项paramiko(SSH)、ssh、local,local方式常用于crontab和kickstarts
  • --list-hosts:列出符合条件的主机列表,不执行任何命令

aommand模块

command命令用于系统命令,不如ping、tail、date等命令,接下来我就以date、tail为例,介绍他的使用方法,接下来的所有操作中,都会使用“web“分类。

ansible web -m command -a ‘date‘                         //-a后的参数需使用单引号
ansible web -m command -a ‘tail -1 /etc/passwd‘

cron模块

Ansible中的cron模块用于定义计划性任务。其中有两种状态(state):present表示添加(默认使用,可省略),absent表示移除。

创建计划性任务

ansible-doc -s cron                                                                                                    //查看模块信息
ansible web -m cron -a ‘minute="*/1" job="/bin/echo test" name="test cron job"‘
//每分钟执行一次输出test,name的名称可以自定义,
ansible web -a ‘crontab -l‘                                                                                         //计划性任务,command为默认模块,-m可省略

移除计划性任务

ansible web -m cron -a ‘name="test cron job" state=absent‘
//在创建时所使用的名称,取消是也要相对应,若是在创建时为设定名称,使用name=None即可

ping模块

ping模块用来测试指定主机的联通性

ansible web -m ping

user模块

user模块用于创建新用户和更改、删除已存在的用户。其中name选项用于指明创建的用户名称

新建用户

生成密钥

因为ansible user的passwd参数需要接收加密的值,所以需要利用openssl命令来生成密码,采用md5加密。

echo ansible | openssl passwd -1 -stdin   //此处为“一”,不是“L”,明文为ansible

新建用户

ansible web -m user -a ‘name=zhang password="$1$zF5aYItH$MKXWT.NfH8kOV6OH3Y/Tp0"‘ -o

验证新建用户是否成功

ssh 172.16.10.30 -l zhang     //ssh远程登陆

删除用户

ansible web -m user -a ‘name="zhang" state=absent‘

group模块

group模块用于对用户组管理

ansible web -m group -a ‘name=mysql gid=306 system=yes‘   //新建mysql组,gid=306
ansible web -m user -a ‘name=lisi uid=306 system=yes group=mysql‘   //新建用户lisi,uid=306,并加入到mysql组

copy模块

copy模块用于实现文件复制和批量下发文件。其中使用src来定义本地源文件路径,使用dest定义被管理主机文件路径,使用content则是通过指定信息内容来生成文件。注意,复制或者下发文件,一定时管理主机上有的文件,不要使用管理主机上不存在的文件或目录

批量下发、复制文件

批量下发文件时,可以同时指定文件的属组属主,文件权限等属性

ansible web -m copy -a ‘src=/etc/fstab dest=/opt/fstab.bak owner=lisi group=mysql mode=600 backup=yes‘ -o
ansible web -m shell -a ‘md5sum /opt/fstab.bak‘ -o   //验证下发功能

写入指定内容到文件

ansible web -m copy -a ‘content="hello word!" dest=/opt/a.txt‘ -o
ansible web -m shell -a ‘md5sum /opt/a.txt‘ -o

shell模块

shell模块可在被管理主机上运行命令,并支持风管道符等功能的复杂命令

ansible zhangsan -m shell -a ‘echo abc123 | passwd --stdin zhangsan‘   //免交互创建已有用户密码

file模块

file模块用来设置文件属性,其中使用path指定文件路径,使用src定义源文件路径,使用name或dest来替换创建文件的符号链接

设置文件权限

ansible web -m file -a ‘owner=lisi group=mysql mode=644 path=/opt/a.txt‘ -o
ansible web -m shell -a ‘ls -l /opt/a.txt‘

设置链接文件

ansible web -m file -a ‘path=/opt/fstab.link src=/etc/fstab state=link‘ -o    //src后的目录及文件都为和管理主机上所有

删除文件

ansible web -m file -a "path=/opt/a.txt state=absent" -o

创建文件

ansible web -m file -a "path=/opt/test state=touch" -o            //创建一个文件

yum模块

yum模块负责在被管理主机上安装与卸载软件包,可以使用本地yum仓库,或是在线yum源,如果选用本地yum仓库,则需为被管理主机搭建yum仓库。若是使用在线,则直接安装,本次测试采用在线安装,不搭建本地yum仓库。

安装软件包

ansible web -m yum -a ‘name=httpd state=latest‘ -o   //在被管主机上安装最新版本httpd软件
ansible web -m shell -a ‘rpm -qa httpd‘ -o           //查看软件包安装情况

卸载软件包

ansible web -m yum -a ‘name=httpd state=absent‘ -o
ansible web -m shell -a ‘rpm -qa httpd‘ -o

service模块

service模块用来控制管理服务的运行状态,其中,使用enablesd表示是否开机自启,取值为true或false;使用name定义服务名称;使用state指定服务状态,分别取值startd、stoped、restarted。

开启httpd服务

ansible web -m service -a ‘enabled=true name=httpd state=started‘ -o
ansible web -m shell -a ‘/usr/bin/netstat -ntap | grep httpd‘                          //查看服务启动是否成功
ansible web -a ‘systemctl status httpd‘                                                         //查看服务状态

script模块

script模块可以将本地脚本复制到被管理主机上进行运行。注意,使用相对路径来指定脚本

编写简单的shell脚本

cd /opt
vim test.sh
#!/bin/bash
echo this is ansible test > /opt/ansible.txt
chmod +x test.sh

下发shell脚本执行

ansible web -m script -a ‘test.sh‘
ansible web -m shell -a ‘/usr/bin/cat /opt/ansible.txt‘

setup模块

setup模块收集、查看被管主机的facts(facts是ansible采集被管理主机设备信息的一个功能)。每个被管理主机在接收并运行管理命令之前。都会将自己的相关信息(操作系统、IP地址等)发送给控制主机。

ansible web -m setup     //内容特别多就不贴图了

原文地址:http://blog.51cto.com/13643643/2153882

时间: 2024-08-01 10:49:26

Ansible常用Ad-Hoc命令介绍的相关文章

ansible常用ad hoc操作

ansible group001 -i hosts.ip -m shell -a "run some shell command" --sudo -f 1 -v

Ansible 常用的一些命令

Ansible版本 [[email protected] tmp]# rpm -q ansibleansible-2.1.2.0-1.el6.noarch Ansible配置文件 [[email protected] tmp]# rpm -ql ansible | less/etc/ansible                     /etc/ansible/ansible.cfg        //配置文件 /etc/ansible/hosts              //主机清单 /e

Ansible 七(ad hoc任务)

Ansible 七(ad hoc任务) ansible任务 ad hoc任务就是执行shell命令.或shell脚本. ansible ad-hoc命令 可以执行一些简单的命令,不需要将这些执行的命令特别保存下来. 适合执行简单的命令. ansible playbook 可以解决比较复杂的任务,可以将命令保存下来. 适合执行配置管理或部署客户机. 并行性和shell命令 重启webservers主机组里的所以机器,每次重启10台 ansible webservers -a "/sbin/rebo

转:maven常用命令介绍

mvn 3.0.4 创建maven项目命令 mvn  archetype:generate   -DgroupId=damocles-autocredit -DartifactId=damocles-autocredit  -DarchetypeArtifactId=maven-archetype-quickstart     -DinteractiveMode=false  -X 1 下载源代码:mvn dependency:sources -DdownloadSources=true -Dd

ansible常用命令及模块的使用方法

ansible是指令核心部分,其主要用于执行ad-hoc(点对点)命令,即单条命令.默认后面需要跟主机和选项部分,默认不指定模块时,使用的是command模块. 2. 默认使用的模块是可以在ansible.cfg 中进行修改的. /etc/ansible/ansible.cfg ansible常用命令解析: 查看当前 ansible 都支持哪些模块: ansible-doc -l 查看某一模块可以使用的参数:ansible-doc -s copy (eg:copy模块) ansible用法: a

ansible常用模块介绍

ansible查看模块用法 例子 查看shell 模块使用方法 [[email protected] opt]# ansible-doc -s shell 注: -i 指定配置文件  tomcatserver自己定义的工作组  -m 指定模块 file模块 file模块包含如下选项: force:需要在两种情况下强制创建软链接,一种是源文件不存在但之后会建立的情况下:另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no group:定义文件/目录的属组 mo

Ansible常用模块介绍及使用

ansible常用命令解析: 查看当前 ansible 都支持哪些模块: ansible-doc -l 查看某一模块可以使用的参数:ansible-doc -s copy (eg:copy模块) ansible用法: ansible 主机名 -m 模块名 -a 模块参数 -m:模块的名字,如果执行单一的命令不用加-m,默认走command -a: 模块参数,如果模块是command,-a 后面跟的就是命令参数 -i : 指定hosts文件位置      默认:/etc/ansible/hosts

debug常用命令介绍(学习汇编)

显示所有寄存器内容 格式:-r  功能:以十六进制形式显示cpu内部个寄存器的值:以符号形式显示标志寄存器的各标志位(除tf外)的值:并将CS:IP所指的内存内容反汇编成一条指令,可视为将要执行的指令.如: -r   回车AX=0000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000DS=0AF0  ES=0AF0  SS=0AF0  CS=0AF0  IP=0200   NV UP EI PL NZ NA PO NC

常用的DOS命令和运行命令总结(不常用的不介绍,节省学习时间成本)【高手请绕道我怕写的不好丢人】

最初接触到DOS命令是因为学习Java时需要javac和java来编译运行java程序,所以顺便就把DOS常用命令都学了一遍.如果你以前没用过,刚好学习学习,给妹子修电脑的时候多敲几行命令可以让:妹子刮目相看. 下面就是常用的DOS命令和运行命令: 先从简单的运行命令说起:快捷键 win+R 命令            工具            单词 calc          打开计算器         (calculator) mspaint       打开画图工具       (Mic

linux配置网卡IP地址命令详细介绍及一些常用网络配置命令

linux配置网卡IP地址命令详细介绍及一些常用网络配置命令2010-12-17 0 个评论 收藏 我要投稿 Linux命令行下配置IP地址不像图形界面下那么方 便,完全需要我们手动配置,下面就给大家介绍几种配置的方法: 即时生效(重启后失效): ifconfig eth0 192.168.1.102 netmask 255.255.255.0 //添加IP地址 route add default gw 192.168.1.1 //添加网关 启动生效: vim /etc/sysconfig/ne