|
|
配置hosts
: P; C' K3 ~; i3 Z) M& S9 S; g
* Q* m/ M( v' B6 {7 i; x# cat /etc/ansible/hosts' v; O3 E1 m! g( u, u$ W: f
( j, L4 c z' K9 h5 G$ ~
[test01]8 s3 b" I$ f0 |, n7 M
10.212.52.14
0 U+ X' K6 j, G8 }* I/ I/ ~
+ ]: c* U7 G7 B1 y3 F7 V6 Qansible_ssh_user=test 8 i" h9 F# z$ R' q
( G9 z5 D, F5 \$ }; j6 l! i
ansible_ssh_pass=111111
" }! r/ B! w- j. x) a+ b# K) G
, w/ M8 p [. |4 X, x& q! Pansible_su_pass=*I2145
& S# e) }7 O+ n. | D! y1 O
2 s& r; K# l" w+ \7 v' y& U# }" D, {10.212.52.16 6 e( V6 W; e+ |9 w& H [2 V
( J" k# B1 J9 z
ansible_ssh_user=test
8 g1 y x/ k) s' x" ^1 F& W2 K4 L z; y* f) s' S& N* u1 m U! Z. h
ansible_ssh_pass=xyz123 7 B, U9 q+ q' l/ C! J V4 g
6 g& Z$ s# [- U# V. d' G3 Xansible_su_pass=mn1Pokm, f* z% M" j: }
! U# a+ d# E: O! J7 f+ |10.212.52.252
3 p9 {3 G! w+ }0 c& r2 Z
5 [" z. w4 u' c+ W1 O! Iansible_ssh_user=amos
5 p5 n! k* h4 W4 D' J+ w I! c& l( F9 O0 [8 c* \: M* I" K8 X" E6 x
ansible_ssh_pass=asdf
# r+ W. o! k( _: R& }6 ~6 T- R) f" l5 { t+ V: X; d0 K7 J, p0 R1 r- b8 J/ `
ansible_su_pass=xyzp)okm; S8 T" \8 Z0 U; ]% P7 P w
* _; j8 A% `, J- ?* v# `
7 _$ H B7 v) ^% Uplaybooks核心元素
6 d8 |8 t' W& T0 m! K. F" W- ~1 a
$ y4 t9 F0 g4 V6 U) D: @/ ^
) c! H, m8 ^9 U4 CTasks任务、Variables变量、Templates模板、Handlers处理器、Roles角色; h0 e! ?+ G8 d( D0 Z) P! L( w
% K) {1 L3 q- o Q, T! `9 U6 Z# G) t; Y' I. _) j4 {1 ~
(2)playbooks中定义任务:
7 M) k0 |1 m; ~9 c. D3 N
6 {3 t$ w0 ]" _" T% I0 h- name: task description 注释描述信息
. C6 S, b% ]9 Emodule_name: module_args 声明模块:定义ansible模块参数. ]( g. J/ } K0 H" G3 D, D
& Q! ?) m/ }) x9 V7 v' i

5 Z- `+ \8 ^/ Q( X# ?* w( A, X3 _; b8 L/ j- D4 d" H
0 B' V8 p+ h; h) F(3)ansible-playbook执行命令:
& k) F9 d! b) Q% f X6 g' {# }% v$ ~8 f) W: m5 w7 ~+ s
ansible-playbook <filename.yml> ... [options]* Z! c. p2 F) e3 w8 m7 B: C! u+ T
# f! [; o( {9 F; H+ K
* g5 E: z# m$ a, r$ m
7 W; e, X% p& J5 p4.playbook--- 变量: r6 ]: ]1 z' S
e+ O7 ]* C! \/ k+ |- @(1)变量命名:字母、数字和下划线组成,仅能以字母开头;) \+ F! U5 i1 s! r% U
+ h6 N4 H8 K# f; v$ ]$ H- i8 b& Z) C) m; }
(2)变量种类:, U ?, `* l9 t* K% D5 N
1 \/ h. @( j7 s$ U. E8 f2 S! K
2 I% s' L1 d$ R$ \: w E( C
1)facts:由远程主机发回的主机特有的属性信息,这些信息被保存在ansible变量中;无须声明,可直接调用;
5 b) x2 W8 c: N1 z4 g( e# X
) E( Q: R4 @& ~2 M( T+ G0 W) A5 S5 v# {* Z4 I' M/ j
2)自定义变量:
7 g/ v. Z: b4 O8 f通过命令行传递:ansible-playbook test.yml --extra-vars "host=www user=test"
& ~4 ^6 z" L Y
1 }6 I2 ~( b- D) B0 ^通过roles传递
5 q& V# R. z( M1 y6 c/ F b) x4 H& [( }+ D9 V) }
% @" f4 j1 j1 k: h8 }3)主机变量:定义在inventory中的主机之后的变量;直接传递给单个主机的变量
4 ]: q/ Q) ~% u- u实例:! h& y) v8 D; ]( o3 Y$ P
, _4 ~' }- r- R" z
+ q ~' |: d+ Q/ ? |
|