Hướng dẫn cài đặt centos 7 qua network PXE

PXE (Preboot eXecution Environment) Server cho phép cài đặt OS qua network, có thể thiết lập tự động chọn các cấu hình ban đầu khi cài đặt OS. Lợi ích chính của việc này đó là chúng ta có thể cài đặt server 1 lần, sau đó sử dụng để cài đặt một cách tự động cho hàng chục, thậm chí hàng trăm máy khác nhau mà không cần phải mất công burn file ISO sang USB hay DVD như trước đây.

Trong bài viết dưới đây chúng ta sẽ cài đặt 1 PXE server, phục vụ cài centos 7 cho máy khác.

Chi tiết:

  • Server IP = 192.168.150.11
  • Host name = pxe.example.com
  • OS = CentOS 7.x
  • SELinux = enabled
  • Firewall = disabled

Step:1 Cài đặt các gói cần thiết cho PXE

Các gói cần thiết: “dhcp, tftp-server, ftp server(vsftpd), xinted”.

[root@pxe ~]# yum install dhcp tftp tftp-server syslinux vsftpd xinetd vim -y

Step:2 Cấu hình DHCP

Sau khi cài đặt gói dhcp ở trên, chúng ta tạo file cấu hình cho  nó có nội dung dưới đây, các bạn có thể thay thế IP tương ứng vủa nhà mình vào.

[root@pxe ~]# vi /etc/dhcp/dhcpd.conf
# DHCP Server Configuration file.
ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;
allow bootp;
allow unknown-clients;
# internal subnet for my DHCP Server
subnet 192.168.150.0 netmask 255.255.255.0 {
range 192.168.150.21 192.168.150.151;
option domain-name-servers 192.168.150.11;
option domain-name "pxe.example.com";
option routers 192.168.150.11;
option broadcast-address 192.168.150.255;
default-lease-time 600;
max-lease-time 7200;
# IP of PXE Server
next-server 192.168.150.11;
filename "pxelinux.0";
}

 

Step:3 Cấu hình tftp server (/etc/xinetd.d/tftp)

TFTP (Trivial File Transfer Protocol ) is được sử dụng để tranfer file qua network mà không cần xác thực. Với PXE server, tftp được sử dụng cho bootstrap loading. Để cấu hình tftp server, sửa file ‘ /etc/xinetd.d/tftp’, thay đổi thông số ‘disable = yes‘ -> ‘disable = no’ và để nguyên đám còn lại mặc định, nội dung của nó sẽ tương tự như sau:

[root@pxe ~]# vi /etc/xinetd.d/tftp
service tftp
{
 socket_type = dgram
 protocol    = udp
 wait        = yes
 user        = root
 server      = /usr/sbin/in.tftpd
 server_args = -s /var/lib/tftpboot
 disable     = no
 per_source  = 11
 cps         = 100 2
 flags       = IPv4
}

Toàn bộ các file phục vụ cho việc boot qua network được đặt trong thư mục tftp root “/var/lib/tftpboot

Chạy các câu lênh sau để chép các file cần thiết vào ‘/var/lib/tftpboot/’

[root@pxe ~]# cp -v /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
[root@pxe ~]# cp -v /usr/share/syslinux/menu.c32 /var/lib/tftpboot
[root@pxe ~]# cp -v /usr/share/syslinux/memdisk /var/lib/tftpboot
[root@pxe ~]# cp -v /usr/share/syslinux/mboot.c32 /var/lib/tftpboot
[root@pxe ~]# cp -v /usr/share/syslinux/chain.c32 /var/lib/tftpboot
[root@pxe ~]#
[root@pxe ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@pxe ~]# mkdir /var/lib/tftpboot/networkboot
root@pxe ~]#

Step:4 Mount ISO Centos 7 và copy tới thực mụcftp

Download file iso trên mạng, mount vào và copy cả folder vào thư mục sau ‘/var/ftp/pub

[root@pxe ~]# mount -o loop CentOS-7-x86_64-DVD-1511.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
[root@pxe ~]# cd /mnt/
[root@pxe mnt]# cp -av * /var/ftp/pub/

