1
rootit 2019-03-13 17:14:30 +08:00
这种事情 我感觉 shell 脚本更适合,更快能实现需求
|
2
saytesnake OP @rootit shell 脚本能实现多机器批量更改不同的 IP 嘛?会不会用到 sshpass 之类的?
|
3
dracher 2019-03-13 17:31:46 +08:00
|
4
scalaer 2019-03-13 17:59:12 +08:00 via Android
|
5
ik 2019-03-13 18:37:54 +08:00 via iPhone
咦 这种需求也能满足吗?
那么旧 ip 和新 ip 怎么对应呢? |
6
xcai 2019-03-13 20:27:54 +08:00 via Android
for 循环生成变量
|
7
saytesnake OP |
8
ik 2019-03-13 22:10:48 +08:00 via iPhone
#7 哦 这样…
|
9
ik 2019-03-13 22:11:23 +08:00 via iPhone
似乎还是会有如何对应的问题
|
10
h807892124 2019-03-13 23:30:41 +08:00 1
用 ansible 管理过一批服务器,网络很简单,都是在同一个 24 掩码的网段下,做过批量配置 hostname,用 ip 的最后一个数区分服务器,参考下面的命令。用 ansible 采集的服务器信息(设置用 gather_facts: yes 开启这功能)获取机器的 IP。
- hostname: name=node-{{ ansible_default_ipv4.address.split('.')[-1] }} 另一个场景和你这个差不多,用另一张网卡配置存储的网络,也是单独的一个 24 掩码网段,和原来的 IP 一一对应,还是用本机的 IP 信息设置了另一个网段的 IP。如 192.168.2.3 --> 10.0.1.3 |
11
hljjhb 2019-03-14 13:07:32 +08:00 1
是给每个 host 分配 list 中不同的元素?以下严格依赖顺序
--- - hosts: test vars: ip_pool: - 1.1.1.1 - 2.2.2.2 - 3.3.3.3 tasks: - name: dispatch ip shell: "echo {{ ip_pool[play_hosts.index(inventory_hostname)] }}" |
12
saytesnake OP |
13
rootit 2019-03-16 19:29:13 +08:00
@saytesnake shell 直接 ssh 过去然后执行命令即可,for 循环 如果用密码 先写好 ip 和密码对应关系,如果密钥直接 ssh 即可 如果第一次登录需要 expect 即可 完全可以实现
|