ansible使用笔记(二)常用命令使用及常用模块简介

目录
一、常用命令使用
二、双引号" " 单引号' '对执行结果的影响
三、ansible-console工具
四、ansible常用模块

一、常用命令使用
前面有提到过ansible的常用的命令和使用
列出要执行主机
ansible all --list-hosts
批量检测主机
ansible all -m ping -k
ansible主机集合 -m 模块名称 -a 模块参数
主机集合 主机名或分组名,多个使用"逗号"分隔
-m 模块名称,默认command模块
-a or --args模块参数
其它参数
-i inventory文件路径,或可执行脚本
-k 使用交互式登陆密码
-e 定义变量
-v 显示详细信息

二、双引号" " 单引号' '对执行结果的影响
执行以下命令来查看ansible的执行结果
1)shell
ansible web -m shell -a "echo ${HOSTNAME}"
ansible web -m shell -a 'echo ${HOSTNAME}'

2)创建的文件在哪查看
ansible cache -m shell -a 'cd /tmp'
ansible cache -m shell -a 'touch testfile'

注:
1)变量解析 双引号"" 与单引号''使用区别
ansible 执行命令是二次解析,第一次在本机解析, 第二次在执行机器解析,需要第二次解析的变量要转移
总结: 参数默认使用 ' ' 号就对了

2)创建的文件在哪里
文件在用户家目录,ansible 是使用 ssh 多次连接执行,连接退出以后之前的状态就全部失效了
解决方法:使用 chdir 代替 cd 命令
ansible cache -m shell -a 'chdir=/tmp touch testfile'

三、ansible-console工具
是ansible为用户提供的交互式工具,用户可以在ansible-console虚拟出来的终端出来的终端上像shell一样使用ansible内置的各种命令,这为习惯使用shell交互方式的用户提供了良好的使用体验

四、ansible常用模块
4.1 ) ansible-doc和ping模块
ansible-doc模块手册

模块的手册相当于shell的man,很重要

ping模块
测试网络连通性,ping模块没有参数
注:测试ssh连通性

4.2 ) command模块
默认模块,远程执行命令
用法

command模块注意事项:
该模块通过-a跟上要执行的命令可以直接执行,若命令里有如下字符则执行不成功
"<" ">" "|" "&"
command模块不能解析系统变量
该模块不启动shell直接在ssh进程中执行,所有使用到shell的命令执行都会失败

查看所有机器负载

查看日期和时间

4.3 )shell模块
shell模块用法基本和command一样,区别是shell模块是通过/bin/sh进行执行命令,可以执行任意命令
不能执行交互式的命令,例如 vim top等

4.4 ) script模块
命令太复杂?
在本地写脚本,然后使用script模块指量执行
ansible web -m script -a 'urscript'
注意:该脚本包含但不限于shell脚本,只要指定sha-bang解释器的脚本都可运行

案例:
给所有web主机添加用户wk
1.要求by用户与wk用户不能出现在同一台主机上
2.设置wk用户的密码是456

4.5 ) yum模块
使用yum包管理器来管理软件包
name:要进行操作的软件包名字
state:动作(installed安装、removed删除)

4.6 ) service模块
name:必须项,服务名称
enabled:是否开机启动yes|no
sleep:执行restarted,会在stop和start之间沉睡几秒钟
state:对当时服务执行启动、停止、重启中、重新加载等操作(started,stopped,restarted,reloaded)
案例:
1.给db组安装mariadb
2.开启mariadb服务并设置开机启动

4.7 ) copy模块
复制文件到远程主机
src:复制本地文件到远程主机,绝对路径和相对路径都可以,路径为目录时会递归复制,若路径以"/"结尾,只复制目录里的内容,若不以"/"结尾,则复制包含目录在内的整个内容,类似于rsync
dest:必须项,远程主机的绝对路径,如果源文件是一个目录,那该路径必须是目录
backup:覆盖前先备份原文件,备份文件包含时间信息,有两个选项:yes|no
force:若目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,设为no,则只有当目标主机的目标位置不存在该文件时才复制,默认为yes
案例:
拷到本机/etc/resolv.conf 文件到所有拖管主机 并对原文件备份
给所有 db 主机开启 binlog 日志

4.8 ) lineinfile模块 replace模块
类似sed的一种行编辑替换模块
path 目标文件文件
regexp 正则表达式,要修改的行
line 最终修改的结果

replace模块
类似sed的一种行编辑替换模块
path 目标文件文件
regexp 正则表达式,要修改的行
replace 替换后的结果

lineinfile模块与 replace模块区别
lineinfile模块 是修改某个文件的单行并进行替换
replace模块 是修改某个文件的所有匹配行并进行替换

4.9 ) setup模块
主要用于获取主机信息,playbooks里经常会用的另一个参数gather_facts与该模块相关,setup模块下经常用的是filter参数

filter过滤所需信息

执行以下命令可查看包含的所有信息,可大致浏览一遍,包含的信息,
需要注意的是 filter过滤条件必须以信息中模块名为过滤条件 模块中详细信息不能为过滤条件



  • ansible浣跨敤绗旇(浜)甯哥敤鍛戒护浣跨敤鍙婂父鐢ㄦā鍧楃畝浠
    绛旓細涓銆佸父鐢ㄥ懡浠浣跨敤 鍓嶉潰鏈夋彁鍒拌繃ansible鐨勫父鐢ㄧ殑鍛戒护鍜屼娇鐢 鍒楀嚭瑕佹墽琛屼富鏈 ansible all --list-hosts 鎵归噺妫娴嬩富鏈 ansible all -m ping -k ansible涓绘満闆嗗悎 -m 妯″潡鍚嶇О -a 妯″潡鍙傛暟 涓绘満闆嗗悎 涓绘満鍚嶆垨鍒嗙粍鍚,澶氫釜浣跨敤"閫楀彿"鍒嗛殧 -m 妯″潡鍚嶇О,榛樿command妯″潡 -a or ...
  • ansible绗旇(7):甯哥敤妯″潡涔嬬郴缁熺被妯″潡
    绛旓細@reboot琛ㄧず閲嶅惎鏃舵墽琛,@hourly琛ㄧず姣忓皬鏃舵墽琛屼竴娆,鐩稿綋浜庤缃垚鈥0 * * * *鈥 ,杩欑@寮澶寸殑鏃堕棿璁惧畾鏍煎紡鍒欓渶瑕浣跨敤special_time鍙傛暟杩涜璁剧疆,special_time鍙傛暟鐨勫彲鐢ㄥ兼湁reboot(閲嶅惎鍚)銆亂early(姣忓勾)銆乤nnually(姣忓勾,涓巠early鐩稿悓)銆乵onthly(姣忔湀)銆亀eekly(姣忓懆)銆乨aily(姣忓ぉ)銆乭ourly(姣忔椂)銆
  • 鎬庢牱鎵嶈兘瀛﹀ソLinux杩愮淮
    绛旓細鎬荤殑鏉ヨ锛歀inux杩愮淮鏋舵瀯甯堟洿澶氱殑鏄牴鎹紒涓氭棩鐩婂闀跨殑璁块棶閲忛渶姹傦紝鍒╃敤鑻ュ共杩愮淮宸ュ叿缁勫悎鍔犱笂缁忛獙鎬濇兂锛屽舰鎴愯В鍐充笟鍔¢渶姹傛柟妗堢殑闃舵锛屽綋鐒朵篃涓嶆帓闄ゅ杩愮淮宸ュ叿杩涜浜屾寮鍙戜互鍙婂彲瑙嗗寲灞曠ず杩愮淮鏁版嵁鐨勯樁娈碉紙寮鍙戣蒋浠跺钩鍙帮級锛岃繖涓樁娈垫秹鍙婄殑宸ュ叿浼氶潪甯稿锛屽嚑涔庡競闈㈠ソ鐢ㄧ殑寮婧愬伐鍏烽兘鍦ㄥ閫変箣鍒楋紝鍦ㄤ竴绾垮煄甯備簰鑱旂綉鍏徃...
  • 娴呰皥濡備綍瀛︿範linux(寮虹儓鎺ㄨ崘)
    绛旓細鑰浣跨敤铏氭嫙鏈鸿蒋浠舵棦鐪侀挶鍙堝畨鍏,鍥犳,瀵逛簬鏂版墜鏉ヨ,鍒╃敤铏氭嫙鏈哄涔爈inux绠鐩存槸鍐嶅ソ涓嶈繃浜嗐2銆佸湪铏氭嫙鏈轰笂瀹夎linux绯荤粺,浣犱笉鐢ㄦ媴蹇冧細鏍煎紡鍖栨帀鑷繁鐨勭‖鐩,浣犵敋鑷冲彲浠ラ殢鎰忕殑瀵硅櫄鎷熺郴缁熻繘琛屼换浣曠殑璁剧疆鍜屾洿鏀规搷浣,浣犲彲浠ユ牸寮忓寲铏氭嫙绯荤粺纭洏,閲嶆柊鍒嗗尯铏氭嫙绯荤粺纭洏绛夌瓑, 鍥犱负铏氭嫙鏈烘槸浣犵湡瀹炵郴缁熶笂杩愯鐨勮蒋浠,瀵硅櫄鎷熸満绯荤粺鐨勪换浣...
  • 鎶鏈潰璇曚細闂緢澶氭妧鏈棶棰樺悧
    绛旓細绗簩,濡傛灉闈㈣瘯瀹橀棶鍒颁綘涓嶄細鐨勯棶棰,浣犲氨璇磋繖涓笉澶啛鎮,娌℃湁鍏蜂綋鐮旂┒杩,鍗冧竾鍒笉鎳傝鎳,杩樻壇涓鍫嗘病鐢ㄧ殑璇濋鏉ユ帺楗,杩欐牱鍙細璁╅潰璇曞畼鍙嶆劅浣犮傜涓,鍑嗗鍏呭垎,绔熷彲鑳藉鐨勮浣忓師鐞嗘х殑鐭ヨ瘑,涓鑸潰璇曢棶鐨勫鐨勫氨鏄師鐞嗐傚緢灏戦棶鍏蜂綋鐨勯厤缃枃浠舵槸鎬庝箞閰嶇疆鐨勩傞潰璇曞墠涔熻浜嗚В娓呮鈥滆亴浣嶆弿杩扳濆拰鈥滃矖浣嶈姹傗,铏界劧鏈...
  • 扩展阅读:sans游戏下载(正版) ... invisible by mamiyasai ... 隐形人invisible林隼 ... ansible playbook ... 《invisible》笔趣阁 ... plausible-sounding ... invisible全文阅读 ... 《管教》s ... 宿敌by艾玛 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网