Copy Kernel file (vmlimz) và initrd file từ thư mục đã mount ở trên vào thư mục ‘/var/lib/tftpboot/networkboot/

[root@pxe ~]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/networkboot/
[root@pxe ~]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/networkboot/
[root@pxe ~]#

Step:5 Create kickStart & PXE menu file.

Tạo 1 password được mã hoá, sẽ sử dụng sau này bằng lệnh dưới, thay cái 123@123a bằng pass của mình. Xong copy output lại, có việc cần tới.

[root@pxe ~]# openssl passwd -1 123@123a
$1$qwUUn.B3$Da8qxnXqxwh6zwBWrnE7/. 
[root@pxe ~]#

Default kickstart file được đặt tại /root với tên ‘anaconda-ks.cfg’. chúng ta sẽ tạo file kickstart mới tại  /var/ftp/pub với tên ‘centos7.cfg

Copy nội dung dưới ném vào file /var/ftp/pub/centos7.cfg

Thay thế cấu hình dòng rootpw –iscrypted bằng chuỗi pass mã hoá đã thực hiện ở trên.

[root@pxe ~]# vi /var/ftp/pub/centos7.cfg

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use FTP installation media
url --url="ftp://192.168.150.11/pub/"
# Root password
rootpw --iscrypted $1$e2wrcGGX$tZPQKPsXVhNmbiGg53MN41
# System authorization information
auth useshadow passalgo=sha512
# Use graphical install
graphical
firstboot disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux disabled
# Installation logging level
logging level=info
# System timezone
timezone Europe/Amsterdam
# System bootloader configuration
bootloader location=mbr
clearpart --all --initlabel
part swap --asprimary --fstype="swap" --size=1024
part /boot --fstype xfs --size=300
part pv.01 --size=1 --grow
volgroup root_vg01 pv.01
logvol / --fstype xfs --name=lv_01 --vgname=root_vg01 --size=1 --grow
%packages
@^minimal
@core
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end

Tạo PXE menu file (/var/lib/tftpboot/pxelinux.cfg/default), Copy nội dung bên dưới bỏ vào

[root@pxe ~]# vi /var/lib/tftpboot/pxelinux.cfg/default

[root@pxe ~]# vi /var/lib/tftpboot/pxelinux.cfg/default

default menu.c32
prompt 0
timeout 30
MENU TITLE LinuxTechi.com PXE Menu
LABEL centos7_x64
MENU LABEL CentOS 7_X64
KERNEL /networkboot/vmlinuz
APPEND initrd=/networkboot/initrd.img inst.repo=ftp://192.168.150.11/pub ks=ftp://192.168.150.11/pub/centos7.cfg

Step:6 Bật các dịch vụ

Sử dụng các lệnh dưới đây

[root@pxe ~]# systemctl start xinetd
[root@pxe ~]# systemctl enable xinetd
[root@pxe ~]# systemctl start dhcpd.service
[root@pxe ~]# systemctl enable dhcpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
[root@pxe ~]# 
[root@pxe ~]# systemctl start vsftpd
[root@pxe ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@pxe ~]#
[root@pxe ~]# setsebool -P allow_ftpd_full_access 1
[root@pxe ~]#

 

Mở port cho firewall

[root@pxe ~]# firewall-cmd --add-service=ftp --permanent
success
[root@pxe ~]# firewall-cmd --add-service=dhcp --permanent
success
[root@pxe ~]# firewall-cmd --add-port=69/tcp --permanent 
success
[root@pxe ~]# firewall-cmd --add-port=69/udp --permanent 
success
[root@pxe ~]# firewall-cmd --add-port=4011/udp --permanent
success
[root@pxe ~]# firewall-cmd --reload
success
[root@pxe ~]#

 

Nếu lười quá, thì cứ stop firewall lại là xong, cho đỡ rách việc

systemctl disable –now firewalld

Step:7 Boot the clients with pxe boot option.

Dưới đây là video hướng dẫn thực hiện

bật SNMP trên esxi 6.5

Có thể làm nhiều thứ trên GUI của ESXI tuy nhiên, không thể bật snmp từ trang quản trị, do mặc định snmpd không có cấu hình nên không start được

