Instalação do componente principal
Antes de se começar a instalação é preciso ter em conta vários aspectos:
– Este é um produto empresarial e vou usar Debian 5. Tem que se ter bons conhecimentos de Linux.
– Os requisitos técnicos para o servidor dependem. Para testes, basta uma máquina virtual, para muitos clientes comvém ser um servidor “a sério”. A instalação corre em cima de Mysql e o produto é desenvolvido em python e php.
– Caso não se pretenda instalar um servidor de Dns e Dhcp na máquina onde está instalado o Pulse, convém estar à vontade com estes dois sistemas externos, pois vai ser preciso.
– É necessário um ip fixo para o interface publico do servidor.
– Convém ter bastante espaço em disco para os pacotes a serem criados e as imagens dos computadores.
Para este artigo, criei uma máquina virtual com Debian 5 instalado, onde tem um disco de 100 GB.
Também estou numa rede sem um serviço de dhcp ou dns activos, pois implementei o dhcp no Debian.
Este artigo não é sobre a instalação do Debian e por isso não mostro essa parte. Digo apenas que é preciso colocar um ip fixo no servidor e configurar bem os ficheiros “/etc/hosts” e “/etc/hostname”.
Neste teste usei o ip 192.168.1.160 para o servidor. Este facto é importante, porque muitas vezes se coloca esse valor na configuração.
A primeira coisa a fazer, depois de instalar o Debian 5.0.8 é verificar que se tem os últimos updates:
apt-get update && apt-get dist-upgrade
Em seguida, adicionar uma entrada nos repositórios, editando o ficheiro “/etc/apt/sources.list” e adicionar a linha:
deb http://pulse2.mandriva.org/pub/pulse2/server/debian lenny stable
A parte “stable” é para a versão estável que é a versão 1.3. Para testarem a próxima versão, 1.3.1, é colocar “nextstable”.
A seguir tem que se fazer um update aos repositórios com o comando:
apt-get update
Depois temos que reconfigurar o debconf para colocar uma prioridade a médio. Para tal correr o comando:
dpkg-reconfigure debconf
Como é um servidor, não precisamos de Gui, por isso escolhemos “Dialog” como interface e “medium” como prioridade.
Em seguida, começamos a instalar programas. Alguns módulos de python, mysql server e um servidor de LDAP.
Para isso corremos o comando:
apt-get install mmc-agent python-mmc-dyngroup python-mmc-imaging python-mmc-inventory python-mmc-msc python-mmc-pkgs python-mmc-pulse2 mmc-web-base mmc-web-dyngroup mmc-web-imaging mmc-web-inventory mmc-web-msc mmc-web-pkgs mmc-web-pulse2 slapd mysql-server
O repositório do Pulse não tem uma chave, por isso o “apt-get” pede para confirmar se queremos instalar os pacotes.
Durante a instalação, vai ser preciso configurar o mysql server e o slapd.
A nível do mysql server é preciso definir a password de root. Não a deixem vazia por questões de segurança.
A nível do Slapd temos que configurar vários parâmetros.
A primeira pergunta é se queremos omitir a confiiguração do OpenLDAP. Não queremos omitir, como já se percebeu.
A seguir temos que definir o domínio de topo. Para exemplo coloquei “nemesis11.com“.
O nome da organização, que coloquei “nemesis11” como exemplo.
Colocar uma password para o utilizador “Administrator“.
Quando no pergunta se queremos permitir LDAPv2, escolhemos que não, pois o Pulse 2 usa LDAPv3.
No mysql, ele vai perguntar se queremos activar o modo compatibilidade com versões mais antigas do mysql. A resposta é não, até porque a ligação vai ser local e não é necessário para o Pulse 2.
O próximo passo é estender o schema do servidor de LDAP, devido a poder-se dar permissões a utilizadores no interface do Pulse 2.
Temos primeiro que copiar o ficheiro de schema para o sitio correcto, fazendo o seguinte:
cp /usr/share/doc/python-mmc-base/contrib/ldap/mmc.schema /etc/ldap/schema/
A seguir temos que editar o ficheiro “/etc/ldap/slapd.conf” e na parte inicial, onde tem os includes, colocar a seguinte entrada:
include /etc/ldap/schema/mmc.schema
Em seguida temos que fazer restart ao serviço do servidor de LDAP, paraas alterações tomarem efeito:
/etc/init.d/slapd restart
Depois temos que criar as bases de dados para o pulse 2 e criar um utilizador e password que tenha acesso total às bases de dados.
Para não temos que correr vários comandos, vamos criar um ficheiro em “/root/database.sql“, com o seguinte conteúdo:
create database pulse2; create database msc; create database imaging; create database inventory; create database dyngroup; create user 'mmc'@'localhost' identified by 'mmc'; grant all on pulse2.* to 'mmc'@'localhost'; grant all on msc.* to 'mmc'@'localhost'; grant all on imaging.* to 'mmc'@'localhost'; grant all on inventory.* to 'mmc'@'localhost'; grant all on dyngroup.* to 'mmc'@'localhost'; flush privileges;
Para corrermos estes comandos de sql, corremos o comando:
mysql -u root -p < /root/database.sql
Basta só colocar a password de “root” do mysql e os comandos vão ser executados.
Como repararam o utilizador criado é “mmc”, com a mesma password. Se quiserem colocar outra password, têm que editar os seguintes ficheiros:
/etc/mmc/plugins/dyngroup.ini /etc/mmc/plugins/imaging.ini /etc/mmc/plugins/inventory.ini /etc/mmc/plugins/msc.ini /etc/mmc/plugins/pulse2.ini
Depois de criado as bases de dados e o utilizador que acede ao mysql, temos que criar as tabelas dentro das bases de dados, correndo os seguintes shell scripts:
sh /usr/share/doc/python-mmc-pulse2/sql/install.sh sh /usr/share/doc/python-mmc-msc/sql/install.sh sh /usr/share/doc/python-mmc-imaging/sql/install.sh sh /usr/share/doc/python-mmc-inventory/sql/install.sh sh /usr/share/doc/python-mmc-dyngroup/sql/install.sh
Quando correrem cada um dos scripts, vão ter um output que coloca várias questões, mas é para escolher a de defeito e basta colocar a password de root de mysql:
Enter MYSQL host (default : "localhost", or $MYSQL_DATABASE if defined) Enter MYSQL database (default : "pulse2", or $MYSQL_BASE if defined) Enter MYSQL user (default : "root", or $MYSQL_USER if defined) Enter MYSQL password (default : , or $MYSQL_PWD if defined) ********* ERROR 1146 (42S02) at line 1: Table 'pulse2.version' doesn't exist Update to v.1 succeeded
Como podem ver, no fim dá um erro de output sobre uma tabela. Não liguem. É normal.
Em seguida, temos que fazer as configurações, para o agente MMC.
Começamos por editar o ficheiro “/etc/mmc/plugins/base.ini“.
Temos que alterar duas entradas. De:
baseDN = dc=mandriva,dc=com
Para:
baseDN = dc=nemesis11,dc=com
E de:
password = secret
Para
password = password
Esta password tem que ser a mesma que foi definida na instalação do Slapd.
No fim do ficheiro “/etc/mmc/plugins/base.ini” é preciso tirar o comentário a duas linhas:
[computer] method = inventory
A seguir temos que criar uma pasta de arquivo em “/home/archive“, com o comando:
mkdir /home/archives
Para acabar, antes de iniciarmos o serviço do agente MMC, temos que alterar mais um ficheiro em “/etc/default/mmc-agent” de:
ENABLE=no
Para:
ENABLE=yes
Em seguida podemos arrancar com o serviço, com o comando:
/etc/init.d/mmc-agent start
Este comando vai gerar um longo output e convém verificar se há erros ou não pelo meio.
O output deverá ser algo como:
Starting Mandriva Management Console XML-RPC Agent: mmc-agent 3.0.1 starting... Using Python 2.5.2 (r252:60911, Jan 24 2010, 14:53:14) Using Python Twisted 8.1.0 Running as euid = 0, egid = 0 Multi-threading enabled, max threads pool size is 20 Importing available MMC plugins Created OU ou=Users,dc=nemesis11,dc=com Created OU ou=Groups,dc=nemesis11,dc=com Created OU ou=System,dc=nemesis11,dc=com The default user group Domain Users does not exist. Please create it before adding new users. This version is a community version. Registering authenticator baseldap / base.BaseLdapAuthenticator Registering authenticator externalldap / mmc.plugins.base.externalldap.ExternalLdapAuthenticator Registering provisioner externalldap / mmc.plugins.base.externalldap.ExternalLdapProvisioner Plugin base loaded, API version: 9:0:5 build(7770) Msc database is connecting Msc database connected Plugin msc loaded, API version: 0:0:0 build(7729) Dyngroup database is connecting Dyngroup database connected (version:3) Registering computer group manager dyngroup / mmc.plugins.dyngroup.group.DyngroupGroup Registering computer profile manager dyngroup / mmc.plugins.dyngroup.profile.DyngroupProfile Registering computer manager dyngroup / mmc.plugins.dyngroup.computers.DyngroupComputers Plugin dyngroup loaded, API version: 0:0:0 build(7729) ImagingDatabase is activating ImagingDatabase finish activation Registering computer profile manager imaging / mmc.plugins.imaging.profile.ImagingProfile Registering imaging computer profile manager imaging / mmc.plugins.imaging.imaging.ComputerImagingImaging Registering pulse2 manager imaging / mmc.plugins.imaging.pulse.ImagingPulse2Manager Registering computer manager imaging / mmc.plugins.imaging.computer.InventoryComputers Plugin imaging loaded, API version: 0:0:0 build(7729) Inventory False Inventory is activating Inventory finish activation Plugin inventory: Inventory database version is 10 Registering computer manager inventory / mmc.plugins.inventory.computers.InventoryComputers Registering provisioner inventory / mmc.plugins.inventory.provisioning.InventoryProvisioner Registering computer location manager inventory / Plugin inventory loaded, API version: 0:0:0 build(7729) Pkgs is activating Plugin pkgs loaded, API version: 0:0:0 build(86) Pulse2 database is connecting Pulse2 database connected (version:1) Registering pulse2 manager pulse2 / mmc.plugins.pulse2.pulse.Pulse2Pulse2Manager Plugin pulse2 loaded, API version: 0:0:0 build(7729) MMC plugins activation stage 2 Selecting authenticator baseldap / base.BaseLdapAuthenticator Authenticator baseldap successfully validated Selecting provisioners: None Selecting computer manager: inventory Plugin dyngroup: dynamic groups are enabled QueryManager is trying to load plugin inventory QueryManager plugin inventory loaded QueryManager is trying to load plugin dyngroup QueryManager plugin dyngroup is disabled by configuration. funcGet halfstatic: Path - DisplayName Selecting computer location manager: inventory SSL enabled, but peer verification is disabled. Listening to XML-RPC requests done.