Executando comandos na inicialização em um servidor Red Hat

2

Eu tenho uma instância do servidor Red Hat na AWS que estou tentando fazer uma boa imagem AMI para que eu possa testar tipos específicos de máquinas de instância com o Apache Bench ( ab ).

Atualmente, estou apenas tentando criar a imagem do sistema operacional com tudo o que eu gostaria. Atualmente tenho o httpd instalado na imagem. Eu quero isso para que, quando essa imagem for inicializada, ela inicie automaticamente a hospedagem de sua página.

Atualmente, estou iniciando o serviço httpd e parando o serviço iptables para que a página seja exibida. Existe alguma maneira de eu poder emitir esses comandos na inicialização, para que a página seja exibida sem precisar inserir SSH na imagem e fazer isso manualmente?

    
por KDecker 03.02.2014 / 04:34

3 respostas

2

Claro! Você não diz, mas se você estiver usando o Red Hat Server (provavelmente o CentOS) e provavelmente as versões 5 ou 6, tudo o que você precisa fazer é configurar os 2 serviços httpd e iptables para que eles sejam iniciados ou desligados quando seu servidor inicializa.

Configuração do serviço

Existe uma ferramenta de linha de comando que você pode usar para fazer essa alteração na configuração, chamada chkconfig .

$ chkconfig --level 345 httpd on
$ chkconfig iptables off

Deixando o firewall para cima

Em vez de desativar seu firewall, eu o aconselharia a simplesmente deixá-lo de pé e adicionar uma regra que permita que o tráfego da porta 80 entre e saia para que ele possa acessar o servidor da Web Apache.

$ iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
$ iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

Essas regras devem abrir 80, supondo que o dispositivo Ethernet que sua VM usa seja eth0 . Você pode precisar fazer alguma investigação para obter essa informação, você pode usar o comando ip para confirmar.

$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 54:52:00:ff:ff:dd brd ff:ff:ff:ff:ff:ff

Fazendo as regras do FW grudarem!

Para tornar essas regras iptables permanentes, você pode adicioná-las conforme descrito acima e, em seguida, informar iptables para salvá-las da próxima vez.

$ /etc/init.d/iptables save
    
por 03.02.2014 / 04:47
0

O RedHat Enterprise 6 (RHEL6) orientado para o servidor precisa do arquivo /etc/rc3.d/S85httpd quando executado no modo de servidor para ser um link para /etc/init.d/httpd e /etc/rc3.d/S08iptables seja um link para /etc/init.d/iptables . Se, por acaso, seu runlevel inicial for 5 (improvável), os links teriam os mesmos nomes, mas no diretório /etc/rc5.d/ .

Isso em mente, como root eu gostaria:

cd /etc/rc3.d
ln -s ../init.d/httpd S85httpd
mv S08iptables K08iptables
cd /etc/rc5.d
ln -s ../init.d/httpd S85httpd
mv S08iptables K08iptables

Para ver o nível de execução padrão no RHEL6:

grep initdefault /etc/inittab

Se isso não conseguir iniciar os serviços, pode-se adicionar essas linhas a /etc/rc.local :

/etc/init.d/iptables stop
/etc/init.d/httpd start

A execução desses comandos é iniciada ou desliga os serviços no servidor.

Observe que a próxima versão do RedHat (RHEL7), que já está em versão beta e quase certamente será lançada no final deste ano, altera a forma como os arquivos são iniciados no momento da inicialização usando uma tecnologia que sinto que faz daemons de gerenciamento (serviços) muito mais fácil chamado systemd ... e usa uma maneira muito diferente de configurar serviços para iniciar no tempo de inicialização do sistema.

    
por 03.02.2014 / 04:47
-4

Mudar os hábitos é sempre doloroso, mas depois de usá-lo com o RHEL 7 Beta por um mês, posso dizer, é o caminho a seguir: link

    
por 03.02.2014 / 10:02