Dưới đây là cách xử lý:
Truy cập SSH vào máy chủ ESXi (nếu chưa bật SSH thì enable lên trong màn hình service ở hình trên là được)
Sau khi SSH, làm theo dưới đây:

[root@r220:~] esxcli system snmp set --communities communitystring
[root@r220:~] esxcli system snmp set --enable true
[root@r220:~] esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true
Already allowed all ip
[root@r220:~] esxcli network firewall ruleset set --ruleset-id snmp --enabled true
[root@r220:~] /etc/init.d/snmpd restart
root: snmpd Running from interactive shell, running command: esxcli system snmp set -e false.
root: snmpd setting up resource reservations.
root: snmpd opening firewall port(s) for notifications.
root: snmpd watchdog for snmpd started.
[root@r220:~]

Đã xong, tiến hành add đối tượng ESXi vào các tool monitor

Cấu hình SSH cho switch cisco


Tạo mật khẩu enable:

#enable
#enable secret <PASSWORD>
#conf t

Gán địa chỉ IP quản trị và VLAN quản trị

config#ip default-gateway <FIREWALL INTERFACE IP ADDRESS>
config#interface vlan <MANAGEMENT VLAN ID>
config(int vlan id)#ip address <IP MANAGEMENT> <SUBNET MASK>

Cấu hình hostname và domain name.

config#hostname <HOSTNAME>
config#domain-name <tên gì đó ví dụ hostname.com>

gen key RSA cho SSH

ByteSoft(config)# crypto key generate rsa

  The name for the keys will be: OTGswitch.OTG.com
   Choose the size of the key modulus in the range of 360 to 2048 for your
     General Purpose Keys. Choosing a key modulus greater than 512 may take
     a few minutes.
  
  How many bits in the modulus [512]: 

mặc định 512, Chọn 1024 nếu thích bảo mật hơn

Bật SSH

ByteSoft(config)# line vty 0 4
ByteSoft(config-line)# login local
ByteSoft(config-line)# transport input ssh
ByteSoft(config-line)# exit

Tạo user để truy cập

ByteSoft(config)# username <Account name> privilege 15 secret <PASSWORD>

Lưu lại cấu hình

ByteSoft(config)# do wr

 

Active office 2019 không cần dùng phần mềm

Bước 1: Mở notepad, paste nội dung sau và lưu lại dưới tên active.cmd

@echo off
title Kich hoat Microsoft Office 2019 ALL versions mienphi!&cls&echo ============================================================================&echo #Kich hoat Microsoft Office 2019 hop phap - Khong su dung phan mem&echo ============================================================================&echo.&echo #San pham ho tro:&echo - Microsoft Office Standard 2019&echo - Microsoft Office Professional Plus 2019&echo.&echo.&(if exist "%ProgramFiles%\Microsoft Office\Office16\ospp.vbs" cd /d "%ProgramFiles%\Microsoft Office\Office16")&(if exist "%ProgramFiles(x86)%\Microsoft Office\Office16\ospp.vbs" cd /d "%ProgramFiles(x86)%\Microsoft Office\Office16")&(for /f %%x in ('dir /b ..\root\Licenses16\ProPlus2019VL*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul)&(for /f %%x in ('dir /b ..\root\Licenses16\ProPlus2019VL*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul)&echo.&echo ============================================================================&echo Activating your Office...&cscript //nologo ospp.vbs /unpkey:6MWKP >nul&cscript //nologo ospp.vbs /inpkey:NMMKJ-6RK4F-KMJVX-8D9MJ-6MWKP >nul&set i=1
:server
if %i%==1 set KMS_Sev=kms7.MSGuides.com
if %i%==2 set KMS_Sev=kms8.MSGuides.com
if %i%==3 set KMS_Sev=kms9.MSGuides.com
if %i%==4 set KMS_Sev=kms.digiboy.ir
if %i%==5 goto notsupported
cscript //nologo ospp.vbs /sethst:%KMS_Sev% >nul&echo ============================================================================&echo.&echo.
cscript //nologo ospp.vbs /act | find /i "successful" && (echo.&echo ============================================================================&choice /n /c YN /m "Truy cap devopsvn.xyz: [Y,N]?" & if errorlevel 2 exit) || (echo Ket noi voi may chu KMS khong thanh cong! Dang ket noi lai... & echo Vui long cho... & echo. & echo. & set /a i+=1 & goto server)
explorer "https://devopsvn.xyz"&goto halt
:notsupported
echo.&echo ============================================================================&echo Phien ban Office cua ban khong duoc ho tro.&echo Download phien ban moi nhat tai day: http://devopsvn.xyz/:halt
pause >nul

