|
|
配置hosts
* n7 z8 M/ I3 w/ x
9 D7 v. _! [) _, I# cat /etc/ansible/hosts
1 w. k/ V7 K3 p0 N; i B
7 C. ]7 R7 h, v/ f# F[test01], {% w, R" I* J3 q+ D& C, ~
10.212.52.14 . B3 _' | ?9 M8 @
9 L- o8 }- N5 s: w5 h' Y5 @+ [ansible_ssh_user=test 2 K: |& y) w8 c- b, D
8 x( {! i" N- T' [- r! Eansible_ssh_pass=111111
4 E/ `+ h7 r) W- [
8 m6 x- N0 ]; X3 M1 ^- [ansible_su_pass=*I2145
+ q' }, Q9 Y& I
7 P; }/ k. ~/ a; e, E' _; g10.212.52.16
0 Y( Y, |0 s# d; h1 e, x5 L- d5 a& u* K- o4 `0 t8 w9 U9 G
ansible_ssh_user=test % \; h/ g6 Q4 q' R, c) F
4 E' G2 a; ?. _! Nansible_ssh_pass=xyz123 @: J8 B1 Z+ _3 J# l
2 i. I) t8 L3 e3 ]3 U$ W" ?) |( Eansible_su_pass=mn1Pokm6 f/ z9 }% Y8 p! N2 h. _
% C/ r/ F9 l+ J: t3 J
10.212.52.252
) c/ d5 C- t6 L! Y( F; e; F7 c( h. n1 K
ansible_ssh_user=amos 2 H0 k/ j& A9 A9 t, c( A+ q
" G& l8 z/ M* ^) c
ansible_ssh_pass=asdf ! h' y: w, x8 t2 b* q a: T
8 b$ c2 |" H2 pansible_su_pass=xyzp)okm" N0 N$ z1 R' p0 e
9 ?2 g% F1 i, w- i* I# c% m% j' b5 Q1 c8 ]- h" q) a L- u, ~0 J; I5 ]9 D
playbooks核心元素( _% F$ m, k) H/ ?% I2 B
U4 a; B/ T; d- t! Y
6 s" k1 r; ?( q8 UTasks任务、Variables变量、Templates模板、Handlers处理器、Roles角色
+ |. u# j7 D# X- x" U$ L5 e5 K, e' h$ w# V8 }; x
; I# A/ [* R1 b(2)playbooks中定义任务: `& O, I& U) i5 W l
5 K$ [9 K4 ^: G" }' V$ ]
- name: task description 注释描述信息
9 f0 [2 x1 \9 Z% H. j5 Tmodule_name: module_args 声明模块:定义ansible模块参数, o7 e9 T! e; K. k
/ j# c9 q1 }. _( k3 [ . c/ V! h1 i0 X) P. l. `
' y2 o6 s8 D- X" s* }
9 @" i5 q/ f. J* p, v( W2 Q(3)ansible-playbook执行命令:' ^4 S, f5 ?& w- s! b- {
( G# z$ m& N+ Z# K3 f9 tansible-playbook <filename.yml> ... [options]
: i* q* H9 R' E$ W+ Y
, _3 v) _* F& z" i# O/ Q # z& e, f$ P. }
3 r/ L, t7 k$ E' }% K" ?
4.playbook--- 变量
4 l8 i5 {' C, m X
: m% C2 n W1 z. f/ M/ G(1)变量命名:字母、数字和下划线组成,仅能以字母开头;
# \! w' C% ?- ^. \: X9 H4 h- v/ }9 P% ]/ T& _
& G# o% L$ X5 L* ]9 f(2)变量种类: b+ s; F e9 }; |. B
" I" \! X7 y$ G, `) A
) ? c0 x# G! Q0 x" ^1)facts:由远程主机发回的主机特有的属性信息,这些信息被保存在ansible变量中;无须声明,可直接调用;; N5 |8 i: x' A% [3 i
; M2 V6 m! G G5 C7 ?( q$ \
* l: R* a/ t2 y& G
2)自定义变量: C1 K1 }. U! Z2 r, z v: z" x
通过命令行传递:ansible-playbook test.yml --extra-vars "host=www user=test"% s6 W, I* v% [) Z- _( S
' g5 D; S* u" c0 |7 w5 r
通过roles传递
, W- Q% O; E1 F& e$ w9 W) J, o$ K" H6 P
N: y3 Z- a& ^; w# c4 a3)主机变量:定义在inventory中的主机之后的变量;直接传递给单个主机的变量5 X- H. n& ], ?7 X' ]- g
实例:+ V0 U9 G0 F' u$ E) S* ]
; e% [, I! N V% T
+ |: C( M, i* Q0 n |
|