찾다
컴퓨터 튜토리얼컴퓨터 지식Ansible Ad-Hoc(피어 투 피어 모드)

Ansible Ad-Hoc(피어 투 피어 모드)

Feb 18, 2024 pm 04:48 PM
기준 치수commandansible

공식 문서: https://docs.ansible.com/ansible/latest/command_guide/intro_adhoc.html

Ansible Ad-Hoc(点对点模式)

简介

Ad-hoc命令是一种临时输入并执行的命令,通常用于测试和调试。它们不需要永久保存,简单来说,ad-hoc就是“即时命令”。

常用模块

1、command 模块(默认模块)

默认模块,没有shell强大,基本上shell模块都可以支持command模块的功能。

【1】帮助

ansible-doc command
# 推荐使用下面这个
ansible-doc command -s

【2】参数解释

  • free_form——必须参数,指定需要远程执行的命令。需要说明一点,free_form 参数与其他参数(如果想要使用一个参数,那么则需要为这个参数赋值,也就是name=value模式)并不相同。比如,当我们想要在远程主机上执行 ls 命令时,我们并不需要写成”free_form=ls” ,这样写反而是错误的,因为并没有任何参数的名字是 free_form,当我们想要在远程主机中执行 ls 命令时,直接写成 ls 即可。因为 command 模块的作用是执行命令,所以,任何一个可以在远程主机上执行的命令都可以被称为 free_form。
  • chdir——此参数的作用就是指定一个目录,在执行对应的命令之前,会先进入到 chdir 参数指定的目录中。
  • creates——看到 creates,你可能会从字面上理解这个参数,但是使用这个参数并不会帮助我们创建文件,它的作用是当指定的文件存在时,就不执行对应命令,比如,如果 /testdir/test文件存在,就不执行我们指定的命令。
  • removes——与 creates 参数的作用正好相反,它的作用是当指定的文件不存在时,就不执行对应命令,比如,如果 /testdir/tests 文件不存在,就不执行我们指定的命令,此参数并不会帮助我们删除文件。

【3】示例演示

# 上面命令表示在 web 主机上执行 ls 命令,因为使用的是 root 用户,所以默认情况下,ls 出的结果是 web 主机中 root 用户家目录中的文件列表。
ansible web -m command -a "ls"

# chdir 参数表示执行命令之前,会先进入到指定的目录中,所以上面命令表示查看 web 主机上 /testdir 目录中的文件列表,返回显示有2个文件。
ansible web -m command -a "chdir=/testdir ls"

# 下面命令表示 /testdir/testfile1 文件存在于远程主机中,则不执行对应命令。/testdir/testfile3 不存在,才执行”echo test”命令。
ansible web -m command -a "creates=/testdir/testfile1 echo test"

# 下面命令表示 /testdir/testfile3 文件不存在于远程主机中,则不执行对应命令。/testdir/testfile1 存在,才执行”echo test”命令。
ansible web -m command -a "removes=/testdir/testfile1 echo test"

2、shell 模块

shell模块 [执行远程主机的shell/python等脚本]。

【1】查看帮助

ansible-doc shell -s

【2】示例演示

# -o:一行显示
# 安装httpd
ansible web -m shell -a 'yum -y install httpd' -o

# 查看时间
ansible web -m shell -a 'uptime' -o

3、script 模块

script模块 [在远程主机执行主控端的shell/python等脚本 ]。

【1】查看帮助

ansible-doc script -s

【2】参数解释

  • free_form——必须参数,指定需要执行的脚本,脚本位于 ansible 管理主机本地,并没有具体的一个参数名叫 free_form,具体解释请参考 command 模块。
  • chdir——此参数的作用就是指定一个远程主机中的目录,在执行对应的脚本之前,会先进入到 chdir 参数指定的目录中。
  • creates——使用此参数指定一个远程主机中的文件,当指定的文件存在时,就不执行对应脚本,可参考 command 模块中的解释。
  • removes——使用此参数指定一个远程主机中的文件,当指定的文件不存在时,就不执行对应脚本,可参考 command 模块中的解释。

【3】示例演示

# 下面命令表示 ansible 主机中的 /testdir/testscript.sh 脚本将在 web 主机中执行,执行此脚本之前,会先进入到 web 主机中的 /opt 目录
ansible web -m script -a "chdir=/opt /testdir/testscript.sh"

# 下面命令表示,web主机中的 /testdir/testfile1文件已经存在,ansible 主机中的 /testdir/testscript.sh 脚本将不会在 web 主机中执行。
ansible web -m script -a "creates=/testdir/testfile1 /testdir/testscript.sh"

# 下面命令表示,web 主机中的 /testdir/testfile1 文件存在,ansible 主机中的 /testdir/testscript.sh 脚本则会在 web 主机中执行。
ansible ansible-demo3 -m script -a "removes=/testdir/testfile1 /testdir/testscript.sh"

4、raw 模块

raw模块 [类似于command模块、支持管道传递]。

【1】查看帮助