Bước 2: mở file active.cmd vừa tạo dưới quyền administrator và ngồi chờ. Thành công sẽ báo

Xử lý lỗi cert SSL trên esxi

Case: Khi cài đặt Esxi ver 6.5. Một thanh niên cầu toàn, oder ngay 1 domain hịn, 1 SSL tương ứng để cắm lên ESXi với mục đích truy cập cho đỡ phải nhớ IP, và đã truy cập bẳng có ổ khoá xanh trên trình duyệt mới đã (Đừng hỏi tại sao lại public trang quản trị ESXi ra ngoài). Không may, up cái cert lỗi tè le lên, và thế là trang web quản trị chết toi luôn, telnet port 80, 443 thấy không thông nữa. làm gì đây:

Giải pháp: thay thế cert trên Esx bằng cert đúng

Bước 1: Truy cập vào màn hình console của ESXi bật SSH và ESX SHELL lên.

Bước 2: kiếm 1 máy tính  nào đó khác, sinh key RSA mới, ở đây chúng ta có 1 máy centos 7, đã cài sẵn openssl, sử dụng lệnh sau để sinh key:

openssl req -x509 -nodes -sha256 -days 1095 -newkey rsa:2048 -keyout rui.key -out rui.crt

Sau bước này sẽ sinh 2 file rui.key và rui.crt

Bước 4: SSH tới máy chủ ESXi, thư mục /etc/vmware/ssl và backup lại 2 file rui.key và rui.crt

# mv /etc/vmware/ssl/rui.crt /etc/vmware/ssl/rui.crt.bkp 
# mv /etc/vmware/ssl/rui.key /etc/vmware/ssl/rui.key.bkp

Bước 5: thay thế 2 file đã sinh ra ở bước 3, đưa vào đường dẫn /etc/vmware/ssl trên ESXi

Bước 6: Khởi động lại dịch vụ

cd
service.sh restart

Bước 7: Nghiệm thu

Tìm hiểu kiến trúc Java Memory Model và Garbage Collection

Trong bài viết này, kiến thức được áp dụng cho java 8  JDK8 Oracle Hot Spot 64 bit JVM. Trước hết, dưới đây là mô tả các vùng bộ nhớ của java

Mỗi khi khởi tạo JVM, OS cấp phát bộ nhớ cho process. Process cho chính con JVM, và phần bộ nhớ cấp cho nó bao gồm: Heap, meta space, JIT code cache, thread stack, và shared library. Chúng ta gọi phần bộ nhớ này là Native memory. Native memory là phần bộ nhớ được cung cấp cho các tiến trình bởi OS. Phần bộ nhớ này là bao nhiêu thì còn phụ thuộc vào  OS, CPU, và JRE. Chúng ta cùng tìm hiểu qua về các phần bộ nhớ có trong JVM:

Heap Memory: JVM sử dụng phần bộ nhớ này để lưu trữ các object. Phần bộ nhớ này được chia ra làm 2 vùng khác nhau gọi là “Young Generation Space” và “Tenured Space“.

Young generation: hay còn gọi là New Space được chia thành 2 phần nhỏ hơn gọi là Eden Space” và “Survivor Space.

Eden Space: khi chúng ta khởi tạo 1 object, phần bộ nhớ cho object đó sẽ lấy từ eden space.

Survivor space: chứa những object còn sót lại sau khi Young garbage collection hoặc Minor garbage collection hoạt động (2 trình dọn rác). Phần này được chia là 2 khối bộ nhớ bằng nhau: S0 và S1

Tenured space: object sẽ chạm ngưỡng tenused tối đa trong quá trình minor GC hoặc Young GC sẽ được move tới vùng này, hoặc vùng old generation space

