Requests for learning Advice and Good Books/Manuals

Hello everyone, I am feeling a bit behind everyone here. I am wondering if anyone can suggest some reading or order of learning for running a server.

Is coding something I should learn and if so what language?
Networking…what aspects do I need to know?
Specific hyper visors? Should I just read all the supporting docu,amts?
Linux…what should I learn?
Scripting (language)

To narrow it down a bit, I am running a proxmox server at the moment with just pi hole and plex. I also use native proxmox zfs and samba to share files over the home network. I also have interest in trying Citrix and VMware. I only have the one server, and my other PC’s arent compatable with Citrix, Proxmox and VMware so I cant use them as a test bed. I also am not well versed in saving a proxmox setup to roll back to. I have a feeling I need a bit larger vocabulary as well as experiance with command line useage.

I know this is a big ask, but I’m hoping for some good resources to help me along in my development. I dont know if I should use a vm of a particular distro, or try nesting???

I have nothing to do all day (medically retired Veteran) and am trying to be busy. I really appreciate any help. I am very hardware savy, I am also a windows super user I’d say, but I really want to learn linux. Below is a build log of my progress. Learning is a bit difficult so I use a lot of notes in Notepad++ because of my memory. Thanks again in advance everyone.

1 Like

For basic server admin stuff, I would recommend getting a feel for bash scripting at least. There is a halfway decent beginners guide here.

As for any other programming languages, that really depends on if you have a problem you are trying to solve. Don’t go looking for solutions in search of a problem.

The various languages all excel at something different. For example, if you need just basic automation and do not care about performance then something like Python is great. If you want something a bit more powerful that needs to do some low-level stuff, C or C++ or D would work. TLDR; it depends.

Go watch this YouTube series. If you squeeze in a few hours a day it should take you about a week to power through. You don’t need to really dig in deep into the details (knowing which bits indicate what flags in an IPv4 vs IPv6 packet, for example), but you should have a surface-level knowledge of what is out there.

Think of it like memorizing something versus just having an index of what terminology is out there. You don’t have to know everything by heart, you just need to know where to look to find certain information.

Whatever makes you happy. Test some out, or test them all out.

I would at least glance over their wikis and get an overview of the available features, and dig more into it if you find something you are interested in. Again, the point isn’t to know everything by heart, you just need to know where to look to learn more. Maybe I am a lost cause, but I personally find reading documentation kinda fun.

Get familiar with the filesystem layout. Once done with that, bookmark a Bash cheat-sheet and Linux commands cheat-sheet for future reference.

I lost the original, but a few years back I set my desktop wallpaper to be a cheat-sheet itself. Something like this:

snip


Lastly, and you are on the right track with taking notes, but I would recommend building yourself a little wiki documenting the things you learn and the pain points you have had. My own copy is just a directory in my Nextcloud instance with markdown files, but everything is nicely tagged to make searching through easier. There is no right answer on what to do, just whatever works for you bud.

4 Likes

Thank you for this. I’ll look into what it takes to set up a wiki. Find a way to post my notes there. I have a lot more than what I have done here. Including failures and sources that work and don’t. I’m getting better referencing what I need. I think the part that has me lost at the moment is system emails for proxmox, as well as zed for zfs. I have the test emails working with the post fix, but for some reason when I run a scrub I’m not getting any emails. From what I read it will take scripts, but I want to understand what a piece of code does and not just paste it in and go hey that worked… if I can’t get some bearing on what it’s doing its hard to feel safe adding it in. Maybe I’m too security conscious who knows. Either way, thanks alot I’ll look into these items.

If you don’t mind spending a bit (more), consider the excellent book “Unix and Linux Administration Handbook” by Prentice Hall. I have the 4th Edition, but the next one is already out and on Amazon for approx 60 USD.

Apart from teaching stuff when you first read it, it’s also excellent reference material later. IMO worth the money if you’re serious getting into Linux, networking, etc.

2 Likes

Excellent. Thank you. I do not mind spending money on any worthwhile books to learn either. I probably should have mentioned that. Currently I am working my way through “linux Bilble” by Wiley, “Networking all in one for dummies” by Lowe, “How Linux Works” Ward, and “The Linux Command Line” by Shotts.
Some I have started, others I’m part way in. SO dedicating some time everyday to read more. I atempted using them as a reference, but I really need the begining steps to understand how they work.
Thanks again. I’ll look into that book.

I highly recommend doing whatever the fuck you want. Like seriously. Do whatever you want with the stuff that you have and just find something cool to do with it.

I didn’t read books on high performance computing, I got 20 pentium 4 machines and made a cluster.

I didn’t watch ccna videos, I went nad bought a catalyst 3750 as a starter piece.

Etcetera.

Thank you, thats what Im trying to do. I’m just trying to find good ways to learn. I’m setting up a second server so I can keep up the one I have. If i mess up the first one its down and I loose access to files plex etc. This really upsets my wife. I cant decide between finding a decent xeon tower, or buying a second Asrockrack X470du to put in my other Matx case. I just ran into issues resolving email notifications and implementing some security so I wanted to reachout for some resources. Thank you.

Just kidding.

For me, reading books is very helpful. Not because they make me know everything, but rather, when a problem came up, I knew where to find the answer. I can’t tell you how many time I have looked up specific sections/chapters of linux reference books I have when there was an issue.

Books:

Word of advice on linux. Do EVERYTHING on a shell. Learn how to read log files using less. You can start with the syslog. Learn to edit text files with vi. Become dangerous with sed, awk and grep. Know how to see running processes (ps / top). Literally, do everything on your shell. That all I can give you for linux.

