Skip to content

Commit

Permalink
Merge pull request #2 from PradyumnaKrishna/master
Browse files Browse the repository at this point in the history
  • Loading branch information
moeloli committed May 18, 2021
2 parents 2255637 + bcf0ec5 commit 430b056
Showing 1 changed file with 56 additions and 82 deletions.
138 changes: 56 additions & 82 deletions Colab RDP/Colab RDP.ipynb
Expand Up @@ -22,7 +22,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/PradyumnaKrishna/Colab-Hacks/blob/master/Colab%20RDP/Colab%20RDP.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
"<a href=\"https://colab.research.google.com/github/PradyumnaKrishna/Colab-Hacks/blob/fix%2Fstart-issue/Colab%20RDP/Colab%20RDP.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
Expand Down Expand Up @@ -51,22 +51,24 @@
"#@title **Create User**\n",
"#@markdown Enter Username and Password\n",
"\n",
"import os\n",
"\n",
"username = \"user\" #@param {type:\"string\"}\n",
"password = \"root\" #@param {type:\"string\"}\n",
"\n",
"print(\"Creating User and Setting it up\")\n",
"\n",
"# Creation of user\n",
"! sudo useradd -m $username &> /dev/null\n",
"os.system(f\"useradd -m {username}\")\n",
"\n",
"# Add user to sudo group\n",
"! sudo adduser $username sudo &> /dev/null\n",
"os.system(f\"adduser {username} sudo\")\n",
" \n",
"# Set password of user to 'root'\n",
"! echo '$username:$password' | sudo chpasswd\n",
"os.system(f\"echo '{username}:{password}' | sudo chpasswd\")\n",
"\n",
"# Change default shell from sh to bash\n",
"! sed -i 's/\\/bin\\/sh/\\/bin\\/bash/g' /etc/passwd\n",
"os.system(\"sed -i 's/\\/bin\\/sh/\\/bin\\/bash/g' /etc/passwd\")\n",
"\n",
"print(\"User Created and Configured\")"
],
Expand All @@ -83,87 +85,58 @@
"#@title **RDP**\n",
"#@markdown It takes 4-5 minutes for installation\n",
"\n",
"import os\n",
"import subprocess\n",
"\n",
"#@markdown Visit http://remotedesktop.google.com/headless and Copy the command after authentication\n",
"\n",
"CRP = \"\" #@param {type:\"string\"}\n",
"\n",
"#@markdown Enter a pin more or equal to 6 digits\n",
"Pin = 123456 #@param {type: \"integer\"}\n",
"\n",
"def CRD():\n",
" with open('install.sh', 'w') as script:\n",
" script.write(\"\"\"#! /bin/bash\n",
"\n",
"b='\\033[1m'\n",
"r='\\E[31m'\n",
"g='\\E[32m'\n",
"c='\\E[36m'\n",
"endc='\\E[0m'\n",
"enda='\\033[0m'\n",
"\n",
"printf \"\\n\\n$c$b Loading Installer $endc$enda\" >&2\n",
"if sudo apt-get update &> /dev/null\n",
"then\n",
" printf \"\\r$g$b Installer Loaded $endc$enda\\n\" >&2\n",
"else\n",
" printf \"\\r$r$b Error Occured $endc$enda\\n\" >&2\n",
" exit\n",
"fi\n",
"\n",
"printf \"\\n$g$b Installing Chrome Remote Desktop $endc$enda\" >&2\n",
"{\n",
" wget https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb\n",
" sudo dpkg --install chrome-remote-desktop_current_amd64.deb\n",
" sudo apt install --assume-yes --fix-broken\n",
"} &> /dev/null &&\n",
"printf \"\\r$c$b Chrome Remote Desktop Installed $endc$enda\\n\" >&2 ||\n",
"{ printf \"\\r$r$b Error Occured $endc$enda\\n\" >&2; exit; }\n",
"sleep 3\n",
"\n",
"printf \"$g$b Installing Desktop Environment $endc$enda\" >&2\n",
"{\n",
" sudo DEBIAN_FRONTEND=noninteractive \\\n",
" apt install --assume-yes xfce4 desktop-base xfce4-terminal\n",
" sudo bash -c 'echo \"exec /etc/X11/Xsession /usr/bin/xfce4-session\" > /etc/chrome-remote-desktop-session' \n",
" sudo apt remove --assume-yes gnome-terminal\n",
" sudo apt install --assume-yes xscreensaver\n",
" sudo systemctl disable lightdm.service\n",
"} &> /dev/null &&\n",
"printf \"\\r$c$b Desktop Environment Installed $endc$enda\\n\" >&2 ||\n",
"{ printf \"\\r$r$b Error Occured $endc$enda\\n\" >&2; exit; }\n",
"sleep 3\n",
"\n",
"printf \"$g$b Installing Google Chrome $endc$enda\" >&2\n",
"{\n",
" wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb\n",
" sudo dpkg --install google-chrome-stable_current_amd64.deb\n",
" sudo apt install --assume-yes --fix-broken\n",
"} &> /dev/null &&\n",
"printf \"\\r$c$b Google Chrome Installed $endc$enda\\n\" >&2 ||\n",
"printf \"\\r$r$b Error Occured $endc$enda\\n\" >&2\n",
"sleep 3\n",
"\n",
"printf \"$g$b Installing other Tools $endc$enda\" >&2\n",
"if sudo apt install nautilus nano -y &> /dev/null\n",
"then\n",
" printf \"\\r$c$b Other Tools Installed $endc$enda\\n\" >&2\n",
"else\n",
" printf \"\\r$r$b Error Occured $endc$enda\\n\" >&2\n",
"fi\n",
"sleep 3\n",
"\n",
"printf \"\\n$g$b Installation Completed $endc$enda\\n\\n\" >&2\"\"\")\n",
"\n",
" ! chmod +x install.sh\n",
" ! ./install.sh\n",
"\n",
" # Adding user to CRP group\n",
" ! sudo adduser $username chrome-remote-desktop &> /dev/null\n",
"\n",
" # Finishing Work\n",
" ! su - $username -c \"\"\"$CRP --pin=$Pin\"\"\" &> /dev/null\n",
"\n",
" print(\"Finished Succesfully\")\n",
"\n",
"class CRD:\n",
" def __init__(self):\n",
" os.system(\"apt update\")\n",
" self.installCRD()\n",
" self.installDesktopEnvironment()\n",
" self.installGoogleChorme()\n",
" self.finish()\n",
"\n",
" @staticmethod\n",
" def installCRD():\n",
" print(\"Installing Chrome Remote Desktop\")\n",
" subprocess.run(['wget', 'https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb'], stdout=subprocess.PIPE)\n",
" subprocess.run(['dpkg', '--install', 'chrome-remote-desktop_current_amd64.deb'], stdout=subprocess.PIPE)\n",
" subprocess.run(['apt', 'install', '--assume-yes', '--fix-broken'], stdout=subprocess.PIPE)\n",
"\n",
" @staticmethod\n",
" def installDesktopEnvironment():\n",
" print(\"Installing Desktop Environment\")\n",
" os.system(\"export DEBIAN_FRONTEND=noninteractive\")\n",
" os.system(\"apt install --assume-yes xfce4 desktop-base xfce4-terminal\")\n",
" os.system(\"bash -c 'echo \\\"exec /etc/X11/Xsession /usr/bin/xfce4-session\\\" > /etc/chrome-remote-desktop-session'\")\n",
" os.system(\"apt remove --assume-yes gnome-terminal\")\n",
" os.system(\"apt install --assume-yes xscreensaver\")\n",
" os.system(\"systemctl disable lightdm.service\")\n",
"\n",
" @staticmethod\n",
" def installGoogleChorme():\n",
" print(\"Installing Google Chrome\")\n",
" subprocess.run([\"wget\", \"https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb\"], stdout=subprocess.PIPE)\n",
" subprocess.run([\"dpkg\", \"--install\", \"google-chrome-stable_current_amd64.deb\"], stdout=subprocess.PIPE)\n",
" subprocess.run(['apt', 'install', '--assume-yes', '--fix-broken'], stdout=subprocess.PIPE)\n",
"\n",
" @staticmethod\n",
" def finish():\n",
" print(\"Finalizing\")\n",
" os.system(f\"adduser {username} chrome-remote-desktop\")\n",
" command = f\"{CRP} --pin={Pin}\"\n",
" os.system(f\"su - {username} -c '{command}'\")\n",
" os.system(\"service chrome-remote-desktop start\")\n",
" print(\"Finished Succesfully\")\n",
"\n",
"\n",
"try:\n",
" if username:\n",
Expand All @@ -173,7 +146,7 @@
" print(\"Enter a pin more or equal to 6 digits\")\n",
" else:\n",
" CRD()\n",
"except NameError:\n",
"except NameError as e:\n",
" print(\"username variable not found\")\n",
" print(\"Create a User First\")"
],
Expand Down Expand Up @@ -348,7 +321,7 @@
"GDrive = False #@param {type:'boolean'}\n",
"\n",
"#@markdown To Sleep Colab\n",
"Sleep = False #@param {type:'boolean'}\n",
"Sleep = True #@param {type:'boolean'}\n",
"\n",
"if NGROK:\n",
" ! killall ngrok\n",
Expand All @@ -365,7 +338,8 @@
" print(\"Google Drive not Mounted\")\n",
"\n",
"if Sleep:\n",
" ! sleep 43200"
" from time import sleep\n",
" sleep(43200)"
],
"execution_count": null,
"outputs": []
Expand Down

0 comments on commit 430b056

Please sign in to comment.