High Availability in Open Source Puppet Version 4.10 - open-source

I want to setup a High Availability environment using Open Source Puppet version 4.10.
I did some research and found that master less architecture can be a
solution with it trades offs (No pinpoint to failed process)
High Availability in Puppet Enterprise is available is there a way to mimic that in open source and using foreman for GUI?

Related

Add a Windows node to Openshift OKD v.3.11

Since Docker can now run on Windows, is there a way to deploy Openshift OKD over a Windows VM?
In the documentation under System and environment requirements we can read that rhel family OS are needed, but I'm just wondering if there is a side process (alternative) process to perform this operation.
My main concern is that I need to run Windows containers on OKD.
The answer is that for OKD 3.11 this is not possible and has to do with the networking (OVS) not being available for Windows machines.
That being said, there is a lot of information available for Windows Container in Kubernetes itself, although there are A LOT of things that are not implemented or are not supported at this time: https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/
You can expect Windows Containers to become available in OKD 4.5 or later as Tech Preview, but I personally would not hold my breath.

possibility of having 2 mercurial servers, using the same database

I have a Mercurial server on a simple server (Virtual Machine (VM)), and about 100 users with access. And from time to time, requests have been slow.
And since I can not change the hardware of this server, because the VM server no longer has available resources, and migrating it would do a great job.
I would like to know it is possible to have 2 mercurial servers, using the same database, because this would balance the load, and in one server would put a large team, and in the other the other teams. In short, I can not mess with the server you're on today.
VM:
Windows Server 2003 SP2
1.5GB Memory
60GB HD
Settings:
Python 2.7.2
Mercurial 2.5.4
RhodeCode 1.6.0rc1
Note:
Sorry if you're confused, this question was translated via google. If you can edit and rearrange it, I'll be very grateful.
This is certainly possible. If you have shares storage RhodeCode can use the same DB and load-balance load between machines.
Btw, 1.6.0 is very old I'd take a chance at upgrading this.

Python3: How do I get a warning that server memory is running out?

I'm writing a program that manages data entered by users. I plan to open a test version to the public and have no idea how many users there may be.
I want my program to test when memory is getting low so that I know when to buy more server space and so that I can automatically restrict data entry when necessary. What's a good way to detect memory shortage? Allocate garbage space temporarily to get the exception? Is there a better way?
This may be best accomplished outside of your application using a performance monitoring tool. Windows Server can be configured to do this for you; see this question. There are other tools out there that help you monitor your servers, and I advise you to use an existing system unless you absolutely have to do this with Python.
If you must absolutely do this using Python, then have a look at the psutil library:
psutil (python system and process utilities) is a cross-platform
library for retrieving information on running processes and system
utilization (CPU, memory, disks, network) in Python. It is useful
mainly for system monitoring, profiling and limiting process resources
and management of running processes. It implements many
functionalities offered by command line tools such as: ps, top, lsof,
netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop,
uptime, pidof, tty, taskset, pmap. It currently supports Linux,
Windows, OSX, FreeBSD and Sun Solaris, both 32-bit and 64-bit
architectures, with Python versions from 2.4 to 3.4. Pypi is also
known to work.
You may combine this with the email package to send the alerts.

Open Source Application Server Solution

A project with the following technologies and components has surfaced: to up a Web stack solution initially composed with Ubuntu, JDK, JBoss, Spring MVC 3.0+, and MySQL.
In planning this project, I have been struggling to find answers to the following questions for first steps, best practices, and sequence:
1) Does the JDK (and JBoss) need to be installed as ‘root’? (I have seen articles that mention it is not a good idea to operate in root unless absolutely necessary due to the fatal consequences.)
2) Does Ubuntu need to be installed as a Server in order to accomplish all this, or can it also be installed as a Desktop? I have not been able to determine if having a JBoss and MySQL need to be installed on top of Linux as a server.
3) Does Maven need to be used within Spring STS in order to get JBoss, and MySQL (and in the future Hibernate) to work successfully together?
4) My intent is to install in this order: a) Ubuntu -> b) Java -> c) JBoss -> d) Spring STS -> and e) MySQL. Are there any blatant conflicts in this sequence?
JBoss will require Java (recommend Java 7) before it will do anything. I don't think it really "installs" per-say, but rather just unpacks to some directory (even if you install from the package manager, it just really extracts itself). I question your need for Spring since JBoss and Java EE in general really does everything Spring does, and better now-a-days. Unless you have a specific requirement for Spring, I'd question this extra dependency.
For linux - in a high level, any OS can be a "server", all it needs is to be capable of serving things (web pages, ssh connections, etc). In M$ world, different "levels" of the OS have been specially designed based on anticipated task/workload. So for example, while Windows 7 can indeed run as a server, it was not designed for it and therefore may not be optimized or include helper utilities and tools to make life easier as a sys admin of the system. Windows Server on the other hand does include all the "normal" server tools and lots of goodies to make maintaining and setting the server up easier.
In linux land, this is no such thing. Linux is the kernel that talks back and forth with the bare metal, etc... and Distro makers will take that and build an OS around the kernel, basically just attaching any packages they feel their distro needs... such as wget, or cat, or any other standard userland apps, plus some non-standard such as mysql or java or whatever they want.
Now, some distributions of linux will tailor themselves at being "server" ready, while others will tailor themselves at being a desktop OS. The difference? It's really just whatever default packages the distribution maker decides to include or not. For example, the overwhelming majority of linux servers are run completely headless, and therefore there is absolutely no reason to have X11 and a huge bloated GUI environment installed and/or running on that system... it's pointless. Also, an "average joe" user does not need MySQL installed by default on his desktop system since it would only bloat his system and he likely won't ever use it.
So basically it comes down to default installed packages.
Some linux server distros take this further and exercise extreme caution when making updates, patches, or new releases in the name of stability and security, while on the other hand most desktop distros are more haphazard with their updates since if it breaks a home users web browser, it's probably not a huge deal... but if a server update breaks the webserver application stack, now that's a serious problem.
So you'll find server OS's like CentOS (based on upstream RHEL) are extremely slow to bring in the "latest and greatest" features that desktop OS's get early on. Their goal is high security and long term stability.
Now, for Ubuntu. While I certainty know a lot of folks run Ubuntu as their server OS choice (partly due to Amazon choosing Ubuntu as the default linux VM for their ECS cloud), but I'd really question this. Ubuntu is not focused on being a server. It's focused on being a great all-around desktop oriented OS. Yes the LTS version is meant for long term stability, but it's based out of a desktop OS, so it's still not the focus.
IMHO, I'd go with CentOS because it's free and completely binary compatible version of RHEL - and RHEL is the de-facto standard for enterprise-grade linux servers. Be aware though, the RHEL way of doing things is a bit different than the debian way -- so there is no apt-get, you must use yum install instead. Startup scripts are different and some ways of doing things are different, but really, once you know linux, you know linux.
EDIT: Also check into Jenkins - its a free opensource continuous integration system that runs on JBoss or Tomcat or any other container, and can automagically pull your code from a repo (github, git, svn, etc) and compile/package it then push it to live deployment. You setup your ANT or Maven build scripts, and it can kick off on a schedule or however you configure it.
EDIT EDIT: I'd also recommend using OpenJDK -- as it's likely included in your package manager (for just about every disto) and will be more updated than the oracle version if it's in your package manager too. I've found most "server" distros will have OpenJDK 7 while only having Oracle java 6 in their package managers. Also, installing it via the package manager will enable you to keep it updated a ton easier.
Installed as root, why not? Run as root, probably not a good idea.
If you want a desktop, install a desktop distrib. If you want a server, install a server distrib. This doesn't change what can and can't be run in the OS. It only changes what is installed by default.
Maven is a build tool. JBoss doesn't care how you build your app. All it cares about is if the application you deploy is a valid Java EE application.
No. You need an OS, so Ubuntu must come first. JBoss and (AFAIK) Spring STS need a JRE to run, as they're Java applications, so Java should be installed before them. MySQL is independent of JBoss, STS and Java, so you can install it whenever you want.
Note that if you're struggling just with this installation part, be prepared to suffer with the rest. Building a Java EE webapp is not a piece of cake, and you should probably find some experienced developer to help you, as it seems you're only beginning with Java.

Custom Rendering Extensions in cloud Reporting Services

We want to have scalable Reporting services. And we need to install Custom Rendering Extensions on this scalable Reporting Services. This is the main requirement for us. SQL Azure Reporting doesn't suite the requirements, because it is impossible to extend this service with custom rendering extension. We had an idea to install Reporting Services on each instance separated from SQL Azure and Azure Reporting, but Rendering Extensibility is not available in free editions of SQL Server and it costs too much to use paid edition. The database of these reporting services instances will be stored in SQL Azure and we will be able to leverage scalable Reporting Services tool with the required rendering extension. The problem is price, complexity and no benefits from SQL Azure Reporting. So, we got stuck with Microsoft clouds. And don't see any reasonable solution with Microsoft clouds.
So we considered Reporting Services on EC2 as they have special cloud license. And we are not quite sure whether it is possible to achieve what we need or not.
We've found that it's possible to install SQL Server2008R2 on EC2 so that the data of the database will be stored in EBS which is available to all the instances. So we have scalable Reporting Services in that case.
The question is lying in the Amazon Virtual Images:
We suppose that we need to install predefined configuration with Windows OS and SQL Server 2008R2 and we wonder if it (1) includes Reporting Services, (2)is it possible to install some more software on this predefined virtual machine (rendering extension), (3)is it possible to organize such scalable Reporting Services with Custom Rendering extensions and to leverage load balancing and etc.?
You don't have to use the AWS provided SQL Server 2008 R2 AMI if you don't want to.
If you bring your own licenses, you could go with a base EC2 install, and then install whatever software you want over the top of it.
ie - install the Windows AMI, and then run the SQL Server installation of your choice. The second step then is to install any additional extensions you require.
I would also recommend that once you complete the installation that you create an AMI of it so that you can repeat the installation at a later date.