易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 3243|回复: 3
收起左侧

ansible加上-i参数,使用文件执行命令

[复制链接]
发表于 2020-11-3 22:07:50 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 2 金钱 才能浏览
 楼主| 发表于 2020-11-3 22:13:12 | 显示全部楼层
cat hosts_pwd
" d9 V/ @' K7 Z5 N: P# 未分组机器,放在所有组前面6 ]& L; n9 Y  `; m
# 默认端口22,可省略3 V( g+ x5 o3 E4 V3 B$ O
# 方式1:主机 + 端口 + 密码7 d, \9 m4 e" j. j2 L/ Z
172.16.1.180   ansible_ssh_port=22 ansible_ssh_user=yun ansible_ssh_pass='123456'
0 \  P2 V6 X: K& C  u, L
. g" X" T$ G7 X# 方式2:主机 + 端口 + 密码
( o7 K& v& s" G, s[proxyservers]
2 p1 E) i8 |+ R( O  v172.16.1.18[1:2] ansible_ssh_port=22 ansible_ssh_user=yun ansible_ssh_pass='123456'2 V! \& |# |! Z. h7 f. m
4 A( g# ?* B4 y3 V5 s2 ?! ~/ n
# 方式3:主机 + 端口 + 密码8 g/ v" Z; o3 [5 T. y  u. H6 _
[webservers]1 }& B" V$ d0 ]7 |& W
172.16.1.18[3:5] ansible_ssh_port=22 ansible_ssh_user=yun
' @; F$ U: e4 N3 j[webservers:vars]
, g* h/ T+ m0 F" {, W: Qansible_ssh_pass='123456'

2 D% f1 Z9 A: N" E0 `- r/ O8 N4 l1 e" E8 u/ |
8 e' s  j$ k( @( Y

: ?; \8 E3 V/ ~2 y' f4 S
# Y9 N4 Y* V" x- V. \
sudo ansible 172.16.1.180 -m ping -i ./hosts_pwd  # 提权使用 root 用户执行
' N2 a4 ]3 t7 L% q172.16.1.180 | FAILED! => {3 x  s/ Q0 C; r$ R. ]$ C2 I2 [! j
    "msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host."1 I( y! S3 S! c0 `- ?' d/ W! [
}

" Z( M8 d2 R$ X6 @* D3 R0 u5 f# `2 d' H" d- @

- e/ e! {; v9 g# c大概提示信息:因为启用了主机密钥检查,而 sshpass 不支持这一点。请将此主机「172.16.1.180」的指纹添加到你本机的known_hosts文件中以管理此主机。
0 h; [5 W8 V5 R* f
$ A+ `2 u& n( T9 Q1 W

6 B  T% ^+ {% ~% m, Q跳过主机密钥检查,有两种方式:

方式1:修改 Linux 系统配置

vim /etc/ssh/ssh_config
' I9 z5 R; V6 T) B% V1 i* v% U#   AddressFamily any
# A2 x4 X. Z0 Q' j& \) {2 \#   ConnectTimeout 0  b: s" k( b* D2 Z
#   StrictHostKeyChecking ask   # 将该配置的注释打开,并改为  StrictHostKeyChecking no  这样针对所有用户都不会在进行 「主机密钥检查」了# T# K$ d& l* y. Z
#   IdentityFile ~/.ssh/identity
8 u  ]# b: F6 i, r  Q
! K. s( W; F2 |
6 h& ?" p0 J6 a- t$ ^  }+ d+ v; F/ d- `  t
- k1 l' P! J2 d; C
2 _( g1 T& w* h5 G- q
但是这个是 Linux 自带的配置,我们不能随意去更改。因此不建议如此操作。
: e% @4 R* I) ?6 C$ E' ~- {- K. `. d0 y3 t; E

: w, i" N2 I- N- O0 P( t' M方式2:修改 ansible 配置7 `, s7 r) L! {( ]3 ?+ V1 K

) p: Q3 _( v) Q' {  p. Q2 ?! Bvim /etc/ansible/ansible.cfg
5 m$ [' s% p( m3 K) b& e, E% W# uncomment this to disable SSH key host checking
/ A- F# A. @" bhost_key_checking = False    # 将该配置的注释去掉

2 D& J) G7 N4 C1 ?* A4 l; W" x2 T- @" a4 h& q
; w" @- r$ [  Y% ~: M1 n% ?1 o
改配置仅对 root 用户生效,其他普通用户是不生效的。这里使用该方法。
3 X" O  x6 G; k( d$ K2 k再次连接测试

$ ansible 172.16.1.180 -m ping -i ./hosts_pwd  # 普通用户还是不行$ e, d- u8 C. j! E! E0 q
172.16.1.180 | FAILED! => {
* Y* B; z: g7 d9 ]/ W    "msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host."+ t7 f8 g' I- A, q3 N$ H- L/ L; j
}  C# w' @: I9 `  \0 m& Q( H
$ sudo ansible 172.16.1.180 -m ping -i ./hosts_pwd  # 提权使用 root 用户执行
2 _' }4 v2 o! ~* K172.16.1.180 | SUCCESS => {! `  l2 f, w4 m* a8 T; W+ c
    "ansible_facts": {
  |) W* I7 d* V8 }5 ]        "discovered_interpreter_python": "/usr/bin/python"( T; G: r" i8 j, H% u; f0 J, m+ M/ N
    }, , i# ~  t8 Q  E7 p( N
    "changed": false,