ansible-doc raw -s

【2】示例演示

ansible web -m raw -a "ifconfig eth0 |sed -n 2p |awk '{print $2}' |awk -F: '{print $2}'"

5、copy 模块

copy 模块 从主控端复制文件到被控端。

【1】查看帮助

ansible-doc copy -s

【2】示例演示

# -a,--args:后面接参数
ansible web -m copy -a 'src=/etc/ansible/hosts dest=/tmp/hosts owner=root group=bin mode=777'

# backup=yes/no:文件存在且文件内容不一样是否备份,默认不备份
ansible web -m copy -a 'src=/etc/ansible/hosts dest=/tmp/hosts owner=root group=bin mode=777 backup=yes'

6、fetch 模块

copy 模块从被控端复制文件到主控端,正好跟copy相反。

【1】查看帮助

ansible-doc fetch -s

【2】示例演示

# 跟copy支持的参数差不多,src:远端主机的目录,dest:主控端目录,其实真正存放的目录在:/tmp/192.168.182.129/tmp/up.sh,会按每台主机分组存放
#This `must' be a file, not a directory:只支持单个文件获取
ansible 192.168.182.129 -m fetch -a "src=/etc/fstab dest=/testdir/ansible/"

7、unarchive 模块(解包模块)

unarchive 模块是解包模块。

【1】查看帮助

ansible-doc unarchive -s

【2】参数解释

  • copy——默认为yes,当copy=yes,那么拷贝的文件是从ansible主机复制到远程主机上的,如果设置为copy=no,那么会在远程主机上寻找src源文件。
  • src——源路径,可以是ansible主机上的路径,也可以是远程主机上的路径,如果是远程主机上的路径,则需要设置copy=no。
  • dest——远程主机上的目标路径。
  • mode——设置解压缩后的文件权限。

【3】示例演示

ansible 192.168.182.129 -m unarchive -a 'src=/testdir/ansible/data.tar.gz dest=/tmp/tmp/'

8、archive模块(打包模块)

unarchive 模块是打包模块。

【1】查看帮助

ansible-doc archive -s

【2】示例演示

# path:主控端目录,format:压缩格式,dest:被控端目录文件'
ansible 192.168.182.129 -m archive -a 'path=/tmp/ format=gz dest=/tmp/tmp/t.tar.gz'

9、user 模块

【1】查看帮助

ansible-doc user -s

【2】示例演示

# 创建用户(present:默认,可以不写)
ansible web -m user -a 'name=test state=present'

# 删除用户(absent)
ansible web -m user -a 'name=test state=absent'

# 修改密码
# 步骤一、生成加密密码
echo '777777'|openssl passwd -1 -stdin

# 步骤二、修改秘密
ansible web -m user -a 'name=test password="$1$Jo5FD9Jr$2QB.BuybbtR35ga4O5o8N."'

# 修改shell
ansible web -m user -a 'name=test shell=/sbin/noglogin append=yes'

10、group 模块

【1】查看帮助

ansible-doc group -s

【2】示例演示

# 创建
ansible 192.168.182.129 -m group -a 'name=testgroup system=yes'
# 删除
ansible 192.168.182.129 -m group -a 'name=testgroup state=absent'

11、yum 模块

【1】查看帮助

ansible-doc yum -s

【2】示例演示

# 升级所有包
ansible web -m yum -a 'name="*" state=latest'

# 安装apache
ansible web -m yum -a 'name="httpd" state=latest'

12、service 模块

【1】查看帮助

ansible-doc service -s

【2】示例演示

ansible web -m service -a 'name=httpd state=started'

ansible web -m service -a 'name=httpd state=started enabled=yes'

ansible web -m service -a 'name=httpd state=stopped'

ansible web -m service -a 'name=httpd state=restarted'

ansible web -m service -a 'name=httpd state=started enabled=no'

13、file 模块

【1】查看帮助

ansible-doc file -s

【2】示例演示

# 创建文件
ansible web -m file -a 'path=/tmp/88.txt mode=777 state=touch'

# 创建目录
ansible web -m file -a 'path=/tmp/99 mode=777 state=directory'

# 删除
ansible web -m file -a 'path=/tmp/99 state=absent'

14、setup 模块

【1】查看帮助

ansible-doc setup -s

【2】示例演示

ansible web -m setup

ansible web -m setup -a 'filter=ansible_all_ipv4_addresses'

15、cron 模块

【1】查看帮助

ansible-doc cron -s

【2】示例演示

# 创建定时任务
ansible 192.168.182.129 -m cron -a 'minute=* weekday=1,3,5,6,7 job="/usr/bin/wall FBI warning" name=warningcron'

# 关闭定时任务
ansible 192.168.182.129 -m cron -a 'disabled=true job="/usr/bin/wall FBI warning" name=warningcron'

# 删除定时任务
ansible 192.168.182.129 -m cron -a ' job="/usr/bin/wall FBI warning" name=warningcron state=absent'

16、hostname 模块

【1】查看帮助

ansible-doc hostname -s

