From nobody Sun Oct 10 21:49:23 2021 X-Original-To: questions@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 9AB9117EBE54 for ; Sun, 10 Oct 2021 21:49:27 +0000 (UTC) (envelope-from dpchrist@holgerdanske.com) Received: from holgerdanske.com (holgerdanske.com [184.105.128.27]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "xray.he.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4HSFvB4qfDz4ssd for ; Sun, 10 Oct 2021 21:49:26 +0000 (UTC) (envelope-from dpchrist@holgerdanske.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=holgerdanske.com; s=nov-20210719-112354; t=1633902564; bh=9CP57kegU+VykyoDJpc3/znvRcp9t3MOOf2ajGFdtZ4=; h=Received:Message-ID:Date:MIME-Version:User-Agent:Subject: Content-Language:To:References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding; b=ffB43CBbFDHM4+68HtFc1KuVrdAc/+YzG+LLtLpcsGKB+99IkIqLEYfoTpvMSKYcV PFyjVjUz9W4imVf1YCQovWnxfNIkBfkoWeh4kaUO8faAQY7YnT0nS/PTe7YKQ6ddOT GiCqovXh00Hhj+jnRxwGlMCRZm0efyByJFupVljWN0t28I0n67/Via+P+CW8mztXd+ B50zkb+m+JNdjVcrcWddR9SD8KGJ1tUsQQUiTpnuKY8WprR58DfusmLXiTUndPQjCb xrJVv2l3DAxbP7gppY0WVDzLgTayuYuQdZlPASnOUKlvB/puu+9hfJ4sGI7yxwkdJD tRi0mgcMPfiEfdcDSzhHpMWL6T0GpIqCluJavEeM0JQZJdOtbk1LyKo+qxfzzVJz97 AixAfAWdyG1mDz+bhC7fGa9pzbWfk/07WblH+NtlfD1dk5k1S+s6+7MRoNdWJIoSZZ vFgLJhMEPKZthWbFyhR2nz6FauUInU1RRT3kDTHJaDjqgsRyBJmKaC0uHOvPxTJDAS zuXfZNdya2oK6bc/2Q//RkcZdupY0x1cuukWltmpo/R8ufjE3Va1arMMF+EqD3rZLR iY+lPHbhbTTMUyoGpkRD2kAll2fyKiL7S02VYNBEmLsm3+25WHuRcGrU3qnh6Cm8fG KhibJAjoqp6xBBXxxzlRQxT8= Received: from 99.100.19.101 (99-100-19-101.lightspeed.frokca.sbcglobal.net [99.100.19.101]) by holgerdanske.com with ESMTPSA (TLS_AES_128_GCM_SHA256:TLSv1.3:Kx=any:Au=any:Enc=AESGCM(128):Mac=AEAD) (SMTP-AUTH username dpchrist@holgerdanske.com, mechanism PLAIN) for ; Sun, 10 Oct 2021 14:49:24 -0700 Message-ID: Date: Sun, 10 Oct 2021 14:49:23 -0700 List-Id: User questions List-Archive: https://lists.freebsd.org/archives/freebsd-questions List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-questions@freebsd.org X-BeenThere: freebsd-questions@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 Subject: Re: best software for managing multiple freebsd & linux machines ? Content-Language: en-US To: questions@freebsd.org References: From: David Christensen In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4HSFvB4qfDz4ssd X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=holgerdanske.com header.s=nov-20210719-112354 header.b=ffB43CBb; dmarc=pass (policy=none) header.from=holgerdanske.com; spf=pass (mx1.freebsd.org: domain of dpchrist@holgerdanske.com designates 184.105.128.27 as permitted sender) smtp.mailfrom=dpchrist@holgerdanske.com X-Spamd-Result: default: False [-3.00 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[holgerdanske.com:s=nov-20210719-112354]; MID_RHS_MATCH_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; R_SPF_ALLOW(-0.20)[+a]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[questions@freebsd.org]; TO_DN_NONE(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; DKIM_TRACE(0.00)[holgerdanske.com:+]; DMARC_POLICY_ALLOW(-0.50)[holgerdanske.com,none]; NEURAL_HAM_SHORT(-1.00)[-1.000]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; SUBJECT_ENDS_QUESTION(1.00)[]; ASN(0.00)[asn:6939, ipnet:184.104.0.0/15, country:US]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[] X-ThisMailContainsUnwantedMimeParts: N On 10/10/21 13:40, tech-lists wrote: > On Sun, Oct 10, 2021 at 12:20:29PM -0700, David Christensen wrote: > >> I have a SOHO network that I administer using SSH, Vim, CVS, various >> userland tools, and homebrew scripts (Bourne, Bash, and Perl).  The most >> important element is a networked version control system. >> >> If and when I need to administer many machines, I will learn a >> configuration management tool (most likely Ansible, because it is >> recommended by MWL). > > Thanks for this. After looking at puppet for an hr or so, it's looking > to me like it's a tad too complex for my needs right now. But it might > be useful in eg having to restart a load of servers without logging into > each one via ssh. > > I'm looking at sshfs atm - could make a dir for each machine and sshfs > into each from the host using keys. At least the sshfs way is not having > to run servers that would not otherwise be run. I can't restart services > this way though. I use sshfs(1) to mount LAN machine filesystems (read-only) onto a sysadmin workstation (Debian 9), when I want to burn files to optical disk (e.g. archives). I can see how mounting multiple host filesystems with sshfs(1) would be useful for comparing configuration settings (e.g. files). But, I do not use sshfs(1) for administration (e.g. editing system configuration files). I use SSH, Vim, and a networked version control system (CVS): 1. On each machine, I create a CVS project named after the host: dipsy.tracy.holgerdanske.com 2. I check out a CVS working directory under root's home directory: /root/dipsy.tracy.holgerdanske.com 3. Inside the working directory, I create a plaintext log file for my notes, console sessions, etc., and check it in: /root/dipsy.tracy.holgerdanske.com/log.txt 4. I also create a plaintext file listing all of the packages I have installed, and check it in: /root/dipsy.tracy.holgerdanske.com/packages 5. I can create additional child directories as required, add content, etc., and check them in. 6. I must be careful to choose CVS working directory file and directory names that do not conflict with anything in the host root directory. 7. When I want to edit or delete a system configuration file (for example, /etc/hosts), I copy the live file into a parallel directory in the CVS working directory, and check in the file: /root/dipsy.tracy.holgerdanske.com/etc/hosts 8. When I am done working on the file, I check in the final copy. Similarly, I check in any created files. 9. I can use diff(1) to verify that the live system configuration files and the CVS project working directory files have identical contents: 2021-10-10 14:27:39 root@dipsy ~/dipsy.tracy.holgerdanske.com # diff -r / . | grep -v Only I am using the tools at a basic level, which means minimum learning curve, minimum typing, etc., but I am getting a lot of benefit. :-) The above workflow is a huge improvement over my previous ad-hoc processes using rsync(1), scp(1), cp(1), sneakernet, etc.. Most notably, the former processes were error-prone. The most obvious challenge with using a networked version controls system is "what do you do when the network and/or the version control server go down?". David