mirror of
https://github.com/dawidd6/action-ansible-playbook.git
synced 2025-12-09 14:20:42 -07:00
rewrite in javascript
This commit is contained in:
56
main.js
Normal file
56
main.js
Normal file
@@ -0,0 +1,56 @@
|
||||
const core = require('@actions/core')
|
||||
const exec = require('@actions/exec')
|
||||
const fs = require('fs')
|
||||
const os = require('os')
|
||||
const path = require('path')
|
||||
|
||||
async function main() {
|
||||
try {
|
||||
const playbook = core.getInput("playbook", { required: true })
|
||||
const directory = core.getInput("directory")
|
||||
const key = core.getInput("key")
|
||||
const inventory = core.getInput("inventory")
|
||||
const vaultPassword = core.getInput("vault_password")
|
||||
const options = core.getInput("options")
|
||||
|
||||
let cmd = ["ansible-playbook", playbook]
|
||||
|
||||
if (options) {
|
||||
cmd.push(options.replace("\n", " "))
|
||||
}
|
||||
|
||||
if (directory) {
|
||||
process.chdir(directory)
|
||||
}
|
||||
|
||||
if (key) {
|
||||
const keyFile = ".ansible_key"
|
||||
fs.writeFileSync(keyFile, key + os.EOL, { mode: 0600 })
|
||||
cmd.push("--key-file")
|
||||
cmd.push(keyFile)
|
||||
}
|
||||
|
||||
if (inventory) {
|
||||
const inventoryFile = ".ansible_inventory"
|
||||
fs.writeFileSync(inventoryFile, inventory, { mode: 0600 })
|
||||
cmd.push("--inventory-file")
|
||||
cmd.push(inventoryFile)
|
||||
}
|
||||
|
||||
if (vaultPassword) {
|
||||
const vaultPasswordFile = ".ansible_vault_password"
|
||||
fs.writeFileSync(vaultPasswordFile, vaultPassword, { mode: 0600 })
|
||||
cmd.push("--vault-password-file")
|
||||
cmd.push(vaultPasswordFile)
|
||||
}
|
||||
|
||||
process.env.ANSIBLE_HOST_KEY_CHECKING = "False"
|
||||
process.env.ANSIBLE_FORCE_COLOR = "True"
|
||||
|
||||
await exec.exec(cmd.join(" "))
|
||||
} catch (error) {
|
||||
core.setFailed(error.message)
|
||||
}
|
||||
}
|
||||
|
||||
main()
|
||||
Reference in New Issue
Block a user