domingo, 26 de enero de 2014

Creacion de Script para Instalar Lamp en CentOS y uso de SCP

Creacion de Script para Instalar Lamp en CentOS y uso de SCP

BASH es un shell de Unix (intérprete de comandos de Unix) escrito para el proyecto GNU. Su nombre es un acrónimo de bourne-again shell (otro shell bourne); haciendo un juego de palabras (born-again significa renacimiento) sobre el Bourne shell (sh), que fue uno de los primeros shells importantes de Unix.
Bash es el shell por defecto de la mayoria de sistemas GNU/Linux
Por eso es que un script bash es el tiene manejo de la consola del servidor,este post veremos la creación de un script para la instalación de un entorno LAMP(Linux, Apache,Mysql y Php) para un servidor CentOS,aunque algunos ya empiezan a llamar GLAMP a este entorno, dándole el crédito que merece GNU, poniendo de manera mas notoria que GNU no es igual a Linux. Lo expuesto aquí respecto a la creación de script puede ser implementado para servidor Debian, Ubuntu,Opensuse cambiando la sintaxis de su manejo de paquetes de instalación y actualizaciones Un script posee la siguiente base, lo cual lo identifica como tal para el interprete bash de la consola Linux, estas etiquetas son: 

#!/bin/bash  
# -*- ENCODING: UTF-8 -*-  

Estas dos etiquetas van al inicio del script, para crear y ejecutar un script simplemente habría que hacer los dos siguientes pasos
  • Crear y editar un archivo para script, con la característica que termine el nombre del archivo con .sh
  • Otorgar permisos y ejecutar el archivo

Creación y edición 

La creación de un archivo en consola de un sistema GNU/Linux se realiza : 
#touch script.sh  
El comando Touch creara un archivo en blanco, aqui vemos que nuestro script (el cual podria tener cualquier nombre) utiliza la terminación .sh, el cual lo identificara del resto de archivos como script shell también podríamos ahorrarnos este paso usando un editor de texto,pues un editor de texto crear el archivo si este no existe, en nuestro caso utilizare el script sera nano 
#nano script.sh 


#!/bin/bash  
# -*- ENCODING: UTF-8 -*- 
yum install httpd mysql-server php php-mysql  
service httpd start  
service mysqld start 
touch /var/www/html/info.php 
echo '<?php phpinfo();?>' > /var/www/html/info.php  
service httpd restart  
service iptables stop  
chkconfig httpd on  
chkconfig mysqld on 
chkconfig iptables off 

yum install <servicio>
Metodo de instalacion y actualizacion de los sistemas Red-Hat, CentOS y Fedora, todos basados en el codigo del sistema Red-Hat 

service <servicio> [start, stop,status,reload,restart] 
Estructura de comandos que nos permiten conocer el estado, iniciar, detener,recargar y reiniciar nuestro servicio. 

chkconfig <servicio> [on off]  
Estructura de comandos que nos permiten controlar el inicio de nuestro servicio al encenderse el servidor,colocando on, carga en el inicio del servidor, colocando off quedara inactivo hasta que se le de la orden. 
Como vemos estamos ordenandole a Iptables que se detenga y no cargue en los siguientes inicios del servidor,Iptables es un software que funciona como firewall ,el cual en un entorno de trabajo es necesario su implementación,pero para manejo básico,aqui le ordeno que se detenga para que el puerto por el cual el servidor web funciona este habilitado. 

Otorgar Permisos y Ejecutar. 

Estos script pueden servirnos para automatizar instalaciones de diversos Sistemas como aquí podemos ver aqui el script esta instalando el entorno LAMP (Linux, Apache Mysql y Php), este script para ejecutarse necesitara permisos de ejecución los cuales se otorgan con los comandos 
# chmod +x script.sh  

y la manera de ejecutar un script es 
#./script.sh  

Administrando varios servidores tenemos la ventaja que podemos comunicarnos con todos por medio de OpenSSH que se puede resumir en un conjunto de estándares y protocolo de red que permite establecer una comunicación a través de un canal seguro entre un cliente local y un servidor remoto.  

Entre los protocolos pertenecientes a OpenSSH tenemos SCP(Secure Copy o Copia Segura) es una protocolo seguro para transferir archivos entre un anfitrión local y otro remoto, a través de SSH , de esta manera podremos transferir el archivo desde nuestro host hacia el host remoto,por ejemplo escribo el script en mi host y quiero transferirlo hacia un host con IP 192.168.1.26 

#scp -P 22 script.sh root@192.168.1.26:/tmp  

Al realizar esto,nos pedirá la contraseña del usuario que estamos usando para permitir scp, para nuestro caso la contraseña Root ,también llamada Superusuario.  

-P      se refiere al puerto del servidor remoto,el puerto por defecto de openssh  es el 22. 

script.sh archivo que sera transferido.  

root@192.168.1.26 Cuenta e IP (que tambien podria ser dominio a un servidor con DNS)del   servidor remoto.  

:/tmp lugar donde se copiara el archivo  

Utilizando este protocolo podemos llevar los script que creemos en nuestro computador de trabajo y así ejecutarlos en algún servidor que se encuentre lejano ahorrándonos la creación y edición del script habiendolo llevado simplemente usamos el protocolos openssh para hacernos de la administración del servidor , para este caso 
#ssh root@192.168.1.26 aquí pedirá la clave root para hacerse de la administración del servidor entrando a la consola, buscamos la carpeta en donde se encuentra en archivo copiado. 


Le otorgamos permisos de ejecución a nuestro script  
# chmod +x script.sh  

finalmente podremos ejecutarlo 
#./script.sh 

después de esto accedemos por medio de un navegador web hacia el servidor a la pagina 
http://Ipserver/info.php en nuestro caso http://192.168.1.26/info.php podremos apreciar información sobre nuestro servidor demostrándonos que la instalación de los tres servicios (Servidor Web,Base de dato y el lenguaje PHP) se han instalado en nuestro servidor.



1 comentario: