- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|

楼主 |
发表于 2017-3-9 19:52:04
|
显示全部楼层
主要参数如下:
4 E) r* z1 T6 c% x; O% [
8 N5 F, l8 h9 C, F% G-u username #指定ssh连接的用户名,即执行后面命令的用户8 Y, n2 n8 }0 ^4 q* a c
-i inventory_file #指定所使用的inventory文件的位置,默认为/etc/ansible/hosts
! b9 i$ `# U4 b9 F/ h/ A5 A-m module #指定使用的模块,默认为command
% Y$ ^( Q* ^6 O# B-f 10 #指定并发数,并发量大的时候,提高该值+ |; e2 k$ e8 }% ?2 S3 K( ?3 v6 \
--sudo [-k] #当需要root权限执行的化,-k参数用来输入root密码
% c' ]; v8 M$ B; N- I: \1 ^2 S# j! K3 N
- p5 S* L1 D$ |# B% Q# b& v: z
执行命令用到的那些模块是干嘛的?使用ansible-doc查看帮助吧。1 }" {4 n0 N1 x, F7 K
+ s Q/ g, Q% i0 u
ansible-doc-l #查看模块列表
g- |% X' H9 xansible-doc copy #查看copy模块的详细信息
8 F; w. H& M2 w$ D6 P, _. o# {1 Lansible-doc script #查看script模块的详细信息- P* _' Z0 O3 B1 ^+ C; _' B$ G& r
; ~: ? W+ @7 A3 i
+ A0 a! ^1 m* b' l- \* y" @$ e- @/ P* x
: e/ q" ^1 v9 W% t2 ]1 u
- ^3 C# d, ]6 F5 D, { 其实playbook就是把上述在命令行的操作,以yml格式写在文件中来执行而已。复杂的playbook只是更多的命令行操作的集合。2 [% p5 X' V$ O o
3 k, b7 M- H# l; e" \& L此例:当某个文件变化后,移走该文件。
) \) a# |7 z Y
2 Q. Y8 X8 @) G; }. F! A$ _#cat playbook.yml( h. ^& Y# A. Y0 ?* }( w
---
& k3 a% [4 O! o ~/ m' M/ Z1 |- hosts:local # hosts中指定% W7 O- `" ^5 {3 S! x
remote_user: yang # 如果和当前用户一样,则无需指定
1 K6 J2 a7 S a' b: D: p tasks:
, `& I6 Z" e6 ]' i' O) S! j o J3 q - name: whoami9 M# J+ T) J; c6 J" w1 t0 g$ l
copy: src=~/hosts dest=~/hosts.dest # 本地拷贝到远端* w+ ?6 \ q5 H3 U
notify: # 如果copy执行完之后~/hosts.dest文件发送了变化,则执行# y. ?. y( a G( K: V0 y, \; G
- clear copy # 调用handler中的clear copy定义的动作1 P7 w8 u, N" U+ N
handlers:" z/ Z7 y' K* H) ~7 ~) {, N" Q
- name: clear copy
/ O7 k; W, h- `9 i shell: ‘mv ~/hosts.dest hosts.del‘ # 假装删除- q: c0 h" M2 K( M
注解:
( ?0 ? S: P* W
7 X$ J6 c, d) _. ]/ b7 Mtasks定义了playbook中要执行的任务,包括任务名name以及具体的任务内容
; r- w3 C# w% ~ @" m7 u/ jnotify:类似于Salt的require,表示当前面的任务完成后且有相应的变化时调用后面定义的handler
8 x+ z% \5 g4 ~% e0 B+ h! x8 Ahandlers:与notify结合使用,被调用的handler的具体定义) I1 w: I( N e4 ~9 s) L! W4 ^
9 g! k3 t2 F. D6 e) h8 i! } g" o5 Kplaybook执行方法:
3 `1 W% }3 y& ^+ o% y5 a% {" C4 g4 m& V% S9 V/ l* {
ansible-playbookplaybook.yml
# O* J* L8 x: Q0 J" v( l#主机名、执行命令都已在yml中指定了。
% N2 v" k6 R2 s; @2 E. {( ?% F
# I1 S+ |8 @5 t# c- _. U, S% N* x
* {/ j4 k1 V) e: g# ~
/ U9 {& p7 k( M+ i' D- e+ S6 n |
|