ansible api經常使用模塊與參數

###ansibleAPI 經常使用模塊

用於讀取yaml,json格式的文件
from ansible.parsing.dataloader import DataLoader
#用於管理變量的類,包括主機,組,擴展等變量
from ansible.vars.manager import VariableManager
#用於建立和管理inventory,倒入inventory文件
from ansible.inventory.manager import InventoryManager
#ad-hoc 存儲着角色列表,任務,處理代碼塊
from ansible.playbook.play import Play
#ad-hoc ansible底層用到的任務隊列
from ansible.executor.task_queue_manager import TaskQueueManager
#回調基類,用來定義回調事件,好比返回失敗成功等信息
from ansible.plugins.callback import CallbackBase
#執行playbook
from ansible.executor.playbook_executor import PlaybookExecutor
#操做單個主機
from ansible.inventory import host
#操做單個主機組
from ansible.inventory import group


###InventoryManager #實例化須要兩個參數 "參數一爲讀取yml文件的信息,須要實例化 DataLoader" "參數二爲讀取從那個位置讀取資產配置文件,多個可逗號分割" intertory = InventoryManager(loader='',sources='') #以字典的方式打印出主機和主機組相關信息 intertory.get_group_dict() #獲取全部的主機 inventory.get_hosts() #添加主機到指定主機組 "參數一指定主機地址" "參數二指定主機端口" "參數三指定主機羣組,必須存在的羣組" inventory.add_host(host='1.1.1.1',port=2222,group='web_server') #獲取指定的主機對象 inventory.get_host(hostname='1.1.1.1')

###VariableManager #實例化須要兩個參數 "參數一爲讀取yml文件的信息,須要實例化 DataLoader" "參數二爲資產管理配置變量" variable = VariableManager(loader=loader,inventory=inventory) #獲取變量 variable.get_vars() # 查看指定主機的詳細變量信息 "傳入的host是inventory.get_host得到的主機對象" host = inventory.get_host(hostname='1.1.1.1') host_vars = variable.get_vars(host=host) #設置主機變量方法 "傳入的host是inventory.get_host得到的主機對象" host = inventory.get_host(hostname='1.1.1.1') variable.set_host_variable(host=host,varname='ansible_ssh_pass',value='12345') #添加擴展變量 "參數是一個字典多個逗號分割" variable.extra_vars={'devops':'best'}


##################
Runner參數:

host_list=C.DEFAULT_HOST_LIST, # ex: /etc/ansible/hosts, legacy usage #執行host清單,若是不指定文件,會讀取ansible.cfg文件的inventory = xx字段。
module_path=None, # ex: /usr/share/ansible#模塊路徑,好比:/usr/share/ansible ex==example。
module_name=C.DEFAULT_MODULE_NAME, # ex: copy#模塊的名字。
module_args=C.DEFAULT_MODULE_ARGS, # ex: "src=/tmp/a dest=/tmp/b"#模塊的參數。
forks=C.DEFAULT_FORKS, # parallelism level併發進程數。
timeout=C.DEFAULT_TIMEOUT, # SSH timeout#ssh 鏈接超時。
pattern=C.DEFAULT_PATTERN, # which hosts? ex: 'all', 'acme.example.org'#host清單裏,匹配的組 host清單。
remote_user=C.DEFAULT_REMOTE_USER, # ex: 'username'#遠程登陸用戶和執行用戶。
remote_pass=C.DEFAULT_REMOTE_PASS, # ex: 'password123' or None if using key#遠程登陸用戶密碼。
remote_port=None, # if SSH on different ports#ssh鏈接端口。
private_key_file=C.DEFAULT_PRIVATE_KEY_FILE, # if not using keys/passwords#私鑰位置,若是不是ssh 鏈接話。
background=0, # async poll every X seconds, else 0 for non-async#異步參數。
basedir=None, # directory of playbook, if applicable#playbook 路徑。
setup_cache=None, # used to share fact data w/ other tasks#蒐集遠程節點的信息。
vars_cache=None, # used to store variables about hosts#host清單變量。
transport=C.DEFAULT_TRANSPORT, # 'ssh', 'paramiko', 'local'#鏈接遠程主機的方式,是ssh仍是paramiko....
conditional='True', # run only if this fact expression evals to true #未知
callbacks=None, # used for output#用於結果輸出。
module_vars=None, # a playbooks internals thing##模塊變量。
play_vars=None, #
play_file_vars=None, #
role_vars=None, #
role_params=None, #
default_vars=None, #
extra_vars=None, # extra vars specified with he playbook(s)#其餘額外一些參數。
is_playbook=False, # running from playbook or not?
inventory=None, # reference to Inventory object
subset=None, # subset pattern
check=False, # don't make any changes, just try to probe for potential changes#測試play,看看對hostlist產生哪些變化。
diff=False, # whether to show diffs for template files that change
environment=None, # environment variables (as dict) to use inside the command
complex_args=None, # structured data in addition to module_args, must be a dict
error_on_undefined_vars=C.DEFAULT_UNDEFINED_VAR_BEHAVIOR, # ex. False
accelerate=False, # use accelerated connection
accelerate_ipv6=False, # accelerated connection w/ IPv6
accelerate_port=None, # port to use with accelerated connection
vault_pass=None,
run_hosts=None, # an optional list of pre-calculated hosts to run on
no_log=False, # option to enable/disable logging for a given task
run_once=False, # option to enable/disable host bypass loop for a given task
become=False, # whether to run privelege escalation or not
become_method=C.DEFAULT_BECOME_METHOD,
become_user=C.DEFAULT_BECOME_USER, # ex: 'root'
become_pass=C.DEFAULT_BECOME_PASS, # ex: 'password123' or None
become_exe=C.DEFAULT_BECOME_EXE, # ex: /usr/local/bin/sudo
):web

 
 

# used to lock multiprocess inputs and outputs at various levels
self.output_lockfile = OUTPUT_LOCKFILE
self.process_lockfile = PROCESS_LOCKFILEexpress

相關文章
相關標籤/搜索