Instalando o GOsa2 no RedHat / CentOS (rpm based)

Sobre esse artigo

A idéia deste artigo é servir como base para instalação completa do GOsa2 que será utilizada por artigos futuros no que diz respeito a integração com outros serviços.

O que GOsa2 quer dizer?

GOsa2 é a forma compacta para GOnicus System Administration.

Do site http://www.gosa-project.org/

A mighty System-/Config-management frontend using LDAP as a backend. It is able to manage POSIX, Samba, Mail, Kolab, FAX, Asterisk and many more services.

Pré-requisitos

Instalando os pré-requisitos

Como informado acima, estou partindo do princípio que você já possui um sistema CentOS ou RedHat instalado, portanto, estarei cobrindo aqui os requisitos do sistema, para ter o GOsa2 funcional.

Instalando o repositório Yum EPEL

rpm -ivh http://virtualxp.org/downloads/epel-release-5-3.noarch.rpm

Configurar o repositório do GOsa2

Vá ao diretório /etc/yum.repos.d e crie o arquivo GOsa2.repo com seu editor de texto favorito.

Arquivo GOsa2.repo

[GOsa]
name=GOsa Repository
baseurl=ftp://oss.gonicus.de/pub/gosa/redhat
enabled=1
gpgcheck=0

Configurando repositório para PHP 5.2

O PHP 5.2 não está no repositório oficial do CentOS / RedHat, para isso será necessário utilizarmos um repositório de terceiros, nesse guia utilizarei o repositório do Utter Ramblings. É um repositório confiável e estável, pode utilizar sem maiores receios.

Vá ao diretório /etc/yum.repos.d e crie um novo arquivo com seu editor de textos favorito com o seguinte conteúdo:

Arquivo utterramblings.repo

[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

Esse repositório já tem também o Apache 2.2.x a ser utilizado.

Instalando o servidor OpenLDAP

Pode ser utilizado a versão oficial.

Para isso, executar o comando:

yum install openldap openldap-clients openldap-servers

Instalando o GOsa2 via yum

Com os pré-requisitos satisfeitos, prossegue-se com a instalação definitiva do GOsa2.

Há uma série de plugins disponíveis para o GOsa2, fazendo uma busca no seu repositório, é possível ter uma idéia dos plugins e você pode instalar os que adequam ao seu ambiente:

yum search gosa

WARNING: Evite instalar o pacote gosa-desktop pois virá o Gnome e o X com dependência.

Abaixo estão os pacotes que serão instalados para esse guia, como dito antes, adeque com o que lhe servir.

yum install gosa-schema.noarch gosa-plugin-systems.noarch gosa-plugin-sudo.noarch gosa-plugin-squid.noarch gosa-plugin-samba.noarch gosa-plugin-rolemanagement.noarch gosa-plugin-pureftpd.noarch gosa-plugin-mail.noarch gosa-plugin-log.noarch gosa-plugin-ldapmanager.noarch gosa-plugin-dns.noarch gosa-plugin-dhcp.noarch gosa-plugin-connectivity.noarch gosa-plugin-addressbook.noarch gosa-help-en.noarch gosa.noarch

Editar prâmetros do PHP (php.ini) para o GOsa2

Para que o GOsa2 rode adequadamente, é necessário alterar 2 parâmetros no arquivo /etc/php.ini. Edite o arquivo e grave as alterações.

Antes:

  • expose_php = On
  • magic_quotes_gpc = Off

Depois:

  • expose_php = Off
  • magic_quotes_gpc = On

Certificando-se que os serviços corretos iniciarão no boot

Fazer com o Apache e o OpenLDAP iniciem no boot.

chkconfig --levels 35 ldap on
chkconfig --levels 35 httpd on

Configurando o OpenLDAP para ser utilizado com o GOsa2

Temos todos os programas necessários instalados e tudo indo bem, agora é parte mais crítica, mas não complicada, do ambiente que estamos configurando.

Será necessário adequar o OpenLDAP para que o GOsa2 se entenda com ele, isso significa apresentar os schemas corretos ao OpenLDAP.

Crie um cópia de backup do arquivo de configuração atual, just in case :)

cd /etc/openldap
cp slapd.conf slapd.conf.orig

Gerar uma senha para o cn=Manager

slappasswd -h {SSHA}
New password:
Re-enter new password:
{SSHA}Nag4FWwXLoGO/WpdpFJUlMVCBYwB94wt

O resultado foi um hash da senha informada, nesse caso utilizei a senha “fogonacaixadagua” e gerou esse hash, guarde esse hash por que ele será utilizado na sequencia.

Edite o arquivo /etc/openldap/slapd.conf e faça com fique parecido com o seguinte:

include         /etc/openldap/schema/corba.schema
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/dyngroup.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/java.schema
include         /etc/openldap/schema/misc.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/openldap.schema
include         /etc/openldap/schema/ppolicy.schema

