Deploy, configure, and maintain systems Flashcards
networking dynamically(from DHCP)
#cat /etc/sysconfig/network-cripts/ifcfg-eth1 DEVICE=eth1 HWADDR=[Mac Address] TYPE=ethernet UUID=[uuid number(hex)] ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp
Networking statically
-edit file /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE="eth1" BOOTPROTO="static" DNS1="10.1.1.1" GATEWAY="10.1.1.1" HWADDR=[MAC Address] IPADDR="10.1.1.3" NETMASK="255.255.255.0" IPV6INIT="yes" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" UUID="[UUID hex number]"
after making changes to eth files
#ifdown eth1 #ifup eth1
or #service network restart
Primary network configuration files
/etc/hosts
/etc/resolv.conf
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-
Cron VS at
Cron is used to schedule recurring task while at is used to schedule a task to run at a particular time
Setting up a cron
chkconfig –list crond make sure that crond is set to boot
# service crond status check that crond is started
# cat /etc/crontab see rule example of job definition
* * * * *
1st star is for min(0-59)
2nd star is for hours(0-23)
3rd star is for day (1-31)
4th star is for month(1-12)
5th star is for day of the week(Sunday = 0 or 7, 0-6 Sunday-Saturday)
Review #ls /var/spool/cron #cat /var/spool/cron/root
Cron jobs that run periodically
These jobs are stored and run periodically # /etc/cron.daily # /etc/cron.weekly # /etc/cron.hourly # /etc/cron.monthly
List crontab
#crontab -l list crontab as owner #crontab -l -u user1 list crontab as root for user1
edit crontab
#crontab -e edit crontab for current user # crontab -e -u user1 edit crontab for user1 only root can edit other user's crontab
/etc/cron.deny and /etc/cron.allow
add user to /etc/cron.deny or /etc/cron.allow to deny or allow them to be able to create cron jobs
Setting up at
#service atd status check that the atd service has started # chkconfig --list atd make sure it's set to start at boot
List of commands for at
#at -f file.sh now+2minutes sets a job to run in 2 mins # atq jobs that are submitted # atrm 3 remove a job(enter job number) #at -f some.sh 12pm tomorrow run at 12PM tomorrow #ls /var/spool/at where the scrip for scheduled jobs are
Kickstart
-After an install a ks file is automatically created and stored in /root/anaconda-ks.cfg
- You can create a ks file by hand or you can use the system kickstart utility located here:
Applications -> System tools -> kickstart (it’s not installed by default)
- in the kickstart file, the lines that starts with”@” means a group package to be installed. The lines that starts with “-“ means to exclue those packages from being installed.
Installing from a KS in an NFS partition
- first boot from the boot cd. Then press the ESC key
- at the boot prompt type(press Enter afterward)
boot: linus ks=nfs:IP:/srv/nfs/ks.cfg
Installing from a KS in an FTP or http location
While still booting from an actual install cd, you could add the location of the ks to an ftp or http server, and add such entry in the KS file:
usr –url=http://ip/rhel6
-After booting from the DVD install, press the tab key, then enter:
> vmlinuz initrd = initrd.img ks=http://ip/rhel/ks.cfg ksdevice=eth0
or
> vmlinuz initrd = initrd.img asknetwork ks=http://your.web.com/rhel6.cfg ksdevice=eth0
Kernel boot options:
- linux ks = ftp://host/ks.cfg
- linux ks = http://host/ks.cfg
- linux ks = nfs:host:/ks.cfg
- linux ks=hd:/dev/dir/ks.cfg
- linux ks=file:/dev/dir/ks.cfg
NTP
You can syncronize the system clock with a remote server over the network Time Protocol(NTP). for the one-time synchronication only use the ntpdate command
the ntpdate command
1- first check whether the selected NTP server is accessible
#ntpdate -q server-address
2- run the command followed by one or more server addresses
#ntpdate server_address ….
enable running the ntpdate at boot time
#chkconfig ntpdate on
Note if the synchronization with the time server at boot time keeps failing
You can find a relevant error message in the /var/log/boot.log. Then try to add the following line to /etc/sysconfig/network
NETWORKINGWAIT=1
Best to set the ntpd daemon
The most convenient way is to set the netpd daemon to synchronize the time at boot time automatically
1. Open the NTP configuration file /etc/ntp.conf
2. add or edit the list of public NTP servers
server 0 rhel.pool.ntp.org iburst
-The iburst directive is to speed up the initial synchronization as of redhat 6.5, it is added by default.
3. In the same file, set the proper permissions giving unrestricted access to localhost only
restrict 127.0.0.1
restrict 6::1
4. save all changes, exit and restart the NTP daemon
#service ntpd restart
5 make sure that ntp is started at boot time
#chkconfig ntpd on
Note, if you are setting up the NTP server for others to access, remember to enable port 123 in the firewall.
Yum repos
- yum repos are located in /etc/yum.repos.d
- all repository should end with .repo
- no two repository can have the same repository ID
Example of a repo file
[localnet] name = local network yum repo baseurl = ftp://192.168.75.132/pub/ enabled=1 gpgcheck=0 gpgkey=file:///etc/......
review man yum.conf
To register for red hat subscription
rhn_register then follow the instructions
Setting up a local repo with a disk
- first mount the disk
-copy the packages from Packages into another directory
-next install the package createrepo - once installed add into the directory and run
# createrepo
-Then create a file in /etc/yum.repos.d/ similar to
# vi mylocal.repo
[mylocal]
name=mylocal
baseurl=file:///directory/path/to/repo
enabled=1
gpgcheck=0
To test for a specific package
yum list httpd
Install and update software packages using rpm
#rpm -ivh mypackage.rpm #rpm -Uvh mypackage.rpm
How to import the gpg key of repository
rpm –import gpgkey
to see a list of repos
yum repolist
installing and update via yum
#yum install vsftp #yum update vsftp
Get kernel current version
uname -r
kernel details
- better to install a new kernel than to upgrade existing kernel
- /boot/grub/grub.conf boot process (bootloader) uses this file
- to know which kernel to booth with, the default is set to 0
- To install kernel
#yum install kernel
#rpm -ivh kernel.rpm do not use -U
- not recommended how to update kernel #yum upgrade kernel #rpm -Uvh kernel.rpm
Modify the system bootloader
-Edit the /boot/grub/grub.conf
What happens when a system boot
BIOS-> BootLoader(GRUB)(/boot) -> kernel(vmlinuz) -> mount file system “/” (read-only) -> /sbin/init
to check which parameters has been passed in during boot
cat /proc/cmdline
to add/pass parameter to the kernel
you need to edit /boot/grub/grub.con
example of parameter that can be added
Console=ttyS0
To setup password protect at Grub
-Generate hash key #grup-md5-crypt password:
- copy the hash key to /boot/grub/grub.conf
- restart server for changes to take effect
- test by trying to access grub
To configure network services to start automatically at boot (for example httpd), type:
systemctl enable httpd
To check the configuration, type:
systemctl is-enabled httpd
To configure a system to boot into multi-user level without graphical interface, type:
systemctl set-default multi-user.target
To configure a system to boot into multi-user level with graphical interface, type:
systemctl set-default graphical.target
To check the current configuration, type:
# systemctl get-default multi-user.target
To create a VM called postfix.example.com (here with an IP address of 192.168.1.10, a gateway in 192.168.1.1, a DNS server in 192.168.1.1, a repository server in 192.168.1.5, Pass1234 as a password, and a total disk size of 6GB), create the file /var/www/html/conf/ks_postfix.cfg and paste the following lines:
keyboard –vckeymap=us –xlayouts=’us’
lang en_US.UTF-8
network –device=eth0 –bootproto=static –ip=192.168.1.10 –netmask=255.255.255.0 –gateway=192.168.1.1 –nameserver=192.168.1.1 –activate –ipv6=auto
network –hostname=postfix.example.com
rootpw Pass1234
timezone America/Los_Angeles –isUtc
bootloader –location=mbr –boot-drive=vda
clearpart –all –initlabel –drives=vda
ignoredisk –only-use=vda
part pv.9 –fstype=”lvmpv” –ondisk=vda –size=5000
part /boot –fstype=”ext4” –ondisk=vda –size=500
volgroup rhel –pesize=4096 pv.9
logvol swap –fstype=”swap” –size=500 –name=swap –vgname=rhel
logvol / –fstype=”ext4” –size=3072 –name=root –vgname=rhel
%packages
@base
@core
%end
reboot
Then, run the following command: # /bin/virt-install \ --virt-type kvm \ --name=postfix.example.com \ --disk path=/var/lib/libvirt/images/postfix.example.com.img,size=6 \ --ram=1024 \ --vcpus=1 \ --os-variant=rhel7 \ --accelerate \ --graphics vnc \ -v -l http://192.168.1.5/repo/CentOS/7/os/x86_64/ \ --network bridge:br0 \ -x ks=http://192.168.1.5/conf/ks_postfix.cfg
Note1: http in the previous command can be replaced with nfs, ftp, etc.
Note2: If you get this message “ERROR internal error: process exited while connecting to monitor: qemu-kvm: -chardev pty,id=charserial0: Failed to create chardev“, follow this thread.
Replace “devpts /dev/pts devpts defaults 0 0” with “devpts /dev/pts devpts gid=5,mode=620 0 0” in the /etc/fstab file of the KVM host.
Configure a physical machine to host virtual guests.
Update your system: # yum update
Install the KVM packages: # yum group install "Virtualization Host" # yum install -y virt-install # yum install -y virt-top
Start the libvirtd service: # systemctl start libvirtd
Activate the Chronyd/NTP service at boot and start it: # systemctl enable chronyd && systemctl start chronyd