Dưới đây, chúng ta sẽ nói thêm về garbage collection sau.

Meta space: Phần bộ nhớ này nằm bên ngoài của Heap memory, và cũng là 1 phần của native memory. theo tài liệu mặc định, meta space không có giới hạn max cụ thể là bao nhiêu. Trong các phiên bản java trước, phần bộ nhớ này được gọi là perm gen space. Phần bộ nhớ này có nhiệm vụ lưu trữ các định nghĩa các class bởi class loader. Nó được thiết kế để tránh lỗi out of memory. Tuy nhiên, nếu nó tăng tưởng vượt quá dung lượng có sẵn của bộ nhớ vật lý thì hệ điều hành sẽ ném nó sang phần virtual memory (swap).  Điều này sẽ ảnh hưởng nghiêm trọng tới hiệu năng của ứng dụng và việc chuyển qua lại giữa virtual memory và physical memory là một tiến trình tốn kém về mặt hiệu năng. Có một số option được thiết lập khi khởi tạo JVM để giới hạn phần dung lượng meta space, tuy nhiên, làm như vậy có thể gây ra lỗi out of memory.

Code cache: JVM có một trình biên dịch để biên dịch byte code và convert chúng sang ngôn ngữ máy. Để tối ưu cho JVM, trình JIT (Just in time) được ra đời, các khối code thường được truy cập sẽ được biên dịch sang ngôn ngữ máy bởi JIT và lưu trữ trong vùng code cache. Sau đó, phần này sẽ được trình biên dịch bỏ qua.

Bây giờ, chúng ta sẽ thảo luận về tiến trình garbage collection. JVM sử dụng các tiến trình riêng rẽ cho việc garbage collection (GC). Như đã đề cập tới ở trên, khi ứng dụng tạo các object, JVM sẽ cố lấy phần bộ nhớ cần thiết từ eden space. JVM thực hiện quá trình GC dưới dạng minor GC và major GC. Dưới đây là minh hoạ cho minor GC

Khi khởi tạo, survivor space và tenured space rỗng. Khi JVM không thể lấy bộ nhớ từ eden space được nữa thì nó khởi động tiến trình minor GC. Trong khi minor GC, các object không thể sử dụng được nữa sẽ bị đánh dấu là collected. JVM sẽ chọn một trong 2 phần của survivor space làm “to space”, nó có thể là S0 hoặc S1. Ví dụ nó chọn S0 làm “to space”, JVM sẽ copy các object còn có thể sử dụng vào “to space” (S0) và tăng 1 con số gọi là Age của object đó lên 1, các object không nhét vào survivor space được sẽ bị nhét vào tenured space. Tiến trình này được gọi là “premature promation”. Ở hình bên dưới, tôi đã làm cho “to space” lớn hơn dung lượng được cấp phát, lưu ý rằng survivor không được tăng.

Trong hình trên, các object được đánh dấu màu đỏ có nghĩa rằng nó không còn sử dụng được nữa. Còn lại thuộc về GC roots, vẫn đang còn được sử dụng và sẽ không bị move đi bởi GC. GC sẽ ném phần màu đỏ đi và trả lại bộ nhớ trống cho eden space.

Đối với quá trình minor GC thứ 2, GC sẽ đánh dấu các object vô dụng từ eden space và “to space” S0, và copy GC roots sang survivor khác là S1, Age của các object sẽ được tăng lên tiếp.

Trong hình trên, object được đánh dấu với màu đỏ, sẽ bị GC copy từ eden vào survivor tới vùng survivor S1 và object được tăng thêm.

Tiến trình trên được lặp lại với mỗi minor GC, khi object được chạm tới số Age tối đa cho phép, nó sẽ bị ném sang tenured space.

Vì lẽ đó, JVM có 1 option gọi là MaxTenuringThreshold, để định nghĩa số Age tối đa của object. mặc định con số này là 15

Chung kết lại là minor GC sẽ thu hồi lại bộ nhớ từ Young Generation Space. Minor GC là một tiến trình “stop the world”. Thỉnh thoảng, ứng dụng bị dừng lại, nhưng không đánh kể. Minor GC có thể được chạy dưới dạng đơn luồng hoặc đa luồng, tuỳ vào GC collector được sử dụng.

