下記の私のfabfile.pyコンテンツを見つけてください。 env.hostsのリストを変更して、自分で確認したいかもしれません。fabric.apiループでスタックが実行される
chk_ *メソッドへの直接呼び出しは実行されますが、意図しないホストに対しても実行されます。 chk_kafkaは、動物園のノードグループに対しても実行されます。
何か助けていただければ幸いです。私に耐えてくれてありがとう。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
auto ssh
"""
import os
from fabric.colors import *
from fabric.api import *
from fabric.context_managers import *
from fabric.contrib.console import confirm
env.user = 'centos'
env.password = 'centos'
env.hosts = [
'10.41.121.78',
'10.41.121.79',
'10.41.121.80',
'10.41.121.81',
'10.41.121.82',
'10.41.121.83',
'10.41.121.84',
'10.41.121.85'
]
clusters = env.hosts
env.hostnames = dict([h, 'gt-%d' % (i + 1)] for i, h in enumerate(clusters))
env.roledefs = {
'clusters' : clusters,
'kafka' : clusters[0:5],
'zookeeper' : clusters[5:8]
}
@task
def status(op=None):
if op=='zookeeper':
execute(chk_zk)
elif op == 'kafka':
execute(chk_kafka)
else:
execute(chk_all)
@roles('zookeeper')
def chk_zk():
run('jps')
@roles('kafka')
def chk_kafka():
run('jps')
@roles('clusters')
def chk_all():
run('jps')