|
|
配置hosts j2 `8 A$ `: x$ }) S
+ O1 {% B8 o8 ?" h; z
# cat /etc/ansible/hosts6 c+ @ |0 H( Q0 ?
: |/ S% o& [& p5 V
[test01]
; L& T& K$ j3 f* H+ e& {10.212.52.14 2 j. Y4 P+ s, Z0 _" l
% ~8 X f3 _# i* {ansible_ssh_user=test 1 N0 n6 g. X" |( B% F, U
% Z$ H' e- y; C6 P
ansible_ssh_pass=111111
4 V( A$ [2 b7 V
$ s! V' X: R! m* A7 S1 S. Nansible_su_pass=*I2145
1 { ]% a) c3 Z9 |3 b, A5 O5 t, E& N/ t5 T+ w1 ^
10.212.52.16
# s/ h0 @& G! y6 F1 I+ U
' m' o, ~7 f0 d3 K4 jansible_ssh_user=test
: J7 h2 O& u: h- c- _/ w, U t7 _8 L1 b7 a' a
ansible_ssh_pass=xyz123 & Q3 J# y" p9 n" N
* y) A2 I" ^8 V0 ]7 P
ansible_su_pass=mn1Pokm K+ ~8 z6 P5 R% B& L( }3 u
( k& y" s* A% @( ?
10.212.52.252 8 F* z- {) S w# K
3 |: F+ s4 h r: [- g9 S8 R9 o
ansible_ssh_user=amos - a# Q, I; b4 C) t6 G% `# A6 D+ z
/ Z" {: O2 }$ o
ansible_ssh_pass=asdf
9 Q2 L1 x- \8 ^: B- J" [& {" c( k4 G, u% ~* }7 D: v$ m" l
ansible_su_pass=xyzp)okm5 X5 Z# z& P" U& C& o/ x( G
$ J3 V- B! Q3 n3 C+ k' L
t6 ]. q3 B* A& {playbooks核心元素
7 y3 E; [4 B4 s. P1 o/ g$ F, ^2 Y/ k! S' V1 A
6 F/ ^: H( d, ?
Tasks任务、Variables变量、Templates模板、Handlers处理器、Roles角色
$ J: R+ ^% d3 s# q7 n6 C5 D7 @ E
, y# A: {& ^% h! [3 ^* u
}3 l: v* h' o: p(2)playbooks中定义任务:
& [) r. m& I. ~5 s& d- }! d s
1 T# ]0 m( o( |' ^- l- name: task description 注释描述信息8 H, A& L) ?7 Y9 |4 y. H* `
module_name: module_args 声明模块:定义ansible模块参数
/ U$ N4 {) u! `( P' v0 I1 n# P8 V' e0 R* C6 y: e' p

% B1 @$ b, N; d8 G4 R$ S
7 m3 u$ Y4 \6 I: U6 ~! N* h$ @; H- [( P9 b
(3)ansible-playbook执行命令:
?8 P- I; ], z: n' I
7 h* B* O, P( F# T/ r) [, yansible-playbook <filename.yml> ... [options]
* Z% H: E% d' L& {- O7 G) X: _
8 q- b: l6 _/ R1 D2 L0 O
- w2 y7 Q, i; Q6 c' K) g# t! I( z) v( H6 n6 R0 B
4.playbook--- 变量
1 L- H2 t& p) z! a
% l# B( n: C$ [- w6 H(1)变量命名:字母、数字和下划线组成,仅能以字母开头;
1 }/ f) T+ W/ p- ~# [3 P/ Q
% I/ m4 H2 r( a5 _) O) f5 [/ t$ S: i- S6 y
(2)变量种类:; X% {( |+ t" z! l3 `9 q- d
( g& [2 w) c- A7 A; N( l. A+ N" G9 K9 R! X2 \4 ^6 p
1)facts:由远程主机发回的主机特有的属性信息,这些信息被保存在ansible变量中;无须声明,可直接调用;
* }' u; S6 S, X/ S7 Y8 `# E8 h1 n# |/ H+ O% u5 E
% h2 M! S2 s, y2 `
2)自定义变量:. t% J: p# w& I) ?1 ?
通过命令行传递:ansible-playbook test.yml --extra-vars "host=www user=test"
; Q! x2 N3 ]2 ?" I K: q9 N, h
, ?1 @4 n9 r( D通过roles传递2 @" {* H0 j+ B2 I6 _7 p, }
/ j/ w9 Z. [. }+ s7 T: W* l4 {5 ]" q: K2 j5 r+ _
3)主机变量:定义在inventory中的主机之后的变量;直接传递给单个主机的变量
: I! L5 x8 G/ |9 x8 V# s- s实例:( y8 f5 b0 F# K+ J
7 W* n+ Q% N- T- E `: W
& _, o! T, u3 ~8 Q' s
|
|