How to install applications on azure VM - azure

I have an Azure VM and IIS setup through ADO playbook. Is it possible to have the playbook also install applications like putty as well? I’m using ansible as well in the playbook.
I thought I might be able to use get_url but that will just download the installer.
If there is no way, then is the best practice to just build up the VM the way I need it and to create an image?

You could likely find a way to install programs using something like Custom Script Extension or manually modifying the install files to skip any user input. That being said, the best option would be to create an image with the required programs already installed then capture an image of that VM. This will save you a lot of time and effort so I suggest simply going that route instead.

Related

Create an Azure virtual machine with premade files and run them?

Is there a way in Azure to create a new virtual machine with preselected files that will always be there when establishing the new machine, as well as run them?
I have a shell script that I have to run on new Ubuntu machines that I deploy and I was wondering if there's a way to make Azure already install Ubuntu with those files and maybe even run them.
You can store the files in a storage account and quickly get the files in your VM: https://learn.microsoft.com/en-us/azure/storage/files/storage-files-quick-create-use-windows. Alternatively, you can restore a backup of a VM that has all prerequisites installed: https://learn.microsoft.com/en-us/azure/backup/backup-azure-arm-restore-vms.
If this is not what you're looking for, I think you should create an ISO of your VM with all software/files installed that you want. This is however not straightforward, see the discussion here: https://serverfault.com/a/952930
If I do not misunderstand, you're searching for a way to run the shell script when creating a new VM. Then I will recommend you use the cloud-init, it can run your shell script to provision the VM in the creation time. You can follow the notes here to use the shell script.

Setting up Windows Pycharm to use Git on my linux server

So I'm trying to do something probably pretty simple but can't figure it out of course. I have a VM on my network running CentOS and I installed Git using the guide. Now I'm on my Windows PC using Pycharm trying to setup Git but the setup asks for where the git.exe file is and can't seem to navigate to my CentOS VM within pycharm to point it anywhere. I tried \IP Address but that didn't work. Is there somewhere on the Linux vm I need to do to allow the windows Pycharm to reach it? I'm new to this on both sides lol.
If I understand your question correctly, you want to access a Git-Repository in your local Linux network. In that case you need to be able to access these files with your Windows machine in order to push/fetch your changes from/to it. A simple way to do it, could be set up file sharing as explained here link and then clone and handle it as any local Git-Repository (see e.g. link - with local Repos the file path is used instead of the URL).
An even simpler way could be to create a hosted online Git-Repository (e.g. on Github) even if you are a sole contributor, maybe make it a private one, if you don't want to make the contents public.

Deploy NWJS with docker

I am developing an app with NWJS, now I am thinking in the deploy process, what I need is install the app into different machines that will use that app, the problem that I see is if I change some file I will need install again into each machine, I was reading about docker and if I understood fine, I can make an Image and download the last version of the app into each machine that use the app.
The Question is if can I upload the app into a container and download that into each machine?, and How can I search the documentation for do that?.
Thanks for any help
I think I've cheated my way into a solution, this could work for you, depending on what your exact requirements are.
In one scenario, I have a shared network folder that allows machines to launch the NWJS app via the network share, so every time I update the file and someone relaunches their short-cut, they have a fresh copy.
The remote users, who are not directly on our same network, has their copy in a DropBox folder - which - of course - automatically update as I drop the new copy into that folder.
None of these solutions are as "clean" as an installer, but, for our use case, works rather well. It's a bonus that DropBox handles the downloading of the new copy of the file automatically.

How do I install wkhtml2pdf?

I've been looking for a solution to this for about a year, still haven't found one.
I'm trying to get a website snapshot script that I can host on my server and use freely that works well on 99% of webpages.
So far I've been using html2canvas but it doesn't really display images.
I looked into wkhtml2pdf before but I tried installing every single binary and executing from PHP. None of them worked!
All I know about my server is that it is Linux (so I only tested Linux static binaries). Even the basic --help command didn't work.
Please help me out. Thanks!
If you are using a hosting service, it is possible that it is impossible to execute binary programs stored in users' directories. (noexec flag on specific partition). You should first contact system administrator and ask if it is possible to put your own binary executables there. Perhaps, you can ask system administrator to install wkhtmltopdf for you in a global directory /usr/local/bin.
You'll need more then a simple shared hosting, and more then "it is Linux". PHP could be in safemod and lots and lots of other limitations. I would choose a minimal VPS (like digitalocean or similar), root access, install wkhtml2pdf with dnf, yum or what's on you Linux distro, because it brings lots of dependencies to your machine. A minimal LAMP server should not have what's needed on it. You need to be able to allow Apache (or other user) to exec the binary.

Lightweight version control software on Linux

I'm working with a shell account in a shared system and I would like to use some version control software for my bash scripts and config files.
It must works on Linux with no dependencies, just unpack it in my home dir. I don't need remote checkout, branching or other fancy tricks. I want to be able to commit my changes and restore them if needed.
Try Git.
fossil.
Single binary.
No dependencies.
Version control.
Built in ticket tracker and wiki.
CLI and web interface.
Mercurial. You can just install it in a local directory and make sure that's in your PATH. It gives you a lot of power.
Update for comment:
Most hosting account have way more storage than you'll ever need (e.g. WebFaction gives you 10GB on a $10/mo account), so install Python locally. When you do the build/install simply add --prefix=/home/you/local. It will create local/bin/, local/lib/, etc. Now you have Python and then you can install Mercurial using your very own python.
If your account has little storage, or is missing critical build tools (like gcc, etc.), then you are using the wrong hosting.
I just found Darcs looking at previous questions. It fits perfectly to my needs.
Thanks Adam for your suggestion but Git depends on several packages which versions are not all available to me.
I use Subversion. Works fine for local access.
I also remotely check out my scripts to most of my shell accounts, I must say. It's a really convenient way to make sure the setup of the different accounts stays aligned.

Resources