Network: For me networking never became something I really understood until I had to start doing it hands on. In the sense, I never admin a firewall till I had to, or setup new routes and carve out /24s from a /16. However, some basics are easy to learn.

Learn your network protocol and how they deliver services to network:
SMTP, HTTP, SNMP, DNS, DHCP, NTP.

For SMTP - figure out how email is sent and all the components (there’s more than meets the eye). For HTTP - figure out how to setup HTTPS for encrypted traffic. With DNS - start simple - what’s an A record and MX record. DHCP - figure out scopes and extra credit if you can figure out how to assign hostnames via DHCP (this is how at least one cloud assigns instance hostnames, but I suspect they all do it this way). NTP is important because, well if you use keberos, or any synchronization based protocols, your systems better be in sync.

Hypervisor: Ask yourself why, then find the technology to get your there. Want to run your own cloud - build a kvm host. Want to be a traditional infrastructure engineer - VMWARE. Want to do it yourself? KVM+OVirt. If you’re getting into this territory, you’ll want to learn about SANs and NAS because your going to need storage.

Coding/scripting: My advice - start using bash (you’ll level up on linux too). Then learn how to program. Pick any language like php, ruby, javascript, python and learn how to solve problems with code. As a word of advice, if you’re wanting to learn devops - stick to python because it’s very closely related to ansible and the idea of list and set are closely related in Terraform. No matter what you do, get the basics – If/then, while loops, for loops, variables. These languages cut through alot of the crap and overhead and just let your write code. Learn the basics and how to apply them to problems.

Then spend time learning a bit about Java, C#, C or C++. Learn your datastructures and algo in these languages.

Finally, learn how to query a DB using SQL.

What’s important isn’t to learn a language, but teach yourself how to structure your approach to solving problems using automation. Once you have the structured approach down, most imperative languages are not that hard to pick up.

Good luck!

cotton

2 Likes

WOW…Thank you so much. I really appreciate it. The problem right now I am facing (after about 4-5 months in) is with E-mails. I had set up my one segment the (post fix?) and was able to send a email from the server, but I need to findout how the server is using thst program and with what parameters. From what I gather there is proxmox monitoring disk health (I dont know if this is done regularly-so I need to find that out) and I belive that is all. I also have ZED for zfs that should be monitoring my zpools and seding emails (Via Verbose is set to 1 which should send info if drives are healthy or not) but I need to make sure that program is using the “mail” program properly. THEN I also have the IPMI for the motherboard that does monitoring…there has to be a way to funnel this data all to the same place/email report for my weekly scrubs and checks.
Right now I think it just is so much I dont know where to attack it from to get started.
This is why I have taken a step back. I think reading my refrences and those provided can help me solve the issue and learn. Right now there really is no “problem” with my server (running plex on LXC with GPU passthrough), Pi-Hole (recursive DNS-still dont understand this on, but it works), and hosting my drives with media shares, file sharing directly from proxmox with samaba sharing using a guide from on here.
I solved a lot of issues listed in [Build Log] Home lab in a box (first time trying)-x470d4u Proxmox - #10 by HaaStyleCat.
I am looking into other home services to run like RADARR SONARR? I cant remember…that might be grey area computing torenting? I avent looked that deep yet.
Mostly I had been concerned about security, but besides setting up a basic firewall on proxmox at the diffrent levels, changing ports for ssh, having strong passwords, and I tried disabling root login (did not go so well) for proxmox. Thats about all I have.
Thing I’m wanting to do next is isolate a set of personal files in a folder to only share with IP’s or MAC’s addresses I select, and let the other media be shared freely locally ONLY. I dont know if this is needed but would make me feel better as there are senstive things on the drive (IE military records/court findings/marriage certs etc.).
So thats where I am at. Sorry for the wall of text. I can get distracted (oooo shinny) or just space out due to TBI. I’m using tools like notepads and programs and apps to keep me on the right track but sadly I cant focus all day when I want so sometimes I lose my place. I keep working it though because problem solving is so much fun for me.

2 Likes

So now once I get my Dell Poweredge T320 I will be able to mess around a bit with libraries, data sets, ways of sharing my files, and different programs. I wonder if I am going about this the wrong way.

My GOAL is to learn enterprise software and solutions…BUT there are some great solutions out there for my home use.

Here’s one example. For my file sharing I am using the Proxmox ZFS file system and sharing it via SSH. While this works and I can get the job done using the CLI to learn, I’m sure there are better solutions out there such as TrueNAS and now I read some on NextCloud. I’m betting these would allow me to do some interesting things.

So my QUESTION is… (This software will be used to manage file shares on my network to other computers, VM’s and possibly shares to my phone while I away from the home notwork once I feel comfortable with security. Data will include documents, video files as well as music)

1.) What enterprise solutions for data management do you recommend or use?

2.) What home server file management do you use or recommend?

I would love to hear more about what is out there and peoples experiences. Just no flame wars or whos is better please unless you have a good reason why, or personal that turned you off to a particular file share solution.

People have given you good advice. Something that comes to mind that hasn’t been mentioned but is a useful skill: Setup a software stack like the one you need for Nextcloud once manually in a VM, like you would on any bare metal system, once using a premade docker container i.e. from Docker Hub and then try to create a docker container for this purpose on your own. This is one of many good examples that will let you appreciate containerization technologies that are widely used these days.

3 Likes

Perfect. Thank you. I will look into that. I’ll also be trying your guide so I can learn some more about ZFS as well as encrypting just for a little more security. I really only have one shared folder I worry about that has personal information on it. It’s fully backed up always but that extra security would make me feel a little safer.

2 Likes