|
|
配置hosts
" g' w9 @# n; N
3 k: J& s' L/ B- B& e. |0 W2 W+ F# cat /etc/ansible/hosts
" X5 H G8 L* s5 @
. d1 z- t( i6 k8 v! A9 |( c[test01]3 J" A( R9 i- t* u( r3 m/ [
10.212.52.14
" |* ^1 o1 a- n+ W2 ^% m# M4 i) U5 f! I% \0 Z( T
ansible_ssh_user=test
# ]+ n9 L2 U L3 U" l* C4 N3 {4 ]% K+ Y2 b
ansible_ssh_pass=111111
7 A/ R9 n. H' F4 L9 |$ l- g9 g8 R; }: h3 n4 V4 G% w9 ~
ansible_su_pass=*I21453 N1 A: n6 q: B b
7 W* C# v- H: E. S# Q
10.212.52.16
! l6 b+ V( s9 f1 @0 _7 G5 q3 k4 J; M
ansible_ssh_user=test
. u' ~+ W W3 @: W4 E% P4 m
% w5 D1 T+ V$ sansible_ssh_pass=xyz123 " f1 e, S' U' n6 ^3 n- U" Z
, h7 p. O5 e, y9 w
ansible_su_pass=mn1Pokm
. ]" T( `4 {8 B$ V- r+ x5 |
6 r$ w. V3 |( q4 g8 @10.212.52.252
0 |2 J4 |/ m7 s2 d1 Y
0 D; d% q2 d* m, b! C# hansible_ssh_user=amos ( ~. C4 S9 j* j! Z: b
# K$ W& G m7 e8 r0 D
ansible_ssh_pass=asdf - j6 G* B3 N6 ?+ w
# g- R# z5 e p5 b8 c/ y1 m% p
ansible_su_pass=xyzp)okm# ~0 M+ `" ^# y2 J7 D- w
! B3 Z8 ~. n1 m, M1 W" f& {, X
4 p' I1 ^8 u1 N4 T9 i0 A# _playbooks核心元素
3 r, A7 [ x% O: K O$ S/ {+ E; n
$ o" O, W! s* }' J8 m7 I
Tasks任务、Variables变量、Templates模板、Handlers处理器、Roles角色
( i/ M6 D3 T- U& w, X% v( n6 r6 a" ]4 e$ U5 J
2 g+ ]& J0 k J A8 l3 R+ w(2)playbooks中定义任务:
3 r+ _9 W- v( A7 Z6 ]+ Z, ?1 }
' l" f/ X, r4 W' K- name: task description 注释描述信息( E# w" V. \/ b
module_name: module_args 声明模块:定义ansible模块参数
2 A) j& w+ [. S* a9 ^9 ?7 j6 N6 C+ Z0 D. G1 f& x& g2 N

4 q( K) \& E* Q w" m
! e: Q$ o, |1 A7 X, e) q
6 J, h, C& {# a+ _% i' W- k. x(3)ansible-playbook执行命令:: h, S2 O, J J1 X# {
5 L8 R1 F" J- E+ ?0 G0 J# b" |
ansible-playbook <filename.yml> ... [options]& J+ @5 l) ]8 d/ ]/ B
/ }) ~ C' Q+ s ^

3 ]: n. }- Z; x$ j3 r. e$ l9 k* m: g/ |3 M
4.playbook--- 变量
2 D( \$ X6 u: p+ t* z. u& A6 C5 {' V6 v' G" ]
(1)变量命名:字母、数字和下划线组成,仅能以字母开头;
6 i# w! v3 R& C* M, c, j+ b; B# n6 W2 G+ n8 `( i% F k
) X0 E% T7 ?% e6 z" I3 s
(2)变量种类:
; K y1 }5 Y2 A8 A8 s! i# I4 I+ ~" P% T0 H# Q
" @& I* C' p5 S+ H1)facts:由远程主机发回的主机特有的属性信息,这些信息被保存在ansible变量中;无须声明,可直接调用;* V. ?& d+ _# F" Y `- h j
' Y* [7 K' [* \
B2 r6 K" H6 b/ z
2)自定义变量:' b' F( \+ Y$ a- x
通过命令行传递:ansible-playbook test.yml --extra-vars "host=www user=test"
) f4 e. e) o" q2 h" h: ?9 @+ i* D {% g
: o5 L& S* r4 D& ^2 Y通过roles传递
6 `' {! y# U/ O9 k) J5 a2 L$ ~1 F5 ^4 L0 f, \% K- S5 e
J5 e7 A# X* a
3)主机变量:定义在inventory中的主机之后的变量;直接传递给单个主机的变量5 v; b( p, c6 ] S9 U9 z; w4 q
实例:
! g3 u6 _9 \" {9 K( d
" k- q; V$ T: E6 V# L% g/ o, T
2 L2 i# A/ G2 }4 f, Z3 [ |
|