View previous topic :: View next topic |
How many Gentoo machines do you maintain? |
1 |
|
24% |
[ 28 ] |
2 |
|
14% |
[ 17 ] |
3 |
|
16% |
[ 19 ] |
4 |
|
13% |
[ 16 ] |
5 |
|
4% |
[ 5 ] |
more than 5 |
|
24% |
[ 28 ] |
what the hell, you run Gentoo? You masochist... |
|
1% |
[ 2 ] |
|
Total Votes : 115 |
|
Author |
Message |
Tony0945 Watchman
Joined: 25 Jul 2006 Posts: 5127 Location: Illinois, USA
|
Posted: Wed Feb 17, 2021 4:24 pm Post subject: |
|
|
My machines are all on a LAN so i just mount portage as a samba share. I can see that you wouldn't want to do that over the internet.
Easy way is to just tar up portage and e-mail it. assuming you have sufficient bandwidth. With all these python surprises I now tar up my portage before syncing so I can revert. |
|
Back to top |
|
|
gtwrek Tux's lil' helper
Joined: 10 Mar 2017 Posts: 110 Location: San Jose, CA
|
Posted: Wed Feb 17, 2021 4:34 pm Post subject: |
|
|
Quote: | My machines are all on a LAN so i just mount portage as a samba share. |
What do you mean you "mount portage" - exactly which directories do you share between machines?
I've found one of the things that's reasonable to share between machine is /var/cache/distfiles
(I use NFS, not Samba).
But I'm not convinced other "portage" directories are easy to share reliably between machines. What are your experiences? |
|
Back to top |
|
|
eccerr0r Watchman
Joined: 01 Jul 2004 Posts: 9824 Location: almost Mile High in the USA
|
Posted: Wed Feb 17, 2021 5:12 pm Post subject: |
|
|
As I refer to the portage tree frequently and to try to keep machines somewhat independent of each other, each machine has its own portage. Distfiles I tend to purge on most machines except for one machine that I keep all that I download. I sync to one machine's portage tree.
Not sure it helps much either way however, same amount of effort to maintain all machines overall, but it does reduce bandwidth used so it.
Now the question is whether I should share the USE flags (including portage.use, portage.accept_keywords, etc.) between all machines where I can... would it make it easier to maintain them all even if they have different world files? Probably not, but it was an idea... _________________ Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching? |
|
Back to top |
|
|
Hu Administrator
Joined: 06 Mar 2007 Posts: 22673
|
Posted: Wed Feb 17, 2021 6:21 pm Post subject: |
|
|
gtwrek wrote: | Quote: | My machines are all on a LAN so i just mount portage as a samba share. |
What do you mean you "mount portage" - exactly which directories do you share between machines? | Usually, this refers to the directory historically known as $PORTDIR. It was /usr/portage, though newer systems now put it under /var. eccerr0r wrote: | Now the question is whether I should share the USE flags (including portage.use, portage.accept_keywords, etc.) between all machines where I can... would it make it easier to maintain them all even if they have different world files? | It might make things easier, in two ways. First, with fewer configurations, you would be less likely to encounter a problem that is unique to one machine. Instead, if one system fails, it is likely the others will fail in the same way, and the same solution will be usable across all of them. More importantly, if one system succeeds, then all the others will likely succeed too, so you can spend less time troubleshooting updates on systems after the first. Second, if they are similar enough, you may be able to make the systems share packages, saving you redundant compilations. |
|
Back to top |
|
|
eccerr0r Watchman
Joined: 01 Jul 2004 Posts: 9824 Location: almost Mile High in the USA
|
Posted: Wed Feb 17, 2021 6:33 pm Post subject: |
|
|
I ended up thinking sharing USE flags/Accept_keywords may not save much effort overall because if I end up setting specific PYTHON_TARGETS for dependencies for software I don't use on other machines (like I don't want to have MythTV installed on all machines)...
Don't know. But yes, I was hoping that all machines would fail the same way even if they don't have the same software installed, therefore reducing the amount of effort debugging merge issues, but it'd reduce flexibility of portage which would increase other problems. _________________ Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching? |
|
Back to top |
|
|
Tony0945 Watchman
Joined: 25 Jul 2006 Posts: 5127 Location: Illinois, USA
|
Posted: Wed Feb 17, 2021 8:28 pm Post subject: |
|
|
Regarding sharing use flags: yes and no. I have quite a lot of base use flags, usually shut off, i.e. -systemd -avahi ... that I put in make.conf and another set in package.use that are tailored to each package as I don't have all of the same packages on every machine.
I thought of putting the big list from make.conf into a custom profile, but didn't understand the wiki on how to do it nor the help I got from forum. I'm not a very geometric guy so I still don't understand "profile to the left" and "profile to the right". |
|
Back to top |
|
|
figueroa Advocate
Joined: 14 Aug 2005 Posts: 3005 Location: Edge of marsh USA
|
Posted: Wed Feb 17, 2021 8:53 pm Post subject: |
|
|
I wouldn't share USE flags here. My server and desktop are not sufficiently alike even though they started out the same.
I emerge --sync from my server. I could share distfiles but I don't think I would gain much in bandwidth. And, if my server were to go off-line, I don't want my desktop's portage to be dependent upon it.
I do heavily use NFS and find it perfectly reliable on my LAN, and the LAN at the school. Through NFS I use the server's web server, extra storage, and it's downloads directory. These are mounted full-time. Others I can mount on-demand. _________________ Andy Figueroa
hp pavilion hpe h8-1260t/2AB5; spinning rust x3
i7-2600 @ 3.40GHz; 16 gb; Radeon HD 7570
amd64/23.0/split-usr/desktop (stable), OpenRC, -systemd -pulseaudio -uefi |
|
Back to top |
|
|
eccerr0r Watchman
Joined: 01 Jul 2004 Posts: 9824 Location: almost Mile High in the USA
|
Posted: Thu Feb 18, 2021 6:01 am Post subject: |
|
|
Fortunately there wasn't too much interaction needed for my netbook, though there was some (like that *#@$ gcc-config CHOST issue which I can sort of ignore because it's not causing build failures though stuck with gcc-9.2).
Finally on Feb 20 at just shy of 5 days (4 days 18 hours), my Atom N270, *with distcc help* minus about 9 hours of idle time due to merge death (sci-libs/lapack having problems with ninja/cmake and dev-qt/qtmultimedia getting amd64 object file back from distcc) and an "unexpected" "power outage" (oops, compiling on battery power does not last long) it completed ~780 total packages to update.
2021-02-16T14:16:22 >>> sys-devel/gcc-9.3.0-r2: 12:51:37
2021-02-18T07:21:21 >>> dev-lang/rust-1.47.0-r2: 28:09:38
2021-02-20T04:44:34 >>> www-client/firefox-78.7.1-r1: 12:11:08
Now when do we do this again ... _________________ Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching? |
|
Back to top |
|
|
mimosinnet l33t
Joined: 10 Aug 2006 Posts: 716 Location: Barcelona, Spain
|
Posted: Sun Feb 21, 2021 4:22 pm Post subject: |
|
|
gtwrek wrote: | What do you mean you "mount portage" - exactly which directories do you share between machines? |
- Home: NFS server (binhost) that builds 4 boxes (ryzen binhost, phenom, AMD FX, pentium x32).
- Work: 1 intel binhost that builds for 1 server 2 core2 laptops and 1 Pentium N3700 laptop.
- Work: 1 desktop with a cron job to update the system.
- Work: 1 AMD server that builds for 2 amdfam10 servers.
This is the NFS configuration at home:
fstab on one of the nfs clients:
Code: | mimoserver:/portage /etc/portage nfs noauto,rw,suid,dev,noexec,nouser,async 0 0
mimoserver:/repos /var/db/repos nfs noauto,rw,suid,dev,noexec,nouser,async 0 0
mimoserver:/binpkgs /var/cache/binpkgs nfs noauto,ro,suid,dev,noexec,nouser,async 0 0
mimoserver:/distfiles /var/cache/distfiles nfs noauto,ro,suid,dev,noexec,nouser,async 0 0 |
fstab on the nfs server:
Code: | # nfs server
/var/db/repos/gentoo /mnt/chroot/amdfam10/var/db/repos/gentoo none bind 0 0
/var/db/repos/gentoo /mnt/chroot/phenom/var/db/repos/gentoo none bind 0 0
/var/db/repos/gentoo /mnt/chroot/pentium/var/db/repos/gentoo none bind 0 0
# amdfam10
/var/cache/distfiles /mnt/exports/distfiles none bind 0 0
/mnt/chroot/amdfam10/etc/portage /mnt/exports/portage none bind 0 0
/mnt/chroot/amdfam10/var/db/repos /mnt/exports/repos none rbind 0 0
/mnt/chroot/amdfam10/var/cache/binpkgs /mnt/exports/binpkgs none bind 0 0
# phenom
/mnt/chroot/phenom/etc/portage /mnt/exports/phenom_portage none bind 0 0
/mnt/chroot/phenom/var/db/repos /mnt/exports/phenom_repos none rbind 0 0
/mnt/chroot/phenom/var/cache/binpkgs /mnt/exports/phenom_binpkgs none bind 0 0
# pentium
/mnt/chroot/pentium/etc/portage /mnt/exports/pentium_portage none bind 0 0
/mnt/chroot/pentium/var/db/repos /mnt/exports/pentium_repos none rbind 0 0
/mnt/chroot/pentium/var/cache/binpkgs /mnt/exports/pentium_binpkgs none bind 0 0 |
The server updates each configuration in a chroot and, afterwards, I install the system in each box. As I do not have a technical background (social sciences, just gentoo know-how), I am unsure that this is an optimal NFS configuration. Nevertheless, it works and rapidly updates an old i686 Pentium M laptop.
Cheers! _________________ Please add [solved] to the initial post's subject line if you feel your problem is resolved.
Take care of the community answering unanswered posts. |
|
Back to top |
|
|
teika Apprentice
Joined: 19 Feb 2011 Posts: 163 Location: YYYY-MM-DD, period. Have you ever used the Internet?
|
Posted: Wed Mar 03, 2021 7:05 am Post subject: |
|
|
I'm not sure if Gentoo is for me, after 15 years of using Gentoo...
Code: | [U] dev-libs/npth
Available versions: 1.6-r1
Installed versions: 1.3(2017-06-20)(-static-libs)
Homepage: https://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git
Description: New GNU Portable Threads Library
[U] app-editors/nano
Available versions: 4.9.3 5.3-r1 ~5.4 ~5.5 **9999*l {debug justify (+)magic minimal ncurses nls slang +spell +split-usr static unicode}
Installed versions: 2.5.3(2016-12-15)(magic ncurses unicode -debug -justify -minimal -nls -slang -spell -static)
Homepage: https://www.nano-editor.org/ https://wiki.gentoo.org/wiki/Nano/Basics_Guide
Description: GNU GPL'd Pico clone with more functionality |
(Note the installation dates.)
One Gentoo box I have is already a burden. |
|
Back to top |
|
|
mouacyk n00b
Joined: 23 Mar 2009 Posts: 23
|
Posted: Fri Jun 04, 2021 7:45 pm Post subject: |
|
|
So there are no solutions yet to produce multiple binaries from the same compile, with gcc or clang? I've been searching over the years to no avail. _________________ OCed24/7: 9900K5.0GHz//16GB4000MHzC16//1080Ti2.10GHz
OCed24/7: 1680v24.5GHz//32GB2333MHzC10//750Ti[GHz |
|
Back to top |
|
|
nahsi n00b
Joined: 03 Jul 2017 Posts: 3
|
|
Back to top |
|
|
gtwrek Tux's lil' helper
Joined: 10 Mar 2017 Posts: 110 Location: San Jose, CA
|
Posted: Mon Oct 04, 2021 6:16 pm Post subject: |
|
|
Admins at my place of employment use Ansible (for non-Gentoo boxes). I've been curious about the product, but haven't really dug in to learn much.
How well does Ansible mesh with Portage? They both seem to have many overlapping roles. I'm curious how one would setup a workflow using both... |
|
Back to top |
|
|
nahsi n00b
Joined: 03 Jul 2017 Posts: 3
|
Posted: Mon Oct 04, 2021 6:48 pm Post subject: |
|
|
gtwrek wrote: | Admins at my place of employment use Ansible (for non-Gentoo boxes). I've been curious about the product, but haven't really dug in to learn much.
How well does Ansible mesh with Portage? They both seem to have many overlapping roles. I'm curious how one would setup a workflow using both... |
After many years of using Ansible at work I developed my own "style" sort of speak of how I do things. A couple of tricks that I copypaste.
Basically every role or playbook is just a combination of three task: install/download binary, create directories, copy configs.
Instead of maintaining jinja template of every config file I usually store configuration files as plaintext in inventory, like this:
Code: | router_unbound_configs:
antiochia: |
server:
interface: 192.168.100.10@53
interface: 172.17.0.1@53
interface: 127.0.0.1@53
access-control: 192.168.1.0/24 allow
access-control: 172.17.0.0/24 allow
access-control: 192.168.100.0/24 allow
consul: |
server:
private-domain: "consul"
domain-insecure: "consul"
stub-zone:
name: "consul"
stub-addr: 127.0.0.1@8600 |
Then I loop over router_unbound_configs with playbook/role like this:
Code: | - name: copy unbound configs
copy:
content: "{{ file.value }}"
dest: "/etc/unbound/conf.d/{{ file.key }}.conf"
owner: root
group: unbound
mode: 0640
validate: "unbound-checkconf %s"
notify: restart unbound
loop: "{{ router_unbound_configs | dict2items }}"
loop_control:
loop_var: "file"
label: "{{ file.key }}"
|
Even better if service understands json/yaml you can store config in yaml in inventory:
Code: | consul_config:
datacenter: "oikumene"
encrypt: "{{ lookup('hashi_vault', 'secret/data/gossip:consul') }}"
data_dir: "/var/lib/consul/"
enable_syslog: true
# "trace", "debug", "info", "warn", "err"
log_level: "info"
syslog_facility: "LOCAL5"
rejoin_after_leave: true
bind_addr: "{{ gotmpl_private_address }}"
addresses:
http: "127.0.0.1 {{ gotmpl_private_address }} {{ gotmpl_docker }}"
dns: "127.0.0.1 {{ gotmpl_private_address }}"
enable_local_script_checks: true
telemetry:
disable_compat_1.9: true
disable_hostname: true
prometheus_retention_time: "30s"
server: false
retry_join: "{{ consul_servers }}"
|
And then copy to host with to_nice_json:
Code: | - name: create consul configuration
tags: configuration
copy:
content: "{{ consul_config | to_nice_json }}"
dest: "{{ consul_dir }}/consul.json"
owner: consul
group: consul
mode: 0640
validate: "consul validate -config-format=json %s"
notify: restart consul
|
So, actions are in roles/playbooks, variables/configs in inventory. Everything is in code, every configuration is in one place (in git) with history of changes.
It is very easy to manage Gentoo with ansible since everything is in plaintext, you don't have to write your own modules to do stuff.
This is how I manage useflags:
Code: | base_portage_package_use_pergamon:
system: |
media-libs/mesa -classic -gles2
pergamon: |
media-plugins/hyperion -v4l -qt-grabber -zeroconf
# xorg-server
x11-libs/libdrm video_cards_radeon
# messengers
app-text/ghostscript-gpl cups
base_portage_package_use: >
{{
base_portage_package_use_pergamon |
combine(base_portage_package_use_desktop, recursive=true) |
combine(base_portage_package_use_all, recursive=true)
}}
|
base_portage_package_use_all is at the group_vars/all so it is a default for everyhost
Code: | base_portage_package_use_all:
common: |
sys-devel/gcc pgo
dev-lang/rust clippy rls rustfmt
net_misc/openssh -pam
net-analyzer/tcpdump -samba -smi
|
base_portage_package_use_desktop is at the group_vars/workstations (group for desktops/laptops)
Code: | base_portage_package_use_desktop:
desktop: |
media-video/ffmpeg chromium libdrm x264 x265 webp vpx vorbis theora
media-gfx/imagemagick -X
media-video/pipewire pipewire-alsa extra
media-libs/freetype harfbuzz
sys-apps/util-linux caps # for pfl
app-text/hunspell l10n_en l10n_ru
media-fonts/noto cjk
media-fonts/nerd-fonts firacode
# chromium
www-client/chromium widevine official -suid -js-type-check
net-libs/nodejs inspector
# emulation
app-emulation/virtualbox -* headless python_single_target_python3_9
app-emulation/qemu spice gtk
app-emulation/virt-viewer -libvirt -vnc
net-misc/spice-gtk gtk3 lz4
# jellyfin mpv shim
media-tv/jellyfin-mpv-shim shaders
media-video/mpv libmpv
# theme
dev-qt/qtgui dbus
x11-themes/arc-theme gtk3
# gnupg
app-crypt/pinentry gtk
app-crypt/gcr gtk
# ansible
net-libs/zeromq drafts
dev-lang/python sqlite
# qutebrowser
www-client/qutebrowser scripts
dev-python/PyQt5 declarative printsupport widgets gui network opengl sql multimedia webchannel websockets dbus svg
dev-libs/libpcre2 pcre16
sys-libs/zlib minizip
dev-qt/qtmultimedia widgets
dev-qt/qtwebengine widgets
dev-qt/qtwebchannel qml
media-libs/libvpx svc
dev-libs/nss utils # certutil
# xdg-utils
app-text/xmlto text
steam: |
x11-libs/libX11 abi_x86_32
x11-libs/libXau abi_x86_32
x11-libs/libxcb abi_x86_32
x11-libs/libXdmcp abi_x86_32
x11-base/xcb-proto abi_x86_32
virtual/opengl abi_x86_32
media-libs/mesa abi_x86_32
dev-libs/expat abi_x86_32
media-libs/libglvnd abi_x86_32
sys-libs/zlib abi_x86_32
x11-libs/libva abi_x86_32
x11-libs/libvdpau abi_x86_32
x11-libs/libdrm abi_x86_32
x11-libs/libxshmfence abi_x86_32
x11-libs/libXext abi_x86_32
x11-libs/libXxf86vm abi_x86_32
x11-libs/libXfixes abi_x86_32
x11-libs/libpciaccess abi_x86_32
app-arch/zstd abi_x86_32
sys-devel/llvm abi_x86_32
x11-libs/libXrandr abi_x86_32
x11-libs/libXrender abi_x86_32
dev-libs/libffi abi_x86_32
sys-libs/ncurses abi_x86_32
x11-libs/libva-vdpau-driver abi_x86_32
x11-libs/libva-intel-driver abi_x86_32
virtual/libelf abi_x86_32
dev-libs/elfutils abi_x86_32
app-arch/bzip2 abi_x86_32
|
pergamon itself is a desktop that has platform specific useflags Everything is combined at host_vars/pergamon and in the end we have base_portage_package_use map that is expected by base role with 5 keys: common, desktop, steam. system, pergamon.
Code: | - name: copy useflag files
copy:
content: "{{ file.value }}"
dest: "/etc/portage/package.use/base-{{ file.key }}.use"
owner: root
group: root
mode: 0644
notify: update use
loop: "{{ base_portage_package_use | dict2items }}"
loop_control:
loop_var: "file"
label: "{{ file.key }}"
|
On the other host it might be: common, server etc
Ansible will register present useflags, copy/update from inventory, delete the delta and run `emerge`.
It looks complicated compared to "ssh to host, change by hand", but it is scalable and very worth doing if you have more than one host.
Last edited by nahsi on Mon Oct 04, 2021 7:07 pm; edited 1 time in total |
|
Back to top |
|
|
gtwrek Tux's lil' helper
Joined: 10 Mar 2017 Posts: 110 Location: San Jose, CA
|
Posted: Mon Oct 04, 2021 7:01 pm Post subject: |
|
|
@nahsi
Thank you very much for your detailed reply. Some things to think about there for those of us who maintain (too many) boxes... |
|
Back to top |
|
|
pjp Administrator
Joined: 16 Apr 2002 Posts: 20485
|
Posted: Mon Oct 04, 2021 7:37 pm Post subject: |
|
|
EDIT: I guess I took too long to finish this before nahsi replied.
I don't know how well it meshes with portage, but ansible uses YAML config files to "do the same thing" on multiple boxes. To ensure that some software was installed, the ansible instructions would use apt, yum or (theoretically) emerge to install the software. The actual installation is handled by the package manager (at least in the limiited capacity I tested ansible).
There is a learning curve, but it seems useful for some number of systems. There's a point at which people become concerned with scalability, but I don't have experience with that situation (you could probably search for discussions about that... I believe they seem to be more "web-scale" related issues).
Other factors beyond learning curve include the audience of who is maintaining the tool / configuration. Chef, Salt and others rely more on programming (python, ruby or maybe something else). And while that may be "more powerful", YAML is more comparable to maintaining config files on a system, so it at least seems easier to get started unless you are already comfortable enough with programming in general or at least the specific language used by a given tool.
YAML itself has its own issues. There are some "idiosyncrasies" that are not intuitive and possibly not clearly defined. At least when I was evaluating it, "improper" indentation could cause non-obvious problems, which in one case, I found difficult to track down (the non-obvious part).
Due to the learning curve, I'd recommend trying to be as "generic" in approach to implementing the config files and their file system layout as possible. That way if you find that your initial solution isn't working, it is easier to redo. I don't have a succinct explanation, but I can offer an example.
You want all systems to use the same sshd_config file. You define the ansible configuration file and then deploy it to all systems. Hopefully sshd_config didn't contain anything that could prevent sshd from starting, or prevent previously working systems from reconnecting. Updating everything at once is likely not what you want to do. Now you devise a scheme to divide servers into groups. How? Web servers seems like an obvious starting point. OK, do you want all web servers to break? What about web servers in a single app? So now you might have web-app_name-odd-servers and web-app_name-even-servers so that at least half of the app_name service shouldn't break.
Suddenly that starts to look more difficult to manage than "promised" by the conceptual simplicity of configuration automation tools. Where they become useful depends on any given situation. With only a few or a handful of systems, the benefits may be minimal. Continuing with the web server example, if you have mostly unique servers, then you're going to have 1 (or likely more) configuration files to manage each "unique presence" of web server. And of course that applies to any type of server or system, not only web servers.
At some point, managing individual configuration files is only so useful, so the concept extends into playbooks. So now you have individual ansible configuration files (that instruct how to install sshd_config or some software package) and separate files that delineate the types of systems. Depending on the size of environment, that may make sense to define the types of systems in a monolithic file. Or you may want to separate that into web-servers (containing references to app_name-even, odd and their respective server names), foo-servers, etc. Don't forget that you need to maintain the "one true sshd_config" file somewhere.
Finally (at least for this example), you probably want to incorporate multiple sets of instructions into a playbook (which I can't recall if that uses more than one file per playbook). In a given playbook you might then ensure the sshd_config is installed, then make sure various software packages are installed, and maybe have some other customized solutions that do something unique to your environment. Keeping in mind that you should only alter a configuration file if it is necessary or install a piece of software if it is necessary (the term used is idempotent if you're not familiar with it).
So that's a relatively simple example / description of the learning curve and the additional workload in developing and maintaining the convenience that automated configuration tools provide. I liken it to when virtualization was new. Virtualization didn't simplify administration as at least some people thought it would. It added some conveniences and advantages, but it also increased complexity. If you have a large group of servers that are configured identically, then tools like ansible offer obvious advantages. But as soon as you have a bunch of servers providing unique services, the advantages aren't as easily achieved.
I'm not suggesting to avoid using them, only that it is important to understand what they do and what's involved by adding the complexity of relying on them. _________________ Quis separabit? Quo animo? |
|
Back to top |
|
|
Massimo B. Veteran
Joined: 09 Feb 2005 Posts: 1810 Location: PB, Germany
|
Posted: Thu Nov 24, 2022 8:50 am Post subject: |
|
|
I manage 3 machines that is my main desktop, my remote desktop and my mobile laptop. For keeping all Gentoo installations almost identical I started How to share /etc/portage and world file. _________________ HP ZBook Power 15.6" G8 i7-11800H|HP EliteDesk 800G1 i7-4790|HP Compaq Pro 6300 i7-3770 |
|
Back to top |
|
|
DavidF n00b
Joined: 12 Jan 2004 Posts: 45 Location: Rocky Mountains
|
Posted: Thu Nov 24, 2022 6:20 pm Post subject: |
|
|
I currently have two. My desktop with openrc and laptop with systemd. Loving being back on Gentoo! |
|
Back to top |
|
|
DawgG l33t
Joined: 17 Sep 2003 Posts: 872
|
Posted: Mon Dec 05, 2022 12:15 pm Post subject: |
|
|
about 30 real servers, 15 printservers and 200-300 clients in 18 locations at work.
almost all of my private stuff runs gentoo, too, altough i have to admit some boxes run devuan/debian. _________________ DUMM KLICKT GUT. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|