1.0.0 • Published 6 years ago

ansible-js-bindings v1.0.0

Weekly downloads
2
License
ISC
Repository
-
Last release
6 years ago

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);
  }
})();