New update
parent
ed9982a71c
commit
e1ea09a927
126
manifest.jps
126
manifest.jps
|
@ -1,33 +1,129 @@
|
|||
version: 0.2
|
||||
version: 0.1
|
||||
id: newsshuser
|
||||
type: update
|
||||
description: An addon to add new SSH users.
|
||||
description: An addon to add new SSH users.
|
||||
name: Add SSH User
|
||||
|
||||
targetNodes:
|
||||
nodeGroup: cp
|
||||
|
||||
settings:
|
||||
sfpform:
|
||||
submitUnchanged: true
|
||||
fields:
|
||||
- type: displayfield
|
||||
name: infoField
|
||||
caption: Root Directory /var/www/webroot/ROOT/
|
||||
description: "A user-specific directory will be created under /home/username"
|
||||
required: false
|
||||
- type: checkbox
|
||||
name: allow
|
||||
caption: Accept User Creation
|
||||
default: false
|
||||
required: false
|
||||
|
||||
globals:
|
||||
username: "user${fn.random(10000,99999)}"
|
||||
password: ${fn.password(min)}
|
||||
sshHost: ${env.domain}
|
||||
sshPort: 22
|
||||
sftpHost: ${env.domain}
|
||||
sftpPort: 22
|
||||
|
||||
onInstall:
|
||||
- cmd [cp]:
|
||||
user: root
|
||||
commands: |-
|
||||
mkdir -p /home/jelastic/add-sftp-user-addon/
|
||||
mkdir -p /home/jelastic/add-sftp-user-addon/logs
|
||||
touch /home/jelastic/add-sftp-user-addon/logs/script_output.log
|
||||
wget https://deploy-proxy.mightybox.io/addons/add-sftp-user/raw/branch/main/add-sftp.sh -O /home/jelastic/add-sftp-user-addon/add-sftp.sh
|
||||
chmod +x /home/jelastic/add-sftp-user-addon/*.sh
|
||||
- cmd[cp]:
|
||||
user: root
|
||||
commands:
|
||||
- useradd -m -s /bin/bash ${globals.username}
|
||||
- echo "${globals.username}:${globals.password}" | chpasswd
|
||||
- mkdir -p /home/${globals.username}/.ssh
|
||||
- chmod 700 /home/${globals.username}/.ssh
|
||||
- touch /home/${globals.username}/.ssh/authorized_keys
|
||||
- chmod 600 /home/${globals.username}/.ssh/authorized_keys
|
||||
- chown -R ${globals.username}:${globals.username} /home/${globals.username}/.ssh
|
||||
- return:
|
||||
type: info
|
||||
message: "SSH account created successfully.\n\nSSH Host: ${globals.sshHost}\n\nPort: ${globals.sshPort}\n\nLogin Credentials\n\nUsername: ${globals.username}\n\nPassword: ${globals.password}"
|
||||
- echo -e "\nMatch User user*\nPasswordAuthentication yes" >> /etc/ssh/sshd_config
|
||||
- cmd[cp]:
|
||||
user: root
|
||||
commands:
|
||||
- systemctl restart sshd
|
||||
- api: environment.control.RestartContainer
|
||||
nodeGroup: cp
|
||||
nodeid: ${nodes.cp.id}
|
||||
- return: installSuccess
|
||||
|
||||
actions:
|
||||
add_sftp_user:
|
||||
- cmd[cp]:
|
||||
user: root
|
||||
commands: bash /home/jelastic/add-sftp-user-addon/add-sftp.sh ${globals.username} ${globals.password}
|
||||
- cmd[cp]:
|
||||
user: root
|
||||
commands: echo $CREATED_USERNAME
|
||||
- setGlobals:
|
||||
username: ${response.out}
|
||||
- cmd[cp]:
|
||||
user: root
|
||||
commands: echo $CREATED_PASSWORD
|
||||
- setGlobals:
|
||||
password: ${response.out}
|
||||
- return:
|
||||
type: info
|
||||
message: "Connection Details\n\nSFTP Host: ${globals.sftpHost}\n\nPort: ${globals.sftpPort}\n\nLogin Credentials\n\nUsername: ${globals.username}\n\nPassword: ${globals.password}"
|
||||
|
||||
- cmd[cp]:
|
||||
user: root
|
||||
commands:
|
||||
- echo "${settings.manage_username}:${globals.password}" | chpasswd
|
||||
- echo "Password changed for ${settings.manage_username}" >> /home/jelastic/add-sftp-user-addon/logs/script_output.log
|
||||
- if ("${response.exitStatus}" != "0"):
|
||||
return: passwordChangeError
|
||||
- return: passwordChangeSuccess
|
||||
delete_user:
|
||||
- cmd[cp]:
|
||||
user: root
|
||||
commands:
|
||||
- userdel ${settings.manage_username}
|
||||
- rm -rf /home/sftpusers/${settings.manage_username}
|
||||
- echo "User ${settings.manage_username} deleted" >> /home/jelastic/add-sftp-user-addon/logs/script_output.log
|
||||
|
||||
- if ("${response.exitStatus}" != "0"):
|
||||
return: deleteUserError
|
||||
- return: deleteUserSuccess
|
||||
|
||||
responses:
|
||||
installSuccess:
|
||||
type: success
|
||||
message: "SSH account created successfully."
|
||||
message: "Installed Successfully"
|
||||
sftpError:
|
||||
type: error
|
||||
message: "Failed to add SFTP user. Please check the server logs for more details."
|
||||
sftpSuccess:
|
||||
type: success
|
||||
message: "Connection Details\n\nSFTP Host: ${globals.sftpHost}\n\nPort: ${globals.sftpPort}\n\nLogin Credentials\n\nUsername: ${globals.username}\n\nPassword: ${globals.password}"
|
||||
type: success
|
||||
message: "Password changed successfully for ${settings.manage_username}.\n\n New password: ${globals.password}"
|
||||
deleteUserError:
|
||||
type: error
|
||||
message: "Failed to delete user ${settings.manage_username}. Check logs for details."
|
||||
deleteUserSuccess:
|
||||
type: success
|
||||
message: "User ${settings.manage_username} deleted successfully."
|
||||
noUsersFound:
|
||||
type: error
|
||||
message: "No SFTP users have been created yet."
|
||||
|
||||
buttons:
|
||||
- settings: sfpform
|
||||
action: add_sftp_user
|
||||
caption: SSH User
|
||||
confirmText: "Are you sure you want to add this SFTP user?"
|
||||
submitButtonText: Add User
|
||||
- settings: manageUserForm
|
||||
action: delete_user
|
||||
caption: Delete User
|
||||
confirmText: "Are you sure you want to delete this user?"
|
||||
|
||||
onUninstall:
|
||||
- cmd[cp]:
|
||||
user: root
|
||||
commands:
|
||||
- rm -rf /home/jelastic/add-sftp-user-addon/
|
Loading…
Reference in New Issue