Nếu minor GC được chạy vài lần, thì Tenured space sẽ bị đầy dần lên và phải cần thêm GC nữa. Khi đó, JVM khởi chạy major GC. đôi khi, có thể gọi tiến trình này là full GC.Nhưng, như 1 phần của full GC, JVM sẽ thu hồi phần bộ nhớ từ Meta space, nếu không có object nào trong heap, thì những class đã được load sẽ bị remove khỏi meta space.

Dưới đây là những trigger mà JVM sử dụng để gọi major GC:

  • Nếu developer sử dụng hàm system.gc() hoặc Runtime.getRunTime().gc()
  • Nếu JVM nhận thấy rằng không đủ bộ nhớ tenred space.
  • Nếu khi thực hiện minor GC, JVM cảm thấy không thể lấy đủ bộ nhớ từ eden hoặc survivor space.
  • Nếu có option MaxMetaspaceSize được đặt sẵn, và JVM không đủ memory để load class mới.

Hướng dẫn cài đặt oracle client trên redhat 7 – How to install oracle client 12 on redhat

Chuẩn bị:
– Redhat enterprise 7, có thể cài thêm repo: https://devopsvn.xyz/cai-dat-centos-repo-cho-redhat-rhel-7/

– Bộ cài Oracle client 12: https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-linux-12201-3608234.html

Trên máy chủ linux, cài đặt các gói: unzip, gcc

yum install -y gcc unzip

Download bộ cài client: linuxx64_12201_client.zip

Giải nén bộ cài, ta được thư mục client

[root@testora opt]# tree -L 3
.
├── client
│   ├── install
│   │   └── ***********
│   ├── response
│   │   ├── client_install.rsp  #File response, cấu hình cho quá trình cài đặt
│   │   └── netca.rsp
│   ├── runInstaller # File cài đặt
│   ├── stage
│   │   ├── **********
│   └── welcome.html
└── linuxx64_12201_client.zip

Mở file response/client_install.rsp và thiết lập các thông số như sau:

UNIX_GROUP_NAME=oracle
INVENTORY_LOCATION=/u01/oracle/ora_inventory
ORACLE_HOME=/u01/oracle/client_v12.2_base/home
ORACLE_BASE=/u01/oracle/client_v12.2_base
oracle.install.client.installType=Administrator

Một số lưu ý:
INVENTORY_LOCATION : đường dẫn thư mục này phải khác với đường dẫn cho ORACLE_HOME và ORACLE_BASE

đường dẫn ORACLE_HOME nên nằm bên trong ORACLE_BASE

oracle.install.client.installType nên để Administrator, sau này sẽ có nhiều tùy chỉnh hơn.

UNIX_GROUP_NAME: Oracle client không cài được dưới user root, nên phải tạo user khác cho nó, group tương ứng với user đó là gì thì điền vào đây, Group này phải có quyền đọc ghi , exec tất cả các đường dẫn đã khai báo trên. (dùng đường dẫn nào thì vào chown cho nó)

Sau khi khai báo, đứng ở thư mục chứa file runInstaller ở trên, chạy:

./runInstaller -silent -responseFile /opt/client/response/client_install.rsp</span>

Nhớ thay đường dẫn đúng vào file client_install.rsp ở trên.

Sau khi chạy, sẽ hiển thị dạng:

[oracle@testora client]$ ./runInstaller -silent -responseFile /opt/client/response/client_install.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 415 MB.   Actual 32130 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 3967 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2019-06-22_01-52-44PM. Please wait ...
[oracle@testora client]$
[oracle@testora client]$
[oracle@testora client]$ [WARNING] [INS-13014] Target environment does not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. installActions2019-06-22_01-52-44PM.log
   ACTION: Identify the list of failed prerequisite checks from the log: installActions2019-06-22_01-52-44PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
You can find the log of this install session at:
 /u01/oracle/ora_inventory/logs/installActions2019-06-22_01-52-44PM.log
The installation of Oracle Client 12c was successful.
Please check '/u01/oracle/ora_inventory/logs/silentInstall2019-06-22_01-52-44PM.log' for more details.

As a root user, execute the following script(s):
        1. /u01/oracle/ora_inventory/orainstRoot.sh



Successfully Setup Software.

[oracle@testora client]$

Làm theo hướng dẫn, chuyển qua user root, chạy /u01/oracle/ora_inventory/orainstRoot.sh là xong.

 

 

Cài đặt centos repo cho redhat rhel 7

Case: Cài đặt redhat enteprise, chưa active gì, trong máy không có repo nào để cài gói cơ bản, mở /etc/yum.repo.d rỗng.

Để cài đặt centos repo cho redhat, tiền hành làm như sau:
Tạo file mới có định dạng .repo ví dụ Centos.repo trong thư mục /etc/yum.repo.d

Nội dung:

[centos]
name=CentOS-7
baseurl=http://ftp.heanet.ie/pub/centos/7/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://ftp.heanet.ie/pub/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

Sau đó lưu lại dưới tên Centos-Base.repo
Tiếp tục chạy lệnh:

yum repolist
Tiếp theo đã có thể cài đặt các gói bằng yum

Note cài đặt postgresql trên centos 7

Cài đặt PostgreSQL trên centos 7
Tính tới thời điểm hiện tại 2019-06, version khi cài đặt PostgreSQL qua yum trên centos 7 là 9.2.24
[root@posgres-2 etc]# yum info postgresql-server
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: centos-hn.viettelidc.com.vn
* epel: mirror.horizon.vn
* extras: centos-hn.viettelidc.com.vn
* updates: centos-hn.viettelidc.com.vn
Installed Packages
Name : postgresql-server
Arch : x86_64
Version : 9.2.24
Release : 1.el7_5
Size : 16 M
Repo : installed
From repo : base
Summary : The programs needed to create and run a PostgreSQL server
URL : http://www.postgresql.org/
License : PostgreSQL
Description : PostgreSQL is an advanced Object-Relational database management system (DBMS).
: The postgresql-server package contains the programs needed to create
: and run a PostgreSQL server, which will in turn allow you to create
: and maintain PostgreSQL databases.

Chúng ta sẽ cài version này, trước hết update toàn bộ lên cho chắc cú
yum update -y
Tiến hành cài đặt:
yum install postgresql-server postgresql-contrib -y
Thiết định ban đầu:
postgresql-setup initdb
systemctl enable postgresql
systemctl start postgresql

Kiểm tra service nó đã listen chưa:
[root@posgres-2 etc]# netstat -napl | grep post
tcp 0 127.0.0.1:5432 0.0.0.0:* LISTEN 3209/postgres
udp6 0 0 ::1:39788 ::1:39788 ESTABLISHED 3209/postgres
unix 2 [ ACC ] STREAM LISTENING 41137 3209/postgres /tmp/.s.PGSQL.5432
unix 2 [ ACC ] STREAM LISTENING 41135 3209/postgres /var/run/postgresql/.s.PGSQL.5432
unix 3 [ ] STREAM CONNECTED 41116 3210/postgres: logg

Thấy rõ, mặc định thằng này listen trên localhost, thế này thì từ bên ngoài làm sao kết nối tới được. Chúng ta enable nó lên cho listen trên tất cả interface. Mở file cấu hình của thằng này:
vim /var/lib/pgsql/data/postgresql.conf
Sửa lại các dòng có key tương ứng như sau:
listen_addresses = '*'
restart lại service:
systemctl restart postgresql
Đã xong phần cài đặt service, tiếp theo sẽ là tạo database, user, etc
PostgreSQL sau khi cài đặt, tự động nó sẽ thêm vào cho hệ điều hành 1 user = postgres
Mọi thao tác với PostGreSQL phải switch sang user này để thực hiện:
[root@posgres-2 ~]# su - postgres
-bash-4.2$

Tạo database:
psql -c createdb <tên database>
Kết nối vào database đã có:
psql
Ví dụ:
psql chip1stop
psql (9.2.15)
Type "help" for help.

chip1stop=#
Xem danh sách các database, từ PostgreSQL shell: \l
Xoá database: dropdb
Xem danh sách table: \dt