Kolla-ansible

工作中学习的kolla-ansible用法

1. 添加module

ansible/library/test.py,用法就在EXAMPLES中

#!/usr/bin/env python

DOCUMENTATION = '''
---
module: test
short_description: This is a test module
description:
     - This is a test module
options:
  a:
    description:
      - a
    required: True
    type: str
  b:
    description:
      - b
    default: True
    type: bool
  
author: test
'''

EXAMPLES = '''
Distribute a file from single to many hosts:

- hosts: test
  tasks:
    - name: Test module
      test:
        a: 'aaa'
        b: True
'''


def main():
    argument_spec = dict(
        b=dict(default=True, type='bool'),
        a=dict(type='str')
    )
    module = AnsibleModule(argument_spec)

    b = module.params.get('b')
	if b:
		module.exit_json(msg=module.params.get('a')) 
	module.fail_json(msg='error')

# import module snippets
from ansible.module_utils.basic import *  # noqa
if __name__ == '__main__':
    main()

2. module中执行命令

rc表示命令执行的数字结果,err表示错误内容,out表示正确的输出结果

(rc, out, err) = module.run_command("cat /etc/hosts")
if rc != 0:
	module.fail_json(msg=str(err))
module.exit_json(msg=out)

3. kolla-ansible创建新命令

ansible/test.yml
hosts表示执行的节点

---
- name:Test command
  hosts: localhost
  roles:
    - test

创建test role
ansible/roles/test/
defaults/mian.yml为定义的一些默认值
tasks/mian.yml为kolla-ansible执行的任务

test
|- defaults
|	|- main.yml
|- tasks
|	|- main.yml

defaults/mian.yml

a: "aaa"

tasks/mian.yml

- name: Test command
  debug:
    var: "{{ a }}"

tools/kolla-ansible中添加对应的值

Commands:
	......
	test         test command
	......
EOF
}

function bash_completion {
cat <<EOF
......
test
......
EOF

(test)
        ACTION="Test command"
        PLAYBOOK="${BASEDIR}/ansible/test.yml"
        ;;
}

kolla-ansible test执行即可

4. 发送文件到其他节点

可以将想共享的值放文件里面,然后发送到其他节点,其他节点直接读取文件即可,实现跨节点变量访问

- name: Send file to other node
  hosts: all
  become: true
  copy:
    content: "test"
    dest: "/tmp/{{ item }}"
    mode: 0644
  delegate_to: "{{ item }}"
  with_items: "{{ groups['control'] }}"
  when:
    - inventory_hostname == 'localhost'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值