-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How do you automate installation of IIS Administration #86
Comments
We're improving the installer right now so that the .NET Core dependency is bundled in. For now you have to install .NET Core, then install IIS Administration.
|
Any plans to move to more automatable release via supported packagemanagement via Powershell? Running command line executables is pretty difficult to orchestrate properly. |
Do you mean the PowerShell commandlets such as? We do not plan on having anything like that. We have two mechanisms that can be used to install the IIS Administration API, the setup exe and the Setup.ps1 PowerShell script. The setup exe is a simple wrapper around the PowerShell script. The exe is preferable because it leaves valuable metadata such as the fact the program is installed in the 'Install/Uninstall Programs' menu. However there is no issue with running the PowerShell script directly, and this is actually the only mechanism supported on Nano Server. |
I mean Chocolatey installation type or how docker does it. https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-server
|
We don't have any plans to move toward a system such as this. This would be our first piece of feedback on the matter. We can look into distribution mechanisms such as Chocolately to see how they can improve obtainability of the API. For now our only supported mechanisms are the PS script and setup exe. |
Can you please create ZIP downloadable file for all scripts neccessary to install from |
Whenever we release a new version of IIS Administration we package up a ZIP file that contains all the necessary files including the setup scripts. The latest release at the time of writing is at The blog post we put out for installing on Nano has a PowerShell snippet at the bottom that downloads the latest release (with hard-coded version), unzips it and then installs it. |
I have downloaded ZIP file mentioned above, extracted it. Went into setup directory and launched
|
Yes, the PowerShell installation script setup.ps1 requires that .NET Core be installed on the machine. Our guide for installing the IIS Administration API on Nano Server mentions all the requirements for installation. It can be found at https://blogs.iis.net/adminapi/microsoft-iis-administration-on-nano-server The specific documentation for getting .NET Core on Nano Server is at https://docs.microsoft.com/en-us/aspnet/core/tutorials/nano-server |
Any specific reason all that stuff is just not incorporated into setup.ps1 so entire installation document will just consist of run |
There are a couple of reasons: We prioritized the initial user experience on https://manage.iis.net, which absolutely needs smooth MSI install. It may not look as important for server/farm/automated deployments, but it's indeed the first touch with the product for a lot of people. That initial impression was critical to make right. With v1.1.1 release we are now satisfied with that experience and can better focus on automation scenarios going forward. Installing .NET Core on Nano Server is (was) not as smooth as we would like to see to allow us single line install, but we are working on it. I realize that asking to run additional script(s) for automation deployment doesn't sound as optimal experience, but we are getting there. Your feedback is much appreciated for us to prioritize accordingly. Thanks. |
The Windows Server Hosting option is needed. |
|
|
Well Windows Server Container is incapable of utilizing Windows Authentication since local username/password are not provided neither container can be joined to a domain. This module shall be optional I would think bearing in mind this limitations and trying to keep container small. |
Are you just trying to remove the requirement for Windows Authentication when connecting to the API or do you mean you would like to never have the Windows Authentication binaries placed in the container? |
Trying to install it into container with as little overhead as possible. This specific module does not serve any purpouse inside Windows container since it's impossible to use Windows authentication into container since no username/password for administrator is provided by default. It's possible to create new username/password for local admin account but it's outside of normal operations of windows containers. |
To remove the Windows Authentication requirement from the API a couple of changes must be made to the web.config file. The web.config file is located at Lines 8-16 should be changed from
to
These changes do not remove the Windows Authentication requirement to generate access tokens. Since you already have access tokens generated this should not be an issue. |
I created container with IISAdministration installed into. I can see WebServer is listening on 55539 but it hangs on request to it. Container name is "artisticcheese\iis-basis", you can pull it directly from docker hub to test. Both dotnetcore hosting as well as IISadministration modules are installed.
Netstat
Issuing request to port 55539
|
I just pulled and ran your container. I performed a couple scenarios and everything is running end to end. Have you been requesting HTTP rather than HTTPS? The API doesn't listen for HTTP. If I try to use HTTP I get the same timeout you did, but that is expected.
Here is my command running in the artisticcheese/iis-basis container Note: The 401 is expected, as the container image does not have the Windows Authentication requirements removed as I mentioned before.
|
I ran your container with
|
Yes. My bad I was using HTTP. So to answer second question, do I still need to preload .NET core if you said IISadmin will already install it anyway in latest version? |
.NET Core will be automatically downloaded and installed by the IISAdministrationSetup.exe installer as long as internet connection is available. If you don't want the installation of IIS Administration to depend on having an internet connection you'll have to preload .NET Core as you mentioned. |
Is there any switch can be enabled with IISAdmin.exe to show verbose output of what is being done during installation. I'm currently running with |
No there is not currently any output that will appear when you install in this manner. |
If you would like to see the output of the installer it is available in the %temp% directory. The log file names are in the form of Microsoft_IIS_Administration_*.log |
I really want this to be in output stream to show up during build about progress as well as errors. You can already see this caused issues during debugging where installation never took place due to |
This behavior is not available through the setup executable, and it is not something that we can simply turn on. It would require additional features to be available in Bootstrapper installer. If this behavior is necessary for your scenarios then you can file a feature request and we can discuss this further. The overall issue of running inside a container has been addressed. |
I can see that to install IIS Administration manual step of installing MSI for .NET core plus actual executable for IIS Administration shall be run in manual fashion. How to properly automate it to put inside docker container?
The text was updated successfully, but these errors were encountered: