ansible-js-bindings

1.0.0 • Public • Published

ansible-js-bindings

This library is a js bindings of ansible-playbook.

It provided two drop-in API of exec and execFile which are similiar to child_process.exec/child_process.execFile but will execute on remote nodes.

Prepare

git clone http://github.xsky.com/testing/ansible-js-bindings.git && cd ansible-js-bindings

Setup inventory

add nodes in inventory file

Run

Execute command

const path = require('path');
const Ansible = require('../src');

const ansible = new Ansible({
  inventoryPath: path.resolve(__dirname, 'assets/inventory'),
});

(async function() {
  try {
    let res;
    console.log('execute shell command');
    res = await ansible.exec(
      'echo "test ansible js bindings with execute inline shell"'
    );
    console.log('shell result:', res);
  } catch (error) {
    console.error(error);
  }
})();

Execute file

const path = require('path');
const Ansible = require('../src');

const ansible = new Ansible({
  inventoryPath: path.resolve(__dirname, 'assets/inventory'),
});

(async function() {
  try {
    let res;
    console.log('execute shell script');
    res = await ansible.execFile(path.resolve(__dirname, 'assets/example.sh'));
    console.log('shell result:', res);
    console.log('execute python script');
    res = await ansible.execFile(path.resolve(__dirname, 'assets/example.py'));
    console.log('python result:', res);
  } catch (error) {
    console.error(error);
  }
})();

Readme

Keywords

none

Package Sidebar

Install

npm i ansible-js-bindings

Weekly Downloads

1

Version

1.0.0

License

ISC

Unpacked Size

20.5 MB

Total Files

6

Last publish

Collaborators

  • yanzhen