3 R8 f3 P6 M0 D1 M    "ping": "pong"
* F% L2 g7 d- I2 p5 W}

 楼主| 发表于 2020-11-3 22:14:54 | 显示全部楼层
cat hosts_group
. m: H6 V! F8 `& L( k: h# 未分组机器,放在所有组前面, B7 P( ?) }- z4 M
# 默认端口22,可省略2 C) L% P+ }$ I# F; W% W
# 方式1、主机 + 端口 + 密钥& e( h8 ^4 _6 T- U; }
172.16.1.1802 v) \& s+ ~7 V$ d5 e3 u1 N# n7 i& N

4 z9 \4 ?6 i: A: q4 \1 J) I. Y6 ^# 方式一、主机组变量 + 主机 + 密码
( V' Y! J6 v4 ]) r" p8 Q7 e5 a- M[proxyservers]
' L' S- m3 w' f172.16.1.18[1:2] ansible_ssh_port=22 ansible_ssh_user=yun ansible_ssh_pass='123456'
* @4 g7 x* X1 w1 L' p+ f3 M* p$ t/ N7 b" G& O+ D% n
# 方式二、主机组变量 + 主机 + 密钥) S) i3 ~& z& F. Q4 O6 k
[webservers]4 g; `, D8 A$ M& d7 {
172.16.1.18[3:5]:22
- \& E9 q7 a6 [; w7 s% p0 }- A. Y' Y
# 定义多组,多组汇总整合
7 a9 e6 c) N9 @) \7 \  ^, j" J  _# website 组包括两个子组[proxyservers, webservers]7 x# ^( `* A" o& w# F. z% }6 O
[website:children]3 o* N  h9 u& H1 t
proxyservers
* T. d8 [0 [" K( ?* L( e2 v# Rwebservers
 楼主| 发表于 2020-11-3 22:15:24 | 显示全部楼层
$ sudo ansible proxyservers -m ping -i ./hosts_group   
, [' M8 W; z% E172.16.1.182 | SUCCESS => {
" }; z& H! ]! O0 b& H    "ansible_facts": {
# d3 t+ |5 K, f2 W3 w        "discovered_interpreter_python": "/usr/bin/python"2 D0 x5 x0 Z9 F6 S' E. R
    }, * _2 P; w/ W& I- _6 {$ F) ?
    "changed": false,
2 {  }) }: M. e/ i8 `, Q, z2 S& }    "ping": "pong"! ^1 u% i3 C1 t
}. G/ j4 S) w) R' Z$ d5 B
172.16.1.181 | SUCCESS => {
- e. g/ |$ k: b- e0 L    "ansible_facts": {
# Q$ i, M- o/ `2 q! i1 H( @% S6 [        "discovered_interpreter_python": "/usr/bin/python"  @9 d7 n& h* H, D5 E  y
    },
: I7 R2 h2 D0 k! p! y; o; `5 D    "changed": false, % n7 I( G4 l& r
    "ping": "pong"1 q* \+ Q; O! c6 q
}
. p; v0 v0 F0 G" J) d" }2 J; F
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 21:37 , Processed in 0.053759 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

快速回复 返回顶部 返回列表