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

楼主 |
发表于 2017-3-9 19:52:04
|
显示全部楼层
主要参数如下:
2 T4 {+ ?5 Z P' [3 e8 c
5 k& x: ~6 O, i, m* y/ O+ v$ f2 P-u username #指定ssh连接的用户名,即执行后面命令的用户
0 v8 a v& z. n& b+ L-i inventory_file #指定所使用的inventory文件的位置,默认为/etc/ansible/hosts+ X( F6 u% |" g' d! I* y
-m module #指定使用的模块,默认为command0 s7 U$ \3 E: g2 }: m% |+ {/ [" V
-f 10 #指定并发数,并发量大的时候,提高该值* t& _8 E) t9 X* E
--sudo [-k] #当需要root权限执行的化,-k参数用来输入root密码
* N+ } M( n. L5 \% R; M6 r. }8 E& B) ~& d) B
; W( `) O$ V& f% b9 c: ]: Z; h7 n1 ^9 Z
执行命令用到的那些模块是干嘛的?使用ansible-doc查看帮助吧。
8 z% T p' ~3 ?# G+ B C( N0 S2 H2 M3 X: ?" y. V
ansible-doc-l #查看模块列表$ h4 n3 n2 D$ f# _& q0 F, R& d& `4 O
ansible-doc copy #查看copy模块的详细信息: h8 b1 c6 }( z# ?
ansible-doc script #查看script模块的详细信息; F% {; g' M a' T3 }
+ {7 x4 p* u* R) K
, t1 k# n3 C0 I$ s, L2 c' w$ N" B5 ]8 y' x) R, W, Q4 u
6 x2 y7 n' D' \7 J2 Z
6 W/ [- j1 S) z1 P9 S" P
其实playbook就是把上述在命令行的操作,以yml格式写在文件中来执行而已。复杂的playbook只是更多的命令行操作的集合。; o5 A$ Q" \( n1 f. U
* q) K% F. {) P6 {
此例:当某个文件变化后,移走该文件。
! n0 v s, J0 J) x) r
0 K1 O. n* G' o* C9 T#cat playbook.yml1 A% V. y2 h2 w
---
+ k) d5 X! n, _. a* B; `7 m# N- hosts:local # hosts中指定
3 H. V/ n2 y6 i: ~3 e& M remote_user: yang # 如果和当前用户一样,则无需指定$ n0 ~ {( Q$ ^% O
tasks:4 e, s: ? a" f
- name: whoami
0 l1 M6 I7 k. E1 O0 [. v) L copy: src=~/hosts dest=~/hosts.dest # 本地拷贝到远端
! G0 B0 m: K, c notify: # 如果copy执行完之后~/hosts.dest文件发送了变化,则执行. g4 U, E: _1 p2 @7 x$ T B
- clear copy # 调用handler中的clear copy定义的动作! E, F2 e0 r% n. q
handlers:
' y0 w5 j [. ?! ^+ q2 Q - name: clear copy; S' p+ S |! o1 t) F+ n2 S5 Y
shell: ‘mv ~/hosts.dest hosts.del‘ # 假装删除
9 [% G4 O% u1 d% [8 l注解:
; w! H: v6 G, m+ K4 j2 i
3 c+ t% B7 P- H& r) y& F5 ?tasks定义了playbook中要执行的任务,包括任务名name以及具体的任务内容. }5 V. ?# _7 W3 H/ k
notify:类似于Salt的require,表示当前面的任务完成后且有相应的变化时调用后面定义的handler9 \1 Y6 G) a; ~7 Q
handlers:与notify结合使用,被调用的handler的具体定义2 X5 n" O3 m7 w5 O9 T, s
- X: w$ |. E1 @, ?: Xplaybook执行方法:! h& \+ E& ?. s8 s
3 B6 l0 y' b( e L- d$ I( m
ansible-playbookplaybook.yml 5 T$ H J9 L6 u
#主机名、执行命令都已在yml中指定了。4 C( ~: c9 { ?
$ g6 ~3 l9 h: r, U
: R j( h! E- b- B7 ?# L, c5 a0 ~! e- R4 @, }; K
) W; D# b5 x, K# {8 v3 c0 f2 f% W
|
|