【2】示例演示

ansible 192.168.182.129 -m hostname -a 'name=192.168.182.129'

위 내용은 Ansible Ad-Hoc(피어 투 피어 모드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 每日运维에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Zlib1.dll이 누락되었거나 찾을 수 없습니까? 간단한 움직임으로 고정 -MinitoolZlib1.dll이 누락되었거나 찾을 수 없습니까? 간단한 움직임으로 고정 -MinitoolApr 16, 2025 am 12:52 AM

zlib1.dll은 무엇입니까? 어떤 사람들은 Zlib1.dll을 포함하는 응용 프로그램을 열려고 할 때 "zlib1.dll is missing"오류를 발견했습니다. 이러한 관련 오류를 해결하기 위해 Php.cn 웹 사이트 의이 기사는 귀하에게 몇 가지를 줄 수 있습니다.

Autofill이 Excel에서 작동하지 않습니까? 다음은 수정 사항입니다! - 미니 툴Autofill이 Excel에서 작동하지 않습니까? 다음은 수정 사항입니다! - 미니 툴Apr 16, 2025 am 12:51 AM

여러분 중 일부는 Autofill이 Excel에서 작동하지 않는다는 것을 알 수 있습니다. 그것에 대한 해결책을 제시 할 수 있습니까? 그렇지 않다면, 당신은 올바른 지점에 왔습니다. Php.cn 웹 사이트 의이 게시물은 Excel Autofill이 작동하지 않는 6 가지 방법을 제공합니다.

Windows 7 스타터 에디션 : 무엇입니까? 다운로드하는 방법? - 미니 툴Windows 7 스타터 에디션 : 무엇입니까? 다운로드하는 방법? - 미니 툴Apr 16, 2025 am 12:50 AM

Windows 7 스타터 에디션이란 무엇입니까? Windows 7 스타터 에디션의 한계는 무엇입니까? Windows 7 스타터 에디션 ISO를 얻는 방법은 무엇입니까? Php.cn 의이 게시물은 Windows 7 Starter Edition에 대한 자세한 정보를 제공합니다.

이 상단 가이드를 사용하여 앱을 Windows에서 다른 사용자로 실행합니다.이 상단 가이드를 사용하여 앱을 Windows에서 다른 사용자로 실행합니다.Apr 16, 2025 am 12:49 AM

앱을 실행할 때 현재 계정에서 로그인 한 다음 다른 계정에 로그인하여 계정을 변경하는 데 어려움을 겪고 있습니까? Php.cn은 Windows 10 및 Windows 11에서 앱을 다른 사용자로 실행하는 데 도움이되는 몇 가지 효과적인 방법을 수집했습니다.

수정 : Dropbox 파일을 다운로드하는 오류가있었습니다수정 : Dropbox 파일을 다운로드하는 오류가있었습니다Apr 16, 2025 am 12:48 AM

Windows에서 "Dropbox가 파일을 다운로드하는 오류가 발생했습니다"오류로 고통 받고 있습니까? 이제이 문제에 대한 몇 가지 유용한 솔루션을 얻으려면 php.cn이 제공 한이 게시물을 읽으십시오.

File Explorer에서 선택한 파일을 수정하는 5 가지 방법 -MinitoolFile Explorer에서 선택한 파일을 수정하는 5 가지 방법 -MinitoolApr 16, 2025 am 12:47 AM

"선택된 파일이 파일 탐색기에서 강조 표시되지 않는다"는 문제에 어려움을 겪고 있습니까? 그것을 고치는 방법을 알고 있습니까? 그렇지 않은 경우 Php.cn 에서이 게시물을 읽고 파일 탐색기에서 선택한 파일을 볼 수 있도록 몇 가지 실현 가능한 솔루션을 얻을 수 있습니다.

작업 표시 줄에서 누락 된 언어 표시 줄 수정 - 입증 된 가이드작업 표시 줄에서 누락 된 언어 표시 줄 수정 - 입증 된 가이드Apr 16, 2025 am 12:46 AM

다중 언어로 작업하면 언어 표시 줄이 필수적입니다. 작업 표시 줄에서 설정을 조정하여 입력 언어를 변경할 수 있습니다. 그러나 컴퓨터를 열 때 언어 막대는 언젠가 사라질 수 있습니다. 언어 막대를 고치는 방법

외부 드라이브를 안드로이드 폰이나 태블릿에 연결하는 방법은 무엇입니까? - 미니 툴외부 드라이브를 안드로이드 폰이나 태블릿에 연결하는 방법은 무엇입니까? - 미니 툴Apr 16, 2025 am 12:45 AM

외부 드라이브를 사용하여 휴대 전화의 스토리지를 확장하고 싶습니까? 이것을 할 수 있습니다. 이 PHP.CN 게시물은 외장 드라이브를 전화기에 연결하는 방법에 대한 안내서를 보여줍니다. 게다가 외부 드라이브에서 데이터를 복구 해야하는 경우 PHP를 사용해 볼 수 있습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.