mirror of
https://github.com/mmumshad/ansible-playable.git
synced 2025-03-09 23:38:54 +00:00
Move commands and paths to config file
This commit is contained in:
parent
7a503bcf95
commit
fc7aafa5f6
3 changed files with 94 additions and 64 deletions
|
@ -40,7 +40,6 @@ exports.getModules = function(dataCallback, successCallback,errorCallback, ansib
|
||||||
var command = all_commands.ansible.doc;
|
var command = all_commands.ansible.doc;
|
||||||
|
|
||||||
if(ansibleEngine.customModules){
|
if(ansibleEngine.customModules){
|
||||||
//command = 'export ANSIBLE_LIBRARY="' + ansibleEngine.customModules + '"; ' + command;
|
|
||||||
command = util.format(all_commands.ansible.export_ansible_library, ansibleEngine.customModules) + command;
|
command = util.format(all_commands.ansible.export_ansible_library, ansibleEngine.customModules) + command;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,6 +104,7 @@ exports.getAnsibleCommand = function(project_folder, playbook_name, inventory_fi
|
||||||
command = 'export ANSIBLE_LIBRARY="' + ansibleEngine.customModules + '"; ' + command;
|
command = 'export ANSIBLE_LIBRARY="' + ansibleEngine.customModules + '"; ' + command;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add options to command as necessary
|
||||||
if(tags_joined)
|
if(tags_joined)
|
||||||
command += ' --tags "' + tags_joined + '"';
|
command += ' --tags "' + tags_joined + '"';
|
||||||
|
|
||||||
|
@ -190,9 +190,9 @@ exports.getVars = function(project_folder, inventory_file_name, host_name, dataC
|
||||||
|
|
||||||
var fs = require('filendir');
|
var fs = require('filendir');
|
||||||
|
|
||||||
var AnsibleAPILocation = '/tmp/AnsibleAPI.py';
|
var AnsibleAPILocation = config.paths.ansible_custom_api_remote;
|
||||||
|
|
||||||
var command= 'cd "' + project_folder + '"; python "' + AnsibleAPILocation + '" host_vars --inventory_file="' + inventory_file_name + '"';
|
var command = util.format(all_commands.ansible.get_vars, project_folder, AnsibleAPILocation, inventory_file_name);
|
||||||
|
|
||||||
if(host_name){
|
if(host_name){
|
||||||
command += ' --host_name ' + host_name;
|
command += ' --host_name ' + host_name;
|
||||||
|
@ -204,7 +204,8 @@ exports.getVars = function(project_folder, inventory_file_name, host_name, dataC
|
||||||
|
|
||||||
console.log("Command= " + command);
|
console.log("Command= " + command);
|
||||||
|
|
||||||
scp2_exec.copyFileToScriptEngine('./helpers/AnsibleAPI.py',AnsibleAPILocation,ansibleEngine,function(){
|
// Copy helper script to Ansible Engine
|
||||||
|
scp2_exec.copyFileToScriptEngine(config.paths.ansible_custom_api_local,AnsibleAPILocation,ansibleEngine,function(){
|
||||||
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
||||||
}, errorCallback);
|
}, errorCallback);
|
||||||
|
|
||||||
|
@ -221,11 +222,12 @@ exports.getVars = function(project_folder, inventory_file_name, host_name, dataC
|
||||||
*/
|
*/
|
||||||
exports.getRolesVars = function(project_folder, role_name, dataCallback, successCallback,errorCallback,ansibleEngine){
|
exports.getRolesVars = function(project_folder, role_name, dataCallback, successCallback,errorCallback,ansibleEngine){
|
||||||
|
|
||||||
var AnsibleAPILocation = '/tmp/AnsibleAPI.py';
|
var AnsibleAPILocation = + config.paths.ansible_custom_api_remote;
|
||||||
|
|
||||||
var project_roles_folder = project_folder + '/roles';
|
var project_roles_folder = project_folder + config.paths.ansible_project_roles;
|
||||||
var playbook_path = role_name + '/tests/test.yml';
|
var playbook_path = role_name + '/tests/test.yml';
|
||||||
var command= 'cd "' + project_roles_folder + '"; python "' + AnsibleAPILocation + '" role_vars --playbook_path="' + playbook_path + '" ';
|
|
||||||
|
var command = util.format(all_commands.ansible.get_role_vars,project_roles_folder, AnsibleAPILocation, playbook_path);
|
||||||
|
|
||||||
if(ansibleEngine.customModules){
|
if(ansibleEngine.customModules){
|
||||||
command = 'export ANSIBLE_LIBRARY="' + ansibleEngine.customModules + '"; ' + command;
|
command = 'export ANSIBLE_LIBRARY="' + ansibleEngine.customModules + '"; ' + command;
|
||||||
|
@ -233,7 +235,7 @@ exports.getRolesVars = function(project_folder, role_name, dataCallback, success
|
||||||
|
|
||||||
console.log("Command= " + command);
|
console.log("Command= " + command);
|
||||||
|
|
||||||
scp2_exec.copyFileToScriptEngine('./helpers/AnsibleAPI.py',AnsibleAPILocation,ansibleEngine,function(){
|
scp2_exec.copyFileToScriptEngine(config.paths.ansible_custom_api_local,AnsibleAPILocation,ansibleEngine,function(){
|
||||||
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
||||||
}, errorCallback);
|
}, errorCallback);
|
||||||
|
|
||||||
|
@ -269,7 +271,7 @@ exports.writeFile = function(file_path,file_contents, successCallback,errorCallb
|
||||||
*/
|
*/
|
||||||
exports.deleteFile = function(file_path,successCallback,errorCallback,ansibleEngine){
|
exports.deleteFile = function(file_path,successCallback,errorCallback,ansibleEngine){
|
||||||
|
|
||||||
var command = 'rm -rf "' + file_path + '"';
|
var command = util.format(all_commands.general.remove_file, file_path);
|
||||||
|
|
||||||
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine)
|
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine)
|
||||||
|
|
||||||
|
@ -285,7 +287,7 @@ exports.deleteFile = function(file_path,successCallback,errorCallback,ansibleEng
|
||||||
*/
|
*/
|
||||||
exports.readFile = function(file_path, dataCallback, successCallback,errorCallback,ansibleEngine){
|
exports.readFile = function(file_path, dataCallback, successCallback,errorCallback,ansibleEngine){
|
||||||
|
|
||||||
var command = 'cat "' + file_path + '"';
|
var command = util.format(all_commands.general.read_file, file_path);
|
||||||
|
|
||||||
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine)
|
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine)
|
||||||
|
|
||||||
|
@ -328,7 +330,7 @@ exports.writePlaybook = function(project_folder,playbook_file_name,playbook_file
|
||||||
exports.readPlaybook = function(project_folder,playbook_file_name, dataCallback, successCallback,errorCallback,ansibleEngine){
|
exports.readPlaybook = function(project_folder,playbook_file_name, dataCallback, successCallback,errorCallback,ansibleEngine){
|
||||||
|
|
||||||
var playbook_file_path = project_folder + '/' + playbook_file_name;
|
var playbook_file_path = project_folder + '/' + playbook_file_name;
|
||||||
var command = 'cat "' + playbook_file_path + '"';
|
var command = util.format(all_commands.general.read_file, playbook_file_path);
|
||||||
|
|
||||||
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine)
|
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine)
|
||||||
|
|
||||||
|
@ -346,7 +348,7 @@ exports.readPlaybook = function(project_folder,playbook_file_name, dataCallback,
|
||||||
exports.deletePlaybook = function(project_folder,playbook_file_name, dataCallback, successCallback,errorCallback,ansibleEngine){
|
exports.deletePlaybook = function(project_folder,playbook_file_name, dataCallback, successCallback,errorCallback,ansibleEngine){
|
||||||
|
|
||||||
var playbook_file_path = project_folder + '/' + playbook_file_name;
|
var playbook_file_path = project_folder + '/' + playbook_file_name;
|
||||||
var command = 'rm -f "' + playbook_file_path + '"';
|
var command = util.format(all_commands.general.remove_file, playbook_file_path);
|
||||||
|
|
||||||
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine)
|
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine)
|
||||||
|
|
||||||
|
@ -354,6 +356,7 @@ exports.deletePlaybook = function(project_folder,playbook_file_name, dataCallbac
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Playbook List
|
* Get Playbook List
|
||||||
|
* List all files with .yml extension in the folder and return list of files as array
|
||||||
* @param project_folder
|
* @param project_folder
|
||||||
* @param successCallback
|
* @param successCallback
|
||||||
* @param errorCallback
|
* @param errorCallback
|
||||||
|
@ -362,7 +365,7 @@ exports.deletePlaybook = function(project_folder,playbook_file_name, dataCallbac
|
||||||
exports.getPlaybookList = function(project_folder, successCallback, errorCallback, ansibleEngine){
|
exports.getPlaybookList = function(project_folder, successCallback, errorCallback, ansibleEngine){
|
||||||
|
|
||||||
var playbook_file_path = project_folder + '/';
|
var playbook_file_path = project_folder + '/';
|
||||||
var command = 'ls "' + playbook_file_path + '" | grep .yml';
|
var command = util.format(all_commands.general.get_playbook_list, playbook_file_path);
|
||||||
var ansiblePlaybookListResults = "";
|
var ansiblePlaybookListResults = "";
|
||||||
|
|
||||||
ssh2_exec.executeCommand(command,
|
ssh2_exec.executeCommand(command,
|
||||||
|
@ -374,9 +377,7 @@ exports.getPlaybookList = function(project_folder, successCallback, errorCallbac
|
||||||
files = ansiblePlaybookListResults.trim().split('\n');
|
files = ansiblePlaybookListResults.trim().split('\n');
|
||||||
successCallback(files);
|
successCallback(files);
|
||||||
},
|
},
|
||||||
function(data){
|
errorCallback,
|
||||||
errorCallback(data)
|
|
||||||
},
|
|
||||||
ansibleEngine
|
ansibleEngine
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -391,22 +392,20 @@ exports.getPlaybookList = function(project_folder, successCallback, errorCallbac
|
||||||
*/
|
*/
|
||||||
exports.getRolesList = function(project_folder, successCallback, errorCallback, ansibleEngine){
|
exports.getRolesList = function(project_folder, successCallback, errorCallback, ansibleEngine){
|
||||||
|
|
||||||
var playbook_file_path = project_folder + '/roles';
|
var playbook_file_path = project_folder + config.paths.ansible_project_roles;
|
||||||
var command = 'ls "' + playbook_file_path + '"';
|
var command = util.format(all_commands.general.list_folder_contents, playbook_file_path);
|
||||||
var ansiblePlaybookListResults = "";
|
var ansibleRolesListResults = "";
|
||||||
|
|
||||||
ssh2_exec.executeCommand(command,
|
ssh2_exec.executeCommand(command,
|
||||||
null,
|
null,
|
||||||
function(data){
|
function(data){
|
||||||
ansiblePlaybookListResults=data;
|
ansibleRolesListResults=data;
|
||||||
var roles = [];
|
var roles = [];
|
||||||
if(ansiblePlaybookListResults)
|
if(ansibleRolesListResults)
|
||||||
roles = ansiblePlaybookListResults.trim().split('\n');
|
roles = ansibleRolesListResults.trim().split('\n');
|
||||||
successCallback(roles);
|
successCallback(roles);
|
||||||
},
|
},
|
||||||
function(data){
|
errorCallback,
|
||||||
errorCallback(data)
|
|
||||||
},
|
|
||||||
ansibleEngine
|
ansibleEngine
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -422,11 +421,11 @@ exports.getRolesList = function(project_folder, successCallback, errorCallback,
|
||||||
*/
|
*/
|
||||||
exports.createProjectFolder = function(project_folder, successCallback, errorCallback, ansibleEngine){
|
exports.createProjectFolder = function(project_folder, successCallback, errorCallback, ansibleEngine){
|
||||||
|
|
||||||
var librarypath = project_folder + '/library';
|
var librarypath = project_folder + config.paths.ansible_project_library;
|
||||||
var rolespath = project_folder + '/roles';
|
var rolespath = project_folder + config.paths.ansible_project_roles;
|
||||||
var command = 'mkdir -p "' + librarypath + '"; mkdir -p "' + rolespath + '"';
|
var command = util.format(all_commands.ansible.create_ansible_project_folder, librarypath, rolespath);
|
||||||
|
|
||||||
var check_dir_command = '[ ! -d ' + project_folder + ' ]';
|
var check_dir_command = util.format(all_commands.general.check_dir_not_exists, project_folder);
|
||||||
|
|
||||||
ssh2_exec.executeCommand(check_dir_command,null,function(data){
|
ssh2_exec.executeCommand(check_dir_command,null,function(data){
|
||||||
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
||||||
|
@ -451,11 +450,11 @@ exports.deleteProjectFolder = function(project){
|
||||||
|
|
||||||
var ansibleEngine = project.ansibleEngine;
|
var ansibleEngine = project.ansibleEngine;
|
||||||
var project_folder = ansibleEngine.projectFolder;
|
var project_folder = ansibleEngine.projectFolder;
|
||||||
var archive_folder = config.paths.ansible_projects + '/archive';
|
var archive_folder = config.paths.ansible_projects + config.paths.ansible_projects_arhive;
|
||||||
|
|
||||||
var command = util.format('mkdir -p %s && tar -cvf %s/%s.tar %s && rm -rf %s', archive_folder, archive_folder, ansibleEngine.projectFolderName, project_folder, project_folder);
|
var command = util.format(all_commands.general.archive_folder, archive_folder, archive_folder, ansibleEngine.projectFolderName, project_folder, project_folder);
|
||||||
|
|
||||||
var check_dir_command = '[ -d ' + project_folder + ' ]';
|
var check_dir_command = util.format(all_commands.general.check_dir_exists, project_folder);
|
||||||
|
|
||||||
ssh2_exec.executeCommand(check_dir_command,null,(data) => {
|
ssh2_exec.executeCommand(check_dir_command,null,(data) => {
|
||||||
ssh2_exec.executeCommand(command,null,
|
ssh2_exec.executeCommand(command,null,
|
||||||
|
@ -482,12 +481,9 @@ exports.deleteProjectFolder = function(project){
|
||||||
*/
|
*/
|
||||||
exports.searchRolesGalaxy = function(searchText, successCallback, errorCallback, ansibleEngine){
|
exports.searchRolesGalaxy = function(searchText, successCallback, errorCallback, ansibleEngine){
|
||||||
|
|
||||||
var command = 'ansible-galaxy search ' + searchText;
|
var command = util.format(all_commands.ansible.ansible_galaxy_search, searchText);
|
||||||
console.log('Command = ' + command);
|
|
||||||
ssh2_exec.executeCommand(command,null,function(response){
|
ssh2_exec.executeCommand(command,null,function(response){
|
||||||
|
|
||||||
console.log("Galaxy Response =" + response);
|
|
||||||
|
|
||||||
if(response.indexOf('No roles match your search.') > -1){
|
if(response.indexOf('No roles match your search.') > -1){
|
||||||
return errorCallback('No roles match your search.')
|
return errorCallback('No roles match your search.')
|
||||||
}else{
|
}else{
|
||||||
|
@ -521,18 +517,13 @@ exports.searchRolesGalaxy = function(searchText, successCallback, errorCallback,
|
||||||
* @param searchText
|
* @param searchText
|
||||||
* @param successCallback
|
* @param successCallback
|
||||||
* @param errorCallback
|
* @param errorCallback
|
||||||
* @param ansibleEngine
|
|
||||||
*/
|
*/
|
||||||
exports.searchRolesGithub = function(searchText, successCallback, errorCallback, ansibleEngine){
|
exports.searchRolesGithub = function(searchText, successCallback, errorCallback){
|
||||||
|
|
||||||
var https = require('https');
|
var https = require('https');
|
||||||
var options = {
|
var options = all_commands.ansible.github_search_api_options;
|
||||||
host: 'api.github.com',
|
|
||||||
path: '/search/repositories?q=ansible-role-' + searchText,
|
|
||||||
headers: {'user-agent': 'node.js'}
|
|
||||||
};
|
|
||||||
|
|
||||||
console.log("path " + '/search/repositories?q=ansible-role' + searchText)
|
options.path = util.format(options.path, searchText);
|
||||||
|
|
||||||
var req = https.get(options, function(res) {
|
var req = https.get(options, function(res) {
|
||||||
console.log('STATUS: ' + res.statusCode);
|
console.log('STATUS: ' + res.statusCode);
|
||||||
|
@ -562,7 +553,6 @@ exports.searchRolesGithub = function(searchText, successCallback, errorCallback,
|
||||||
|
|
||||||
successCallback(results);
|
successCallback(results);
|
||||||
|
|
||||||
// ...and/or process the entire body here.
|
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -584,9 +574,9 @@ exports.searchRolesGithub = function(searchText, successCallback, errorCallback,
|
||||||
exports.createRole = function(roleName, successCallback, errorCallback, ansibleEngine){
|
exports.createRole = function(roleName, successCallback, errorCallback, ansibleEngine){
|
||||||
|
|
||||||
var projectFolder = ansibleEngine.projectFolder;
|
var projectFolder = ansibleEngine.projectFolder;
|
||||||
var command = 'cd "' + projectFolder + '/roles"; ansible-galaxy init ' + roleName;
|
var command = util.format(all_commands.ansible.create_role, projectFolder, roleName);
|
||||||
|
|
||||||
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -601,7 +591,7 @@ exports.createRole = function(roleName, successCallback, errorCallback, ansibleE
|
||||||
*/
|
*/
|
||||||
exports.copyRole = function(roleName, successCallback, errorCallback, ansibleEngine, selectedRoleName){
|
exports.copyRole = function(roleName, successCallback, errorCallback, ansibleEngine, selectedRoleName){
|
||||||
var projectFolder = ansibleEngine.projectFolder;
|
var projectFolder = ansibleEngine.projectFolder;
|
||||||
var command = 'cd "' + projectFolder + '/roles"; cp -r "' + selectedRoleName + '" "' + roleName + '"; rm -rf "' + roleName + '/.git"';
|
var command = util.format(all_commands.ansible.copy_role, projectFolder, selectedRoleName, roleName, roleName);
|
||||||
|
|
||||||
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
||||||
};
|
};
|
||||||
|
@ -617,7 +607,7 @@ exports.copyRole = function(roleName, successCallback, errorCallback, ansibleEng
|
||||||
exports.deleteRole = function(roleName, successCallback, errorCallback, ansibleEngine){
|
exports.deleteRole = function(roleName, successCallback, errorCallback, ansibleEngine){
|
||||||
|
|
||||||
var projectFolder = ansibleEngine.projectFolder;
|
var projectFolder = ansibleEngine.projectFolder;
|
||||||
var command = 'rm -rf "' + projectFolder + '/roles/' + roleName + '"';
|
var command = util.format(all_commands.ansible.delete_role, projectFolder, roleName);
|
||||||
|
|
||||||
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
||||||
|
|
||||||
|
@ -636,13 +626,13 @@ exports.deleteRole = function(roleName, successCallback, errorCallback, ansibleE
|
||||||
exports.importRole = function(roleType, roleNameUri, successCallback, errorCallback, ansibleEngine){
|
exports.importRole = function(roleType, roleNameUri, successCallback, errorCallback, ansibleEngine){
|
||||||
|
|
||||||
var projectFolder = ansibleEngine.projectFolder;
|
var projectFolder = ansibleEngine.projectFolder;
|
||||||
var rolesFolder = projectFolder + '/roles';
|
var rolesFolder = projectFolder + config.paths.ansible_project_roles;
|
||||||
var command = 'cd "' + rolesFolder + '";';
|
var command = 'cd "' + rolesFolder + '";';
|
||||||
|
|
||||||
if(roleType === 'gitrepo'){
|
if(roleType === 'gitrepo'){
|
||||||
command += 'git clone ' + roleNameUri;
|
command += util.format(all_commands.ansible.git_clone_repo, roleNameUri);
|
||||||
}else if(roleType === 'galaxy'){
|
}else if(roleType === 'galaxy'){
|
||||||
command += 'ansible-galaxy install ' + roleNameUri + ' -p ' + rolesFolder;
|
command += util.format(all_commands.ansible.ansible_galaxy_install, roleNameUri, rolesFolder);
|
||||||
}else{
|
}else{
|
||||||
return errorCallback('Invalid Type - allowed = gitrepo,galaxy ; given = ' + roleType);
|
return errorCallback('Invalid Type - allowed = gitrepo,galaxy ; given = ' + roleType);
|
||||||
}
|
}
|
||||||
|
@ -660,9 +650,10 @@ exports.importRole = function(roleType, roleNameUri, successCallback, errorCallb
|
||||||
exports.getRoleFiles = function(roleName, successCallback, errorCallback, ansibleEngine){
|
exports.getRoleFiles = function(roleName, successCallback, errorCallback, ansibleEngine){
|
||||||
|
|
||||||
var projectFolder = ansibleEngine.projectFolder;
|
var projectFolder = ansibleEngine.projectFolder;
|
||||||
var command = 'cd "' + projectFolder + '/roles/' + roleName + '"; python /tmp/dir_tree.py';
|
var command = util.format(all_commands.general.list_roles_files_json, projectFolder, roleName);
|
||||||
|
|
||||||
scp2_exec.copyFileToScriptEngine('./helpers/dir_tree.py','/tmp/dir_tree.py',ansibleEngine,function(){
|
// Copy temporary script and execute
|
||||||
|
scp2_exec.copyFileToScriptEngine(config.paths.ansible_dir_tree_local,config.paths.ansible_dir_tree_remote,ansibleEngine,function(){
|
||||||
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
||||||
}, errorCallback);
|
}, errorCallback);
|
||||||
|
|
||||||
|
@ -677,9 +668,10 @@ exports.getRoleFiles = function(roleName, successCallback, errorCallback, ansibl
|
||||||
exports.getProjectFiles = function(successCallback, errorCallback, ansibleEngine){
|
exports.getProjectFiles = function(successCallback, errorCallback, ansibleEngine){
|
||||||
|
|
||||||
var projectFolder = ansibleEngine.projectFolder;
|
var projectFolder = ansibleEngine.projectFolder;
|
||||||
var command = 'cd "' + projectFolder + '"; python /tmp/dir_tree.py';
|
var command = util.format(all_commands.general.list_files_json, projectFolder);
|
||||||
|
|
||||||
scp2_exec.copyFileToScriptEngine('./helpers/dir_tree.py','/tmp/dir_tree.py',ansibleEngine,function(response){
|
// Copy temporary script and execute
|
||||||
|
scp2_exec.copyFileToScriptEngine(config.paths.ansible_dir_tree_local,config.paths.ansible_dir_tree_remote,ansibleEngine,function(response){
|
||||||
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
||||||
}, errorCallback);
|
}, errorCallback);
|
||||||
|
|
||||||
|
@ -696,7 +688,7 @@ exports.getProjectFiles = function(successCallback, errorCallback, ansibleEngine
|
||||||
*/
|
*/
|
||||||
exports.getTagList = function(project_folder, playbook_name, inventory_file_name, successCallback, errorCallback, ansibleEngine){
|
exports.getTagList = function(project_folder, playbook_name, inventory_file_name, successCallback, errorCallback, ansibleEngine){
|
||||||
|
|
||||||
var command = 'cd "' + project_folder + '"; python2.7 /tmp/list_tasks_json.py "' + playbook_name + '" -i "' + inventory_file_name + '" --list-hosts --list-tasks-json ';
|
var command = util.format(all_commands.ansible.list_tags, project_folder, playbook_name, inventory_file_name);
|
||||||
|
|
||||||
if(ansibleEngine.customModules){
|
if(ansibleEngine.customModules){
|
||||||
command = 'export ANSIBLE_LIBRARY="' + ansibleEngine.customModules + '"; ' + command;
|
command = 'export ANSIBLE_LIBRARY="' + ansibleEngine.customModules + '"; ' + command;
|
||||||
|
@ -704,8 +696,8 @@ exports.getTagList = function(project_folder, playbook_name, inventory_file_name
|
||||||
|
|
||||||
console.log("Command = " + command);
|
console.log("Command = " + command);
|
||||||
|
|
||||||
scp2_exec.copyFileToScriptEngine('./helpers/list_tasks_json.py','/tmp/list_tasks_json.py',ansibleEngine,function(response){
|
// Copy temporary script and execute
|
||||||
console.log("Executing sshc command = " + command);
|
scp2_exec.copyFileToScriptEngine(config.paths.ansible_list_tasks_json_local,config.paths.ansible_list_tasks_json_remote,ansibleEngine,function(response){
|
||||||
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
||||||
}, errorCallback);
|
}, errorCallback);
|
||||||
|
|
||||||
|
@ -723,7 +715,7 @@ exports.getTagList = function(project_folder, playbook_name, inventory_file_name
|
||||||
exports.createFile = function(fileAbsolutePath, successCallback, errorCallback, ansibleEngine){
|
exports.createFile = function(fileAbsolutePath, successCallback, errorCallback, ansibleEngine){
|
||||||
|
|
||||||
var projectFolder = ansibleEngine.projectFolder;
|
var projectFolder = ansibleEngine.projectFolder;
|
||||||
var command = 'touch "' + fileAbsolutePath + '"';
|
var command = util.format(all_commands.general.create_file, fileAbsolutePath);
|
||||||
|
|
||||||
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
ssh2_exec.executeCommand(command,null,successCallback,errorCallback,ansibleEngine);
|
||||||
|
|
||||||
|
@ -739,7 +731,7 @@ exports.createFile = function(fileAbsolutePath, successCallback, errorCallback,
|
||||||
exports.getInventoryList = function(project_folder, successCallback, errorCallback, ansibleEngine){
|
exports.getInventoryList = function(project_folder, successCallback, errorCallback, ansibleEngine){
|
||||||
|
|
||||||
var playbook_file_path = project_folder + '/';
|
var playbook_file_path = project_folder + '/';
|
||||||
var command = 'cd "' + playbook_file_path + '" ; ls --ignore="*.*" -p | grep -v /';
|
var command = util.format(all_commands.ansible.get_inventory_list, playbook_file_path);
|
||||||
var ansiblePlaybookListResults = "";
|
var ansiblePlaybookListResults = "";
|
||||||
|
|
||||||
ssh2_exec.executeCommand(command,
|
ssh2_exec.executeCommand(command,
|
||||||
|
@ -770,7 +762,7 @@ exports.getInventoryList = function(project_folder, successCallback, errorCallba
|
||||||
exports.readInventoryFile = function(project_folder, inventoryName, successCallback, errorCallback, ansibleEngine){
|
exports.readInventoryFile = function(project_folder, inventoryName, successCallback, errorCallback, ansibleEngine){
|
||||||
|
|
||||||
var playbook_file_path = project_folder + '/';
|
var playbook_file_path = project_folder + '/';
|
||||||
var command = 'cat "' + playbook_file_path + inventoryName + '"';
|
var command = util.format(all_commands.general.read_file, playbook_file_path + inventoryName);
|
||||||
|
|
||||||
ssh2_exec.executeCommand(command,
|
ssh2_exec.executeCommand(command,
|
||||||
null,
|
null,
|
||||||
|
|
|
@ -4,6 +4,17 @@
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
||||||
|
general:{
|
||||||
|
create_file: 'touch "%s"',
|
||||||
|
read_file: 'cat "%s"',
|
||||||
|
remove_file: 'rm -rf "%s"',
|
||||||
|
list_folder_contents: 'ls "%s"',
|
||||||
|
check_dir_exists: '[ -d "%s" ]',
|
||||||
|
check_dir_not_exists: '[ ! -d "%s" ]',
|
||||||
|
archive_folder: 'mkdir -p %s && tar -cvf %s/%s.tar %s && rm -rf %s',
|
||||||
|
list_roles_files_json: 'cd "%s/roles/%s"; python /tmp/dir_tree.py',
|
||||||
|
list_files_json: 'cd "%s"; python /tmp/dir_tree.py'
|
||||||
|
},
|
||||||
ansible:{
|
ansible:{
|
||||||
version : 'ansible --version',
|
version : 'ansible --version',
|
||||||
doc: 'ansible-doc -l',
|
doc: 'ansible-doc -l',
|
||||||
|
@ -11,7 +22,23 @@ module.exports = {
|
||||||
export_ansible_library: 'export ANSIBLE_LIBRARY="%s";',
|
export_ansible_library: 'export ANSIBLE_LIBRARY="%s";',
|
||||||
export_force_color: 'export ANSIBLE_FORCE_COLOR=%s;',
|
export_force_color: 'export ANSIBLE_FORCE_COLOR=%s;',
|
||||||
export_host_key_check: 'export ANSIBLE_HOST_KEY_CHECKING=%s;',
|
export_host_key_check: 'export ANSIBLE_HOST_KEY_CHECKING=%s;',
|
||||||
|
get_inventory_list: 'cd "%s" ; ls --ignore="*.*" -p | grep -v /',
|
||||||
|
get_vars: 'cd "%s"; python %s host_vars --inventory_file="%s" ',
|
||||||
|
get_role_vars: 'cd "%s"; python "%s" role_vars --playbook_path="%s" ',
|
||||||
|
get_playbook_list: 'ls "%s" | grep .yml',
|
||||||
|
create_ansible_project_folder: 'mkdir -p "%s"; mkdir -p "%s"',
|
||||||
|
create_role: 'cd "%s"; ansible-galaxy init "%s"',
|
||||||
|
copy_role: 'cd "%s/roles"; cp -r "%s" "%s"; rm -rf "%s/.git"',
|
||||||
|
delete_role: 'rm -rf "%s/roles/%s"',
|
||||||
|
list_tags: 'cd "%s"; python2.7 /tmp/list_tasks_json.py "%s" -i "%s" --list-hosts --list-tasks-json ',
|
||||||
|
ansible_galaxy_search: 'ansible-galaxy search %s',
|
||||||
|
ansible_galaxy_install: 'ansible-galaxy install %s -p %s',
|
||||||
|
github_search_api_options: {
|
||||||
|
host: 'api.github.com',
|
||||||
|
path: '/search/repositories?q=ansible-role-%s',
|
||||||
|
headers: {'user-agent': 'node.js'}
|
||||||
|
},
|
||||||
|
git_clone_repo: 'git clone "%s"'
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,10 +7,21 @@ exports = module.exports = {
|
||||||
'scriptEngine' : {
|
'scriptEngine' : {
|
||||||
'host' : process.env.SCRIPT_ENGINE_HOST || 'localhost',
|
'host' : process.env.SCRIPT_ENGINE_HOST || 'localhost',
|
||||||
'user' : process.env.SCRIPT_ENGINE_USER || 'root',
|
'user' : process.env.SCRIPT_ENGINE_USER || 'root',
|
||||||
|
// This is the default root password for local container set during docker container rebuild
|
||||||
'password' : process.env.SCRIPT_ENGINE_PASSWORD || 'P@ssw0rd@123'
|
'password' : process.env.SCRIPT_ENGINE_PASSWORD || 'P@ssw0rd@123'
|
||||||
},
|
},
|
||||||
|
|
||||||
paths: {
|
paths: {
|
||||||
ansible_projects: '/opt/ansible-projects'
|
ansible_projects: '/opt/ansible-projects',
|
||||||
|
ansible_projects_arhive: '/archive', // relative to projects folder
|
||||||
|
ansible_custom_api_local: './helpers/AnsibleAPI.py',
|
||||||
|
ansible_custom_api_remote: '/tmp/AnsibleAPI.py',
|
||||||
|
ansible_dir_tree_local: './helpers/dir_tree.py',
|
||||||
|
ansible_dir_tree_remote: '/tmp/dir_tree.py',
|
||||||
|
ansible_list_tasks_json_local: './helpers/list_tasks_json.py',
|
||||||
|
ansible_list_tasks_json_remote: '/tmp/list_tasks_json.py',
|
||||||
|
ansible_project_library: '/library', // relative to project folder
|
||||||
|
ansible_project_roles: '/roles', // relative to project folder
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue