Where to start?
-
@NashBrydges said in Where to start?:
Do you want to learn CentOS or do you want to learn how to manage an application on CentOS? I ask because, as a Linux noob, I found that when I installed Nextcloud on Ubuntu, I didn't learn a lot more about Ubuntu, but I learned how to install and manage Nextcloud.
Well this is one reason why I try to make all my guides so detailed.
You see all the commands laid out for you.
Though, I will admit I got lazy and dropped the SELinux commands into a script on GitHub for my last Nextcloud guide.
-
This is really a general problem with operating systems. Think of Windows. I need to deploy IIS on Windows. How much Windows am I really going to learn while doing that? Very little. Operating systems always have this problem, you can do a million tasks on them and skip learning tons of things.
-
@scottalanmiller said in Where to start?:
This is really a general problem with operating systems. Think of Windows. I need to deploy IIS on Windows. How much Windows am I really going to learn while doing that? Very little. Operating systems always have this problem, you can do a million tasks on them and skip learning tons of things.
Right, and by doing things over and over for different applications, you learn more and more commands.
-
There are many tasks and skills that you will never learn on Linux as an admin, but need as an engineer. For example, an admin "never" chooses filesystem types, tunings or layouts. Only the engineers really ever do that. If you just deploy vanilla CentOS 7 VMs, you might never dive into XFS, EXT4 and BtrFS performance. If you never need to resize or snap machines, you might never touch LVM, even though it is really important. If you have plenty of RAM, will you spend time pouring over SAR, top, glances and free?
-
@NashBrydges said in Where to start?:
Do you want to learn CentOS or do you want to learn how to manage an application on CentOS? I ask because, as a Linux noob, I found that when I installed Nextcloud on Ubuntu, I didn't learn a lot more about Ubuntu, but I learned how to install and manage Nextcloud.
I'm now at about 15 VMs running various flavors of Linux and each running it's own application.
While I've learned quite a bit by getting these applications setup, I don't know that I learned a ton about CentOS or Fedora or Ubuntu except as related to the installation and maintenance of those apps or websites.
I'm interested as to what will be suggested here to see if I should change my approach.
I am not really interested in the application on top of CentOS as I am concerned about CentOS, itself. I am trying to find me a foothold coming from Windows into Linux. I can install about anything on Windows and manage Windows itself, pretty easily.
I have always wanted to learn Linux and really didn't care what kind of Linux as long as I had learned some form of Linux. I have heard Scott talk about how Red Hat has a major market share of the Internet and industries generally. I have a church friend that is also the IT manager for an international company. One day, I point blank asked him what distribution of Linux server he is running and he said Red Hat.
As we all know, Red Hat falls within the Fedora realm and a very close sibling to Red Hat is CentOS. Therefore, I am wanting to learn CentOS to therefore, learn Red Hat minus additional repos that are only supported within Red Hat.
I start learning CentOS, then I can start learning other systems, such as FreePBX, NextCloud, etc.
-
@JaredBusch said in Where to start?:
@scottalanmiller said in Where to start?:
This is really a general problem with operating systems. Think of Windows. I need to deploy IIS on Windows. How much Windows am I really going to learn while doing that? Very little. Operating systems always have this problem, you can do a million tasks on them and skip learning tons of things.
Right, and by doing things over and over for different applications, you learn more and more commands.
It's true. But you have to realize that you'll only learn the tiniest bit with each install. It reinforces things, but it is a slow go. You learn more from running systems than installing, but it is hard to really run one that you didn't install. I think having lots of machines is important, you need variety and quantity to start putting the pieces together.
-
@NerdyDad said in Where to start?:
I am not really interested in the application on top of CentOS as I am concerned about CentOS, itself. I am trying to find me a foothold coming from Windows into Linux. I can install about anything on Windows and manage Windows itself, pretty easily.
What do you "manage" on Windows, though?
-
Operating systems are, by definition, platforms for applications. So learning an OS is tightly tied to learning the applications, at least to some degree. Just like how hypervisors only exist to host VMs. No VMs, and the hypervisor doesn't really... do anything.
-
@scottalanmiller said in Where to start?:
@NerdyDad said in Where to start?:
I am not really interested in the application on top of CentOS as I am concerned about CentOS, itself. I am trying to find me a foothold coming from Windows into Linux. I can install about anything on Windows and manage Windows itself, pretty easily.
What do you "manage" on Windows, though?
Really nothing much more than the IP address, updates, activation, joining to domain with a computer name and that is it. I know how to get into the registry and make changes, if guided, but would not know where to go on my own to fix a problem. I know there is a loopback file but would not know where to go without doing some googling. I can manage disks and partitions within the GUI, but not command line. Otherwise, everything else is application layer on top.
-
@NerdyDad said in Where to start?:
Really nothing much more than the IP address, updates, activation, joining to domain with a computer name and that is it.
On CentOS use nmtui to set the IP address, yum -y update for updates and the domain you don't need. You've caught up!
-
@scottalanmiller said in Where to start?:
Operating systems are, by definition, platforms for applications. So learning an OS is tightly tied to learning the applications, at least to some degree. Just like how hypervisors only exist to host VMs. No VMs, and the hypervisor doesn't really... do anything.
Thus the reason, to put an application on top of the server in order to give the server purpose for living. Would you hire somebody and pay them without giving them something to do in return for you? No. That would be ludacris.
-
@NerdyDad said in Where to start?:
@scottalanmiller said in Where to start?:
@NerdyDad said in Where to start?:
I am not really interested in the application on top of CentOS as I am concerned about CentOS, itself. I am trying to find me a foothold coming from Windows into Linux. I can install about anything on Windows and manage Windows itself, pretty easily.
What do you "manage" on Windows, though?
Really nothing much more than the IP address, updates, activation, joining to domain with a computer name and that is it. I know how to get into the registry and make changes, if guided, but would not know where to go on my own to fix a problem. I know there is a loopback file but would not know where to go without doing some googling. I can manage disks and partitions within the GUI, but not command line. Otherwise, everything else is application layer on top.
The point being made here is to setup several systems that each do their own thing, DokuWiki was mentioned, maybe you setup a PBX etc.
As you install different systems you'll learn how to manage the operating system.
-
@NerdyDad said in Where to start?:
@scottalanmiller said in Where to start?:
Operating systems are, by definition, platforms for applications. So learning an OS is tightly tied to learning the applications, at least to some degree. Just like how hypervisors only exist to host VMs. No VMs, and the hypervisor doesn't really... do anything.
Thus the reason, to put an application on top of the server in order to give the server purpose for living. Would you hire somebody and pay them without giving them something to do in return for you? No. That would be ludacris.
Many people consider the application part of the learning, even when it is not part of the OS itself. And some things cross boundaries. Is Apache an app, or the OS? On Windows, it's an app no question. On CentOS, it's the OS. So the OS is much bigger, in some ways.
-
@DustinB3403 said in Where to start?:
@NerdyDad said in Where to start?:
@scottalanmiller said in Where to start?:
@NerdyDad said in Where to start?:
I am not really interested in the application on top of CentOS as I am concerned about CentOS, itself. I am trying to find me a foothold coming from Windows into Linux. I can install about anything on Windows and manage Windows itself, pretty easily.
What do you "manage" on Windows, though?
Really nothing much more than the IP address, updates, activation, joining to domain with a computer name and that is it. I know how to get into the registry and make changes, if guided, but would not know where to go on my own to fix a problem. I know there is a loopback file but would not know where to go without doing some googling. I can manage disks and partitions within the GUI, but not command line. Otherwise, everything else is application layer on top.
The point being made here is to setup several systems that each do their own thing, DokuWiki was mentioned, maybe you setup a PBX etc.
As you install different systems you'll learn how to manage the operating system.
Exactly. I'll know where to put the html files so that the webserver would know where to read and send information as requests come in, etc.
-
The place that I would start is with infrastructure, unlike something like NextCloud or WordPress, infrastructure pieces will force you to think about your Linux system. What about a jump box as a starting point?
-
@NerdyDad said in Where to start?:
@scottalanmiller said in Where to start?:
@NerdyDad said in Where to start?:
I am not really interested in the application on top of CentOS as I am concerned about CentOS, itself. I am trying to find me a foothold coming from Windows into Linux. I can install about anything on Windows and manage Windows itself, pretty easily.
What do you "manage" on Windows, though?
Really nothing much more than the IP address, updates, activation, joining to domain with a computer name and that is it. I know how to get into the registry and make changes, if guided, but would not know where to go on my own to fix a problem. I know there is a loopback file but would not know where to go without doing some googling. I can manage disks and partitions within the GUI, but not command line. Otherwise, everything else is application layer on top.
And I think that's been the key for my approach at learning. Because I simply spin up a VM for every single application I install, I've compartmentalized my learning specific to that OS + that application. Because that's all I need. I'm not worried about learning MySQL on Ubuntu for ScreenConnect because it isn't installed and I don't use it. But I have a website that I built that uses MySQL on Ubuntu so I learned about that as it relates to that function. It also uses PHP so had to learn about that and some PHP scripting. It also runs on HTTPS so had to learn about Lets Encrypt.
As I'm describing this, maybe that's the best way to learn this is to setup applications that extend your use of the particular OS without having to chew on the entire OS at once. Learn it...piecemeal.
-
Try to virtualize two of them and start with keeping them update, make them be aware of each other (via host name resolution) try generate and explort ssh keys, enter from one machine into another via ssh.
Maybe make one nfs server and try to mount nfs exports from the other machine.
If you have a nas also try to mount shares (even smb://) -
@coliver said in Where to start?:
@scottalanmiller has a really good list of projects to work on. I saved it for offline use but here it is quoted.
- There are some books in addition to the one I am writing here.
- Start with CentOS (I think he advocated Fedora now for most tasks)
- If you are serious about making a huge transition, phase out Windows in your life (temporarily at least) and go to a full Linux desktop / laptop to force yourself to change your mindsets about everything (Linux on the desktop teaches you nothing about Linux, but it might teach you something about perspective.) Use Fedora because it is closer to CentOS 7 and will prepare you for CentOS 8 when it comes.
- Build a Linux testing environment (you have XenServer today, replace it with KVM so that you have exposure to both Linux-ecosystem hypervisors.)
- Replace every Windows system you have with Linux, one at a time.
- Make loads of new Linux systems you don't have with Windows...
-
- Home web server / intranet
-
- Home info portal, WordPress
-
- Home shared data site, MediaWiki
-
- Home ticketing system, osTicket
-
- Home NextCloud or similar storage
-
- Home NFS shares
-
- Home PBX
-
- Home media server
-
- Home chat server (OpenFire, Rocket.Chat, MatterMost)
-
- Home minecraft server
-
- Home Jump server
-
- Home Ansible or Salt (or both) server
-
- Home backup server
-
- Home monitoring server (zabbix, zenoss, nagios)
-
- Home logging server
-
- Home firewall
-
- Home repo for faster updates with less bandwidth
It's funny, this was my starting list and I've got most of them setup and running as VMs now.
-
@NashBrydges said in Where to start?:
@coliver said in Where to start?:
@scottalanmiller has a really good list of projects to work on. I saved it for offline use but here it is quoted.
- There are some books in addition to the one I am writing here.
- Start with CentOS (I think he advocated Fedora now for most tasks)
- If you are serious about making a huge transition, phase out Windows in your life (temporarily at least) and go to a full Linux desktop / laptop to force yourself to change your mindsets about everything (Linux on the desktop teaches you nothing about Linux, but it might teach you something about perspective.) Use Fedora because it is closer to CentOS 7 and will prepare you for CentOS 8 when it comes.
- Build a Linux testing environment (you have XenServer today, replace it with KVM so that you have exposure to both Linux-ecosystem hypervisors.)
- Replace every Windows system you have with Linux, one at a time.
- Make loads of new Linux systems you don't have with Windows...
-
- Home web server / intranet
-
- Home info portal, WordPress
-
- Home shared data site, MediaWiki
-
- Home ticketing system, osTicket
-
- Home NextCloud or similar storage
-
- Home NFS shares
-
- Home PBX
-
- Home media server
-
- Home chat server (OpenFire, Rocket.Chat, MatterMost)
-
- Home minecraft server
-
- Home Jump server
-
- Home Ansible or Salt (or both) server
-
- Home backup server
-
- Home monitoring server (zabbix, zenoss, nagios)
-
- Home logging server
-
- Home firewall
-
- Home repo for faster updates with less bandwidth
It's funny, this was my starting list and I've got most of them setup and running as VMs now.
I would setup this kind of thing for my home, but wouldn't have a use for any of it really. Do your family members use these or no?
If I could get some justification for setting up these kinds of solutions, then I would absolutely do it.
-
One thing that I have found beneficial is to set up applications on multiple linux distros. Since you're focusing on Redhat stuff, I'd suggest CentOS and Fedora... Install and configure Nextcloud on both... Install and configure Mysql on both, etc, etc. Once you get comfortable doing it in a Redhat world, switch up and do it in the SuSE land, or Ubuntu land.
You'll see that, as @scottalanmiller mentioned, a lot of the things will cross distros nicely and without change. Other things will likely change from one distro to the next.
Also, to whoever was wanting to set up a Calendaring site, NextCloud can do this too.