Red Hat, Fedora, CentOS

Egyik package manager sem működiik: RPM / YUM

Természetesen olyan problémám van, amit meg kellene oldani tegnapra, de képtelen vagyok :/

Adott 2 szerver rhel linux 6.5 64 bit-tel.
NEM működik se az RPM, se a YUM parancs. Nem működik=nincs output

[root@xxx log]# rpm -qa
[root@xxx log]# yum list
[root@xxx log]#

Nincs a messagesben semmi, se a /vat/log/* belül.
A var/lib/rpm-ben minden fájl meg van aminek kell: http://pastebin.com/wWrM9aHV

Képtelen vagyok elindulni bármerre.

Egyedül recovery módban lehetett installálni rpm-et.

Java JRE-t kellene installálnom, mert csak java gcj került fel, de lehetetlen :/

Egy másik fórumon amerre elindultunk:

strace -e file rpm -qa

Ez a fájl egyik szerveren sincs fent, ha itt is ez szúrna szemet valakinek:
open("/etc/rpm/platform", O_RDONLY) = -1 ENOENT

Írtam egy how-to-t, most nem szedem ki, ami nem bele való, csak tanácsként, hogy vajon bármi ez befolyásolna-e :F

Check is there any running process related /var/lib/rpm, if yes, kill it.
Backup the rpm db: cd /var/lib && tar zcvf /var/preserve/rpmdb-`date +"%d%m%Y"`.tar.gz rpm
Package file integrity check: cd rpm && /usr/lib/rpm/rpmdb_verify Packages - if there is any error we need to load the needed package.
Backup Packages:
mv Packages Packages.orig
Reload and verify the package:
/usr/lib/rpm/rpmdb_dump Packages.orig | /usr/lib/rpm/rpmdb_load Packages
/usr/lib/rpm/rpmdb_verify Packages
Sanity check:
rpm -qa 1> /dev/null
Rebuilddb:
rpm -v --rebuilddb

Feltelepítettem gyorsan virtualboxba egy másik linuxot, ahol lefut egy ilyen parancs, az így így folytatódik, ahol az előző megállt (Nem tudom van-e jelentősége).

Egy másik ugyanilyen socks szerveren ahol lefut így folytatódik a lenti.

Volt egy ajánlás, hogy le kellene állítani a socks service-t, de ugye ezek socks szerverek, így létjogosultságúak. Egy próba erejéig ha kapok valamikor szabad slotot kipróbálható, de közben várok más megoldásokat itt is, ha kapok teszt időt, miket kellene csinálnom.
Ha van olyan megoldás, ami nem outage-s, azokat tudom bármikor végezni.

CentOS 7: firewall-cmd --add-forward-port=port=XX:proto=tcp:toport=YY:toaddr=ZZ működése

Sziasztok!

CentOS 7, firewalld: készítettem Libvirt + LXC-vel konténereket a 192.168.122.X/24 címen, ami VirtualBox-ban fut Windows-on.
CentOS-en belül például a 192.168.122.111 az nginx. Ha kapcsolódom a 192.168.122.111:80 portra, akkor látom az nginx-et futni. Eddig ok.

Azt szeretném, hogy a másik subnet-ben lévő CentOS LXC szempontjából host gép 80-as portján a 192.168.122.111:80 látszódjon.
Tehát port forwardolni akarom a postfix-et, stb, ami másik privát IP címen fog futni, és be kell állítanom firewalld-ben.

Így próbáltam, de még nem használtam eddig ilyenre a firewall-cmd -t, tehát simán hülyeséget csinálok:

vi /etc/firewalld/zones/public.xml

(?xml version="1.0" encoding="utf-8"?)
(zone)
(short)Public(/short)
(description)For use in public areas. You do not trust the other computers on
(service name="dhcpv6-client"/)
(service name="http"/)
(service name="ssh"/)
(service name="https"/)
(port protocol="tcp" port="8080-8081"/)
(forward-port to-addr="192.168.122.111" to-port="80" protocol="tcp" port="81"/)
(/zone)

Beleírtam a forward-port sort, majd:

firewall-cmd --zone=public --add-masquerade
firewall-cmd --reload

lynx 192.168.122.111
Működik lokálisan, a host linux-on belül! Ellenőrzés:

firewall-cmd --zone=public --list-forward
port=80:proto=tcp:toport=80:toaddr=192.168.122.111

A CentOS-en, ami Virtualbox-ban fut jelenleg:

ip addr show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:59:e4:1c brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
valid_lft 80193sec preferred_lft 80193sec
inet6 fe80::a00:27ff:fe59:e41c/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:47:a1:4e brd ff:ff:ff:ff:ff:ff
inet 192.168.56.101/24 brd 192.168.56.255 scope global dynamic enp0s8
valid_lft 1153sec preferred_lft 1153sec
inet6 fe80::a00:27ff:fe47:a14e/64 scope link
valid_lft forever preferred_lft forever
4: virbr0: mtu 1500 qdisc noqueue state UP
link/ether 2a:b6:99:f8:45:6e brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
inet6 fe80::40b9:14ff:fe6e:93ef/64 scope link
valid_lft forever preferred_lft forever
8: vnet0: mtu 1500 qdisc pfifo_fast master virbr0 state UP qlen 1000
link/ether 2a:b6:99:f8:45:6e brd ff:ff:ff:ff:ff:ff

ip route show

default via 10.0.2.2 dev enp0s3 proto static metric 1024
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15
192.168.56.0/24 dev enp0s8 proto kernel scope link src 192.168.56.101
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1

A Virtualbox-ban futó CentOS 7 host-on belüli LXC nginx konténerben:

ip addr show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
7: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:16:3e:ad:bc:2e brd ff:ff:ff:ff:ff:ff
inet 192.168.122.111/24 brd 192.168.122.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.122.231/24 brd 192.168.122.255 scope global secondary dynamic eth0
valid_lft 3387sec preferred_lft 3387sec
inet6 fe80::216:3eff:fead:bc2e/64 scope link
valid_lft forever preferred_lft forever

ip route show
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.111

Ezt majd hamarosan átrakom egy sima CentOS 7-re, ez a virtualbox-os környezet csak extra teszt környezet.
Kérdés: mit kell beállítani, hogy a port forward-ok működjenek megfelelően?
Jól gondolom, hogy ez például kell: " firewall-cmd --zone=public --add-masquerade " ?
Majd később 10.x.x.x privát tartományba akarom rakni az egészet, csak a VirtualBox miatt lett a jelenlegi privát tartomány, ez volt az alapértelmezett.

Köszönöm előre is az észrevételeket.

UPDATE 1:

Az XML kódban a kacsacsőröket zárójelekre cseréltem. Így látszik, de nem szép. Javaslat, hogyan rakjak XML-t láthatóan, képen kívül?

A subscription is required for full access to the Red Hat Knowledgebase.

Sziasztok!

Van valakinek aktív előfizetése a https://access.redhat.com oldalhoz?
Mi a legolcsóbb termék, amihez jár ilyen?
Mik a tapasztalatok?

Jól gondolom, hogy csak a RHEL megvett termékekhez jár ilyen subscription, az ingyenesekhez nem, mint például a CentOS?

Köszönöm.

[Megoldva] Interface kizárása NetworkManager-ből

Hogyan kell elérni azt az állapotot Fedora 20-on, hogy egyetlen interface-t kizárjak a NetworkManager kezeléséből? Tehát nem tiltani akarom, hanem azt az egyetlen interface-t másik daemonnal kezeltetni, tehát valóban az kell, hogy ne is tudjon róla a NetworkManager. A többi interface-t viszont kezelje.

Neten keresgéltem, de szerintem rosszul, mert nem látom a megoldást.

CentOS 7 telepítése során az MBR érintetlenül hagyása

Telepítenék egy CentOS 7-et Minimal telepítővel egy meglévő Windows 7 mellé.
A Windows 7 már elfoglal 3 db primary partíciót, a negyedik maga az extended partíció, amin logikai partíciókon lenne a CentOS 7 / fájlrendszere, megy egy swap és még szabad helyet is hagynék egy második Linux számára.

Telepítés során szeretném, ha az MBR-t érintetlenül hagyná és a grub2-őt a / fájlrendszer partíciójára tenné. Ubuntuval ez simán működik. A rendszertöltést illetve a kiválasztást a Windos 7-re telepített EasyBCD-vel állítanám majd be. Használtam már, de annak szüksége van Linux rendszerenként egy telepített grub vagy grub2-re.

Lehet, hogy kiüti a szememet, de csak annyit találtam, hogy vagy az MBR-be teszi a rendszertöltőt (grub2) vagy sehova.
Szóval hol, hogyan lehet beállítani, hogy például a /dev/sda6 -ra tegye a grub2-t? A /dev/sda5 a swap.
Már próbáltam külön /boot partíciót is, de oda sem tudom beállítani.

Rendszertöltő nélküli telepítés után rescue módban indítottam a telepítő CD-ről. A "grub2-install /dev/sda6" -ra azt írja, hogy az ext2 fájlrendszert nem támogatja. Padig ext4-re telepítettem, de értem a logikáját amiért ext2-nek nézi.
-- force kapcsolóval megcsinálja, igaz prüszköl, de nem is működik! :-(

RPM helyett kézi fordítás (kernel, apache, nginx, php, stb...), sebességnövelés céljából és biztonsági szempontból?

Nekem a CentOS-ben az egyik fontos és hasznos szolgáltatás, hogy yum használattal könnyű kezelni a frissítéseket, még a kernel frissítést is. Szerencsére szinte mindent meg lehet oldani kézi forrásból fordítás nélkül.

A mai napig olvasom, hallom, hogy sokan a sebességnövelés céljából kézzel fordítják le kernelt, a web szervert (apache, nginx) és a PHP-t.
A másik ok, ami szerepelni szokott, hogy egy biztonsági javítást hamarabb tudnak felrakni így, mint ahogy kijön a csomag.
Az utóbbit megértem, csak kérdés, hogy megéri az időráfordítást?
A rendszeres csomagfordítás mennyire "szemeteli tele" a gépet jelenleg?

Valaki szánta már rá az idejét, hogy lemérje egy alap x86_64-es CentOS csomag és egy kézzel fordított alkalmazás között a sebesség különbséget? De még ha gyorsabb is lenne, megéri szerintetek 2014 szeptemberben is kézzel fordítani CentOS 7-re csomagokat, ha tökéletesen megfelelő a hivatalos update-ben rendelkezésre álló rpm is a feladatra?

Ezen KaTTogtam.

RPM repositoryk tükrözése

Szeretnék egy gépet, ahova a hivatalos CentOS 6/7 és RHEL 5/6/7 repository-kat letükrözöm. A CentOS esetében ez egyszerű, mint a szög, le-rsync-elem valamelyik publikus mirror-ról a csomagokat és készen vagyok. A RHEL esete sokkal bonyolultabb. Az RHN-nek van kétféle "változata" az RHN Classic és a Subscription Manager alapú. Az előbbi a RHEL 5/6 verziókról használható, az utóbbi pedig elvileg mindhárom verzióról.

Próbáltam különböző toolokat a mirroringra:

- mrepo: nem beszél Subscription Manager-ül, nem tudja a RHEL7-es repokat tükrözni
- cobbler: kizárólag a host OS-sel megegyező verziójú RHEL repokat tudja tükrözni, nem lehet több különböző OS verzióhoz tartozó csatornára regisztrálni vele
- spacewalk 5.6: nem tűnik úgy, mintha a RHEL7-tel megbírkózna (de még küzdök vele, ezt belülről nem látom igazán, hogy hogy működik)
- pulp: nem tűnik úgy, mintha a RHEL5-tel megbírkózna valamiért (de még küzdök vele, ezt belülről nem látom igazán, hogy hogy működik)

Más esetleg nem rakott össze ilyet Satellite nélkül? Ötlet, hogy mivel érdemes nekimenni?

Apache2 caldav es cardav

Sziasztok,

Apache2 dav_mod-al meg van osztva egy ics naptár fájl. Thunderbird-el és Android-on futó alkalmazásokkal szépen lehet kezelni. Azonban Outlook-al és iPhone alkalmazásokkal nem lehet bele írni. Tudja valaki hogy milyen plugin, vagy mit kell másképpen beállítani a apache konfigban hogy ez működjön ?

MariaDB datadir CIFS-en?

Üdv,

Olyan problémám lennem hogy Hyper-V-ben futtatott CentOS 7-en szeretném a MariaDB datadir-t egy cifs mount-ra rakni, viszont SELinux ezzel nem ért egyet, ezt egy custom policy-val bár megtudom oldani, de a mysql.sock-ot sem preferálja a rendszer cifs-en. Próbáltam my.cnf-ben átrakni mysql.sock-ot /tmp/mysql.sock-ra viszont mariadb restart után semmi errort nem dobott, se audit, se mariadb, viszont a fájl sem jött létre. Az egész lényege az lenne, hogy az egész datadir szinkronizálva legyen OneDrive-ra, így laptopról is elérhető lenne. Kérdésem az lenne, hogy van-e esetleg ennél jobb ötlet hordozhatóságra (végső esetben beállítok egy replicationt egy szerver géppel, csak jobb szeretném, ha minden egy helyen elérhető lenne cloudban), anélkül, hogy bármit manuálisan kéne mókolni minden változtatás után. Ha nincs, akkor esetleg van-e ötlet arra, hogy miért nem jön létre a socket fájl? Neten találtam, hogy a client-nél megadott socketet is át kell állítani, viszont ott nincs is megadva socket.

Előre is köszi :)

NFS nagy teljesítménnyel

hali,

kis webkiszolgáló cluster, egy központi géppel, amin NGINX és NFS fut, két appszerverrel, ahol php-fpm, és egy db szerver (az az NFS közelébe sem szagol, és rendben is van ott minden). eddig oké, pacemaker/corosync cluster glue-val fut az egész. azzal a résszel nincs is probléma.

a bottleneck az NFS.

jelenleg ezek a mount opciók a kliensgépeken (/proc/mounts):

clusterhead:/home/ /home nfs4 rw,relatime,vers=4,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.xx.xx,minorversion=0,local_lock=none,addr=192.168.xx.yy 0 0

(lock nem is kell (más módon van megoldva), az async módot meg nem merem bevállalni, mert rohadt fontos az írási integritás.)

helyenként 80-100as loadba is befutnak ezek a kis gépek. munin gráfokon megnézve, a gond az, hogy a proci(k) kurva sok időt tölt(enek) iowait állapotban az appszerveren. a vmstat alapján is ez a helyzet, ott is az i/o sleep dominál. egyértelmű, hogy az NFS szerver nem bírja a rohamot.

kicsit lejjebb vettem a php-fpm-ben a futó processzek számát, javult is a helyzet, plusz az NFS szerveren a kiszolgáló processzek számát felhúztam 32-re (/etc/sysconfig/nfs):
RPCNFSDCOUNT=32

de változatlanul eléggé nagy az iowait, a load is ugrál. szóval kéne valami megoldás. :/

ami még gyanús, az a netstat grafikonon a failed és a resets nagy száma.

a grafikonok: http://www.pdx.hu/jobs/nfs/

ami eddit volt és lesz:
- a sysctl.conf-os performance tuningokat már rég megcsináltam, nem ott lesz a gond szerintem.
- eddig egy HDD volt a clusterhead-ben (az NFS szerverben), most az NFS megosztás (a /home/) kap egy sajátot ma éccaka.
- az NFS processzek számát feljebb vettem.
- a php-fpm processzek számát lejjebb vettem, hogy kevésbé terheljék a rendszert.

ami gyanús:
- az rsize és a wsize kurva magasnak tűnik nekem (rendszer default értékek).
- ellenőriztem, az interfészek mindenütt 1Gbit módban vannak. az MTU 1500. vegyem feljebb?
- mivel lokális net a cluster, esetleg felejtsem el a TCP módot, és váltsak UDP-re, sokkal alacsonyabb rsize/wsize-al?

ötletek?