ansible 变更内网服务器配置

it2022-05-05  176

ansible 变更内网服务器配置

https://serversforhackers.com/tag/ansiblehttp://docs.ansible.com/ansible/developing_api.htmlhttps://github.com/linuxdynasty/ld-ansible-modules/blob/master/test/cloud/amazon/test_kinesis_stream.py

ansible.cfg

[defaults] forks = 20 transport = ssh host_key_checking = False [ssh_connection] ssh_args = -F /data/ansible/ssh_config pipelining = true

change_link.yaml

--- - hosts: proxy remote_user: ansible become: yes become_user: root become_method: sudo vars: proxy_host: '58.215.39.12' tasks: - name: update /etc/hosts template: src=templates/hosts.j2 dest=/etc/hosts owner=root group=root mode=0644 notify: restart dnsmasq handlers: - name: restart dnsmasq service: name=dnsmasq state=restarted

templates/hosts.j2

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 {{ proxy_host }} proxy.live

ansible-playbook -i inventory change_link.yaml

PLAY *************************************************************************** TASK [setup] ******************************************************************* ok: [10.150.1.51] ok: [10.150.1.52] TASK [update /etc/hosts] ******************************************************* changed: [10.150.1.51] changed: [10.150.1.52] RUNNING HANDLER [restart dnsmasq] ********************************************** changed: [10.150.1.51] changed: [10.150.1.52] PLAY RECAP ********************************************************************* 10.150.1.51 : ok=3 changed=2 unreachable=0 failed=0 10.150.1.52 : ok=3 changed=2 unreachable=0 failed=0

demo

from collections import namedtuple from ansible.parsing.dataloader import DataLoader from ansible.vars import VariableManager from ansible.inventory import Inventory from ansible.playbook.play import Play from ansible.executor.task_queue_manager import TaskQueueManager Options = namedtuple('Options', ['connection', 'module_path', 'forks', 'become', 'become_method', 'become_user', 'check']) # initialize needed objects variable_manager = VariableManager() loader = DataLoader() options = Options(connection='local', module_path='/path/to/mymodules', forks=100, become=None, become_method=None, become_user=None, check=False) passwords = dict(vault_pass='secret') # create inventory and pass to var manager inventory = Inventory(loader=loader, variable_manager=variable_manager, host_list='localhost') variable_manager.set_inventory(inventory) # create play with tasks play_source = dict( name = "Ansible Play", hosts = 'localhost', gather_facts = 'no', tasks = [ dict(action=dict(module='shell', args='ls'), register='shell_out'), dict(action=dict(module='debug', args=dict(msg='{{shell_out.stdout}}'))) ] ) play = Play().load(play_source, variable_manager=variable_manager, loader=loader) # actually run it tqm = None try: tqm = TaskQueueManager( inventory=inventory, variable_manager=variable_manager, loader=loader, options=options, passwords=passwords, stdout_callback='default', ) result = tqm.run(play) finally: if tqm is not None: tqm.cleanup() posted on 2016-06-22 13:48 北京涛子 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liujitao79/p/ansible.html


最新回复(0)