include /etc/openldap/schema/gosa/samba3.schema
include /etc/openldap/schema/gosa/pureftpd.schema
include /etc/openldap/schema/gosa/gofon.schema
include /etc/openldap/schema/gosa/gosystem.schema
include /etc/openldap/schema/gosa/goto.schema
include /etc/openldap/schema/gosa/gosa-samba3.schema
include /etc/openldap/schema/gosa/gofax.schema
include /etc/openldap/schema/gosa/goserver.schema
include /etc/openldap/schema/gosa/goto-mime.schema
include /etc/openldap/schema/gosa/trust.schema
include /etc/openldap/schema/gosa/dnszone.schema
include /etc/openldap/schema/gosa/gosa_custom.schema

pidfile		/var/run/openldap/slapd.pid
argsfile	/var/run/openldap/slapd.args

database	bdb
suffix		"dc=FogoNaCaixadAgua"
rootdn		"cn=Manager,dc=FogoNaCaixadAgua"

# Senha gerada pelo comando slappasswd -h {SSHA}
rootpw		{SSHA}Nag4FWwXLoGO/WpdpFJUlMVCBYwB94wt

directory	/var/lib/ldap

index entryCSN,entryUUID eq
index uid,mail eq
index gosaMailAlternateAddress,gosaMailForwardingAddress eq
index cn,sn,givenName,ou pres,eq,sub
index objectClass pres,eq
index uidNumber,gidNumber,memberuid eq
index gosaSubtreeACL,gosaObject,gosaUser pres,eq
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq

cachesize 100000

Copiar alguns schemas que não estão no diretório certo:

cp /usr/share/gosa/plugins/pureftpd/contrib/pureftpd.schema /etc/openldap/schema/gosa
cp /usr/share/gosa/plugins/dns/contrib/dnszone.schema /etc/openldap/schema/gosa

Criar o arquivo /etc/openldap/schema/gosa_custom.schema com o seguinte conteúdo:

Arquivo /etc/openldap/schema/gosa_custom.schema

#$Id: authldap.schema,v 1.8 2005/03/20 19:10:30 mrsam Exp $
#
# OID prefix: 1.3.6.1.4.1.25981
#
# Attributes: 1.3.6.1.4.1.25981.1.1
#
# Depends on: gosa.schema and cosine.schema

attributetype ( 1.3.6.1.4.1.25981.1.1.1 NAME 'gosaMailHome'
	DESC 'The absolute path to the mail message stor directory in a virtual mail setup.'
        EQUALITY caseExactIA5Match
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

#
# Objects: 1.3.6.1.4.1.25981.1.2
#

objectclass ( 1.3.6.1.4.1.25981.1.2.1 NAME 'gosaVirtualMailAccount' SUP top AUXILIARY
	DESC 'Objectclass to mark Virtual MailAccounts for GOsa (v2.4)'
        MAY ( gosaMailHome ) )

Iniciando o OpenLDAP

Com o OpenLDAP server configurado e o schemas copiados, copie o arquivo DB_CONFIG.example para o diretório do LDAP:

cd /etc/openldap
cp DB_CONFIG.example /var/lib/ldap/DB_CONFIG

Agora pode-se iniciar o OpenLDAP e verificar se tudo vai bem.

service ldap start
Checking configuration files for slapd:  config file testing succeeded
                                                           [  OK  ]
Starting slapd:                                            [  OK  ]

Iniciando o Apache

O apache foi instalado e fará a interface para o GOsa2.

O próprio pacote do GOsa2 criou um arquivo de configuração para ele no apache, esse arquivo encontra-se em /etc/httpd/conf.d/gosa-apache.conf

Seu conteúdo é o seguinte:

# Include GOsa to your web service
Alias /gosa /usr/share/gosa/html



    php_admin_flag engine on
    php_admin_flag register_globals off
    php_admin_flag allow_call_time_pass_reference off
    php_admin_flag expose_php off
    php_admin_flag zend.ze1_compatibility_mode off
    php_admin_flag register_long_arrays off
    php_admin_flag magic_quotes_gpc on
    php_admin_value upload_tmp_dir /var/spool/gosa/
    php_admin_value session.cookie_lifetime 0
    include /etc/gosa/gosa.secrets




   PHP_Fix_Pathinfo_Enable 1
   
     Options +ExecCGI
     AddHandler fcgid-script .php
     FCGIWrapper /var/www/php-fcgi/php-fcgi-starter .php
     include /etc/gosa/gosa.secrets
   

Não é recomendado alterá-lo, a não ser que seja realmente necessário.

Pode-se iniciar o serviço do apache.

service httpd start
Starting httpd:                                            [  OK  ]

Configurando o GOsa2 pela interface Web

Depois de iniciar o serviço do apache, acesse o IP do host que foi instalado o GOsa2, como por exemplo:

Tela inicial da configuração do GOsa2

http://192.168.11.13/gosa/

Note a parte destacada da imagem, é necessário executar esse comando para que o instalador do GOsa2 saiba que você tem poder sobre o servidor.

echo -n 93esjraq6baopmpchl1qsksc84 > /tmp/gosa.auth

Após executado o comando, clique em “Next”.

Seleção da linguagem


Escolha a linguagem e clique em “Next”.

Verificação do ambiente


Se houver alguma falha nessa parte, volte para o início do documento e revise a sessão que diz: Editar prâmetros do PHP (php.ini) para o GOsa2.

Após todos os campos estarem com OK, clique em “Next”.

Aceite do acordo

Nessa tela faz-se o aceite do acordo da licença.

Após marcar, conforme a a figura acima, clique em “Next”.

Conexão com o LDAP

Aqui configura-se a conectividade com o OpenLDAP que configuramos anteriormente.


As partes que devem ser alteradas estão marcadas em 1 e 2, no caso:
1. Informar o contexto para o usuário Manager, “cn=Manager,dc=FogoNaCaixadAgua”
2. Colocar a senha que foi gerada no hash, “fogonacaixadagua”

Clicar em “Next””.

Verificação dos schemas

Sim!

Clique em “Next”.

Configuração do GOsa2 1/3

Deixe as opções padrão e clique em “Next”.

Configuração do GOsa2 2/3

Mais algumas configurações pertinentes ao GOsa2.

Abaixo, vou explicar as alterações feitas, baseada na numeração da figura acima, altere-as conforme mostrado na foto.
1. É onde ficarão gravadas as informações das workstations de um domínio Windows
2. Timezone para o GOsa2.
3. Habilitar o “Copiar / Colar”, é uma função bastante interessante quando se quer mudar uma entrada de Unidade Organizacional, por exemplo.
4. Habilitar snapshots, são úteis para reverter uma adição mal feita, por exemplo.
5. Informar a senha do Manager, “fogonacaixadagua”.

Clicar em “Next” ao terminar.

Configurações do GOsa2 3/3

Última parte da configuração do GOsa2.

1. Coloque a sua comunidade SNMP caso já exista alguma padrão na sua rede, ou coloque ‘public’ apenas.
2. Para habilitar as configurações do SUDO no LDAP.

Quando terminar, clicar em “Next”.

Inspeção final do LDAP

Nessa tela, haverá uma checagem para verificar se existe alguma árvore no LDAP, como começamos do zero, não tem nada, por isso vê-se uma sequencia de falhas. Não se preocupe, logo vai estar tudo verdinho!

Para criar o objeto root, clique no botão conforme destacado na imagem abaixo.

Após clicar no botão “Try to create a root object” veja que as coisas começar a melhorar ;)

Clique primeiro no botão “Migrate” em “Inspecting object classes in root object” e você vai ser direcionado para a página abaixo:


Clique em “Migrate”.

Voltando para a tela da inspeção do LDAP, clique no único botão que aparece:

Dessa vez, é para criar uma senha para o usuário ‘admin’ que logará na interface Web do GOsa2, informe a senha para esse usuário, aqui foi definida “fogonacaixadagua” e clique em “Apply”.

Tudo bonito agora e verdinho, conforme o prometido!

Hora de prosseguir, para o final. Clique em “Next”.

Enviar um feedback

Aqui é por sua conta.

Terminando, clique em “Next”.

FIM

Chegamos.

Faça o download do arquivo de configuração para o seu computador e copie para o diretório /etc/gosa no servidor do GOsa2, altere as permissões do arquivo conforme a sugestão do instalador.

scp ~/temp/gosa.conf root@192.168.11.13:/etc/gosa

E depois, no servidor

chown root:apache /etc/gosa/gosa.conf
chmod 640 /etc/gosa/gosa.conf

Clique em “Next” na tela final do instalador para confirmar que o arquivo está lá.

Você então será agraciado com a tela de Login e utilize o usuário ‘admin’ com a senha definida no processo de instalação.

Share this post

3 comments

Join the conversation
  • Daniel - 02/07/2010 reply

    Boa, perfeito teu howto. Agora, vou tentar integrar as coisas nele =).

  • Jugleni Junior - 17/11/2010 reply

    Parabéns Daniel pelo Post, para colaborar vou deixar um simples correção registrada.

    Você informou que o arquivo gosa_custom.schema ficaria na diretório /etc/openldap/schema/gosa_custom.schema mais na verdade fica no /etc/openldap/schema/gosa/gosa_custom.schema

    Outro detalhe importante registrar: Ao fazer o login minha tela ficava em branco.

    Vi varias pessoas com as mesmas dificuldades.

    http://localhost/gosa/main.php?global_check=1 “result a white page”

    um referencia – https://oss.gonicus.de/pipermail/gosa/2005-May/000951.html

    Log do Problema:

    tail /var/log/httpd/ssl_error_log
    …[error] [client 127.0.0.1] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 30720 bytes) in /usr/share/gosa/plugins/systems/admin/systems/class_servGeneric.inc on line 91

    Informa que a memória utilizada esta sendo mais do que esta disponível.

    A solução para isto foi aumentar a memória no php.ini

    memory_limit = 128M ; Maximum amount of memory a script may consume (16MB)

    Abraço,

    Daniel Kühl Lima - 19/11/2010 reply

    Parabéns a sua colaboração!

    Muito obrigado, abraço.

Leave a Reply Cancel