sexta-feira, 23 de maio de 2008

Instalação KickStart ?!?!? (Parte 3)

Com o arquivo ks.cfg configurado corretamente você pode escolher entre deixá-lo em uma máquina da rede, em um servidor ftp ou http remoto, colocá-lo em um disquete ou na ISO do seu CD ou DVD de instalação da distro!!! Não esqueça de renomeá-lo para ks.cfg.

Sendo um dvd ou cd é muito mais prático pois é só dar boot pela mídia desejada e dar o comando:

linux ks=cdrom

Para os outros métodos:

Disquete:

linux ks=floppy

Rede:

ks=nfs:

- Para executar uma instalação kickstart baseada na rede, você precisa ter um servidor BOOTP/DHCP na sua rede e deve incluir as informações de configuração da máquina na qual está instalando a distro. O servidor BOOTP/DHCP proverá suas informações de rede e a localidade do arquivo kisckstart ao cliente. Se um arquivo kickstart é especificado pelo servidor BOOTP/DHCP, o sistema cliente tentará uma montagem NFS da localidade do arquivo e o copiará no cliente, usando-o como um arquivo kickstart. As configurações exatas variam dependendo do servidor BOOTP/DHCP que você usar.

Exemplo de uma linha do arquivo dhcpd.conf do servidor DHCP:

filename “/local/do/arquivo/kickstart/nomedoarquivo.cfg”;
next-server servidor.nfs.com;

URL:
ks=http://server/caminho

Conclusão
Agora toda a instalação kickstart está aí comentada e explicadinha tin tin por tin tin… boa sorte… e só lembrando:

- Tudo isso foi feito, testado e aprovado em PCs intel, amd, 64 e 32 bit. Foi utilizado o Fedora Core 6. Até o Red Hat 9 e Fedora 6 esse método funcionará perfeitamente pois esse foi um método criado pela Red Hat e foi utilizado em larga escala por usuários em sua versão 9. Após isso não testei.

Duvidas? Esqueci de algo? Postem um comentário!

segunda-feira, 5 de maio de 2008

LÓGICA DE PROGRAMAÇÃO (Parte 2)

2. Tópicos Preliminares

2.1 Tipos Primitivos

Aproximando-nos da maneira pela qual o computador manipula as informações, vamos

dividi-las em 4 tipos primitivos:


2.1.1 Inteiro: toda e qualquer informação numérica que pertença ao conjunto dos

números inteiros relativos (negativa, nula ou positiva).

Ex:

- Ele tem 15 irmãos.

- A temperatura desta noite será de -2 graus.

- Outros exemplos: idade, numero_dependentes, numero_de_filhos

2.1.2 Real: toda e qualquer informação numérica que pertença ao conjunto d os

números reais (negativa, nula ou positiva).

Ex:

- Ela tem 1,73 metros de altura.

- Meu saldo bancário é de R$ 120,96

- Outros exemplos: altura, peso, comprimento

2.1.3 Caractere: toda e qualquer informação composta por um conjunto de caracteres

alfanuméricos (0..9) e o/ou especiais.

Ex: #, $, %, &, *

- Outros exemplos: e-mail, data_nascimento, telefone, cidade

2.1.4 Lógico: toda e qualquer informação que pode assumir apenas duas situações.

Ex:

- verdadeiro ou falso

- ligado ou desligado

2.2 Constantes

Entendemos que uma informação é constante quando não sofrem nenhuma variação no

decorrer do tempo.

Ex: p 3,1416

Salário mínimo

2.3 Variável

Uma informação é classificada como variável quando tem a probabilidade de ser

alterada em algum instante no de correr do tempo.

Ex: temperatura, peso

2.3.1 Formação de Identificadores – Regras básicas

Ø Devem começar por um caractere alfabético

Ø Podem ser seguidos por mais caracteres alfabéticos e/ou numéricos

Ø Não é permitido o uso de caracteres especiais

Ø O pascal não é sensitive, não faz diferença entre maiúsculo e minúsculo

Exemplos

Válidos

Notas; x; k7; bj153, fgts

Inválidos

5x ; e(13) ; a :B ; x-y ; nota/2

2.3.1 Declaração de variáveis

No ambiente computacional as informações variáveis são gravadas em disp ositivos

eletrônicos analogicamente chamados de memória.

Memória = armário

Variáveis = gavetas

Portanto precisamos definir nomes para determinadas gavetas especificando qual o

“material dos objetos” que lá podem ser armazenados. Regra si ntática:


Exemplos:

X: inteiro;

Nome, endereço, data: caractere;

ABC, peso, dólar: real;

sábado, 3 de maio de 2008

Instalação KickStart ?!?!? (Parte 2)

Aqui um exemplo do anaconda-ks.cfg com todas as opções de cada seção comentadas e explicadas. xD

# Kickstart file automatically generated by anaconda.

#Essa linha diz ao sistema para fazer uma nova instalação em vez de fazer um upgrade em uma instalação existente. Para fazer upgrade em uma instalação existente é só substituir o install por upgrade.
install

#Aqui você põe onde vai estar seu repositório.
#cdrom - Instala a partir de um cdrom ou dvd
#harddrive - instala a partir do disco rígido. Pode ser definida a partição onde estarão os arquivos ou o diretório:
# Para partição: harddrive –partition=
# Para diretório: harddrive –partition= –dir=/diretorio/da/instalacao
#nfs - instala a partir de um servidor NFS
# Para servidor: nfs –server=
# Para diretório no servidor: nfs –server= –dir=/diretorio/da/instalacao
#url - Instala a partir de um servidor remoto FTP ou HTTP
# Para http: url –url http:///
# Para ftp: url –url ftp://:@/
cdrom
#Lingua a ser instalada como padrão
lang pt_BR.UTF-8

#layout do teclado
keyboard br-abnt2

#configuração de video
#xconfig - Configura o X. Se essa informação for omitida ele pedirá para você configurar o servidor X durante a instalação, isso se você quiser
#instalar o X; caso contrário nada precisa ser especificado aqui.
# –card= - Usa driver de video especificado. Podemos encontrar uma lista em /usr/share/hwdata/Cards. Caso essa informação seja omitida será
#utilizado o driver padrao pci. (placas agp também podem ser detectadas e funcionarão com esse drive desde que sejam suportadas xD)
# –videoram= - Especifica quantidade de RAM que a placa de video tem.
# –monitor= - usa o monitor especificado. Uma lista pode ser encontrada em /usr/share/hwdata/MonitorsDB
# –hsync= - especifica frequencia horizontal do monitor
# –vsync= - especifica frequencia vertical do monitor
#CASO –hsync e –vsync SEJAM ESPECIFICADAS –monitor IRÁ SER DESCARTADO!
# –defaultdesktop= - especifica o gerenciador padrão de janelas (GNOME, KDE, FLUXBOX)
# –startxonboot - Use essa opção para usar a tela de login modo gráfico
# –resolution= - especifica resolução da tela a ser usada como padrão, escolha uma que você tenha certeza que seja compativel com sua placa
#de video e monitor. Escolha entre: 640×480, 800×600, 1024×768, 1152×864, 1280×1024, 1400×1050, 1600×1200.
# –depth= Quantidade (é quantidade mesmo? profundidade? qualidade? o.O) de cores a serem usadas por padrão. Escolha entre 8, 16, 24, e 32.
xconfig –driver “ati” –resolution 800×600 –depth 24

#configurações de rede
#network - configura intefaces e modo de conexão.
# –bootproto= - pode ser dhcp ou static
# dhcp = utiliza o sistema do servidor DHCP para conseguir sua propria configuração
# static = O método static necessita que você entre com todas as informações de rede. Como o nome já diz essa configuração será usada
#durante e após a instalação pois é ESTÁTICO (duh o.O). Você terá que epecificar o IP address, mascara de rede, gateway, nome do servidor.
#Lembrando que nesse modo se você for fazer o exemplo que citei no começo, de instalar em varias maquinas de uma só vez, você terá problemas
#pois terá conflito de IP! nesse caso seria interessante omitir essa informação para que ele pedisse para você escolher durante a instalação.
network –device eth0 –bootproto static –ip 127.0.0.1 –netmask 255.255.255.0 –gateway 127.0.0.1 –nameserver 127.0.0.1 –hostname

nome-do-pc

#senha do root
#bom, aqui é o seguinte, no exemplo abaixo temos a senha 123456 já encriptada como você pode perceber heheh… o atributo –iscrypted apenas
#diz que a senha já está encriptada, ele não faz essa encriptação.
rootpw –iscrypted $1$AMbXlsNo$tHn7VqXwBBqRt0×1MWO/n/

#configuração do firewall
#sintaxe: firewall [--trust=] [--port=]
#nivel de segurança pode ser: –high (alto), –medium (medio), –disabled (desabilitado)
#–trust - bom, aqui você adciona os dispositivos que são confiaveis e que os pacotes que vem deles irão passar direto pelo firewall.
#ex.: –trust eth0
#para definir mais de um não use virgulas ou coisas do tipo… faça assim: –trust eth0 –trust eth1
# - selecione que tipo de protocolo é permitido passar: –dhcp –ssh –telnet –smtp –http –ftp
#–port= - Você pode especificar de quais portas podem passar pelo firewall usando protocolos ou o número da porta específica.
#ex.: para permitir acesso IMAP pelo seu firewall, especifique imap:tcp.
#ex².:para permitir acesso de pacotes UDP para a porta 1234, especifique 1234:udp. Aqui você pode especificar várias portas separadas por VÍRGULA xP
firewall –medium –trust eth0 –port=22:tcp

#Configurar as opções de autenticação
#–enablemd5
# Use encriptação md5 para senhas de usuários.
#–enablenis
# Liga o suporte a NIS. Por padrão, –enablenis usa qualquer domínio que ele encontra na rede. O domínio quase sempre tem que ser
#especificado manualmente pelo comando a seguir.
#–nisdomain=
# Nome do domínio NIS usando em serviços NIS.
#–nisserver=
# Servidor para usar serviços NIS
#–useshadow ou –enableshadow
# Usa senhas shadow.
#–enableldap
# Liga suporte a LDAP em /etc/nsswitch.conf, permitindo seu sistema captar informação sobre usuários (UIDs, diretórios home, shells, etc.)
#de um diretório LDAP. Para usar essa opção você tem que instalar o pacote nss_ldap.
#–enableldapauth
# Usa LDAP como método de autenticação.
#–ldapserver=
# Use essa opção para especificar o servidor LDAP que você usará.
#–enableldaptls
# Essa opção habilita o LDAP para mandar logins e senhas encriptador para um servidor LDAP antes da autenticação.
authconfig –enableshadow –enablemd5

#fuso horario. A opção –utc especifica que a hora do seu sistema é baseada no UTC (algo a ver com o Meridiano de Greenwich xP)
timezone –utc America/Maceio

#config. de boot… meio intuitivo né? mas local de onde vai fazer o boot… e driver primario…
#bootloader - Especifica como o gerenciador de boot deve ser instalado e se vai ser LILO ou GRUB.
# –append= - Especifica parametros do kernel. Para especificar vários use apenas espaço entre eles.Exemplo:
# bootloader –location=mbr –append=”hdd=ide-scsi ide=nodma”
# –location= - Especifica onde o boot será gravado. Escolha entre: mbr (padrão), partition (instala o gerenciador de boot no primeiro setor
#da partição que contem o kernel), ou none (não instala o gerenciador de boot).
# –password= - Se for usar o GRUB esse parametro define a senha do GRUB.
# –md5pass= - mesma coisa do –password só que aqui a senha já tem que estar encriptada
# –useLilo - usa o LILO no lugar do GRUB (que é padrão)
bootloader –location=mbr –password=globsglobs

#bom aqui vai configs de particionamento…
#esse comando serve remover partições. Por padrão essa opção vem comentada.
#parametros:
# –linux
#Apaga todas as partições linux.
#–all
#Apaga todas as partições.
#–drives=
#Apaga partições do drive escolhido.
#–initlabel
#Essa serve para que na inicialização o sistema que está sendo instalado seja o padrão.
clearpart –all –initlabel

#comando para limpar todas as partições que são tidas como inválidas
zerombr yes

#Aqui temos alguns exemplos de criação de partições:
#usamos:
# –fstype para definir o tipo de partição
# –size para definir o tamanho
# –grow para indicar que a partição deve ocupar todo o espaço disponivel após as outras estarem em seu devido lugar.
part /boot –fstype ext3 –size 100
part /var –fstype ext3 –size 1 –grow
part swap –size 1024
part / –fstype ext3 –size 10000

#Aqui segue a lista de pacotes que você quer q ele instale.
#Os que têm uma @ antecedendo-os indica que é um grupo de pacotes. Os demais são pacotes específicos.

%packages
@development-libs
@development-tools
@system-tools
nash-5.1.19-1
chkconfig-1.3.30-1
expat-1.95.8-8.2.1
atk-1.12.2-1.fc6
ncurses-5.5-24.20060715

#embaixo do %pre você coloca os comandos para serem executados antes de começar a instalação. (opcional)
%pre

#embaixo do %post você coloca os comandos para serem executados assim que a instalação for terminada (opcional). Lembrando que não é possível copiar arquivos provinientes da mídia de instalação. Sendo assim você pode definir alguns parâmetros do sistema como configuração de rede, firewall, selinux, etc…
%post –nochroot

#para criar ou editar algum arquivo que foi criado na nova instalação você terá que inserir o parâmetro –nochroot após o %post e inserir o /mnt/sysimage/ antes da pasta ou arquivo que você deseja criar ou editar já que a instalação nova é montada nesse diretório…

mkdir /mnt/sysconfig/pastaqualquer

sexta-feira, 2 de maio de 2008

Instalação KickStart ?!?!?

Imagine-se na seguinte situação… Você tem uns 10 pc’s para instalar o Fedora com personalização de pacotes e todos tem que ser exatamente iguais e você tem apenas um dia de trabalho para terminar essa tarefa… ideias? É aí que entra a KickStart!

Kickstart é um modo de instalação automatizada onde você pode criar um arquivo contendo as respostas para todas as perguntas que são feitas durante uma instalação típica. Uma utilização bem prática para o KickStart é para quem quer fazer a mesma instalação em várias máquinas, pois tanto o arquivo que contém as respostas como os pacotes necessários para a instalação podem estar em uma máquina e serem acessados pelas outras da rede; do mesmo modo em que podem estar num cd, dvd, hd local, ftp ou http.

Bom… vamos ao que interessa… essa é a primeira parte de três. Farei desse modo para melhor explicar cada etapa.
Criando o arquivo kickstart (ks.cfg)
O ks.cfg é um arquivo de texto comum que em cada linha terá uma resposta para cada pergunta feita na instalação. O Red Hat a partir do 9 vem com uma aplicação para configuração desse arquivo, mas aqui falarei como fazer seu próprio com um editor de texto qualquer.

O modo mais fácil é fazer a primeira instalação normalmente, que servirá como modelo para as outras. No diretório /root/ você encontrará um arquivo chamado anaconda-ks.cfg, que foi gerado automaticamente com as respostas da sua instalação.

A ordem para as respostas não faz diferença, não precisam estar na ordem da instalação porém o arquivo deve ter a seguinte estrutura:

1 - RESPOSTAS DA INSTALAÇÃO
2 - %pre
#que são comandos a serem executados antes da instalação
3 - %post
#que são comandos a serem executados após a instalação

O %pre e %post são opcionais.
Caso você queira fazer algo manualmente durante a instalação é só omitir a resposta e ele irá lhe perguntar o que fazer ^^.

No próximo post irei colocar aqui um ks.cfg totalmente comentado.

T+ pessoas… xD

quarta-feira, 30 de abril de 2008

LÓGICA DE PROGRAMAÇÃO

LÓGICA DE PROGRAMAÇÃO (Parte 1)

Noções Fundamentais de lógica

Um algoritmo, é um conjunto de instrução que devem ser executadas em uma determinada ordem para atingir seu objetivo. E para que essa ordem possa ser definida, é preciso entender a seqüência lógica pensada para a execução das instruções.

Nos sempre usamos uma seqüência lógica para fazer as coisas do nosso dia-a-dia, se você vai beber água você pega o copo abre a geladeira, pega vazo de água, fecha a porta da geladeira, abre o vazo e coloca a água no copo. (ou você faz isso, ou bem parecido).
Outro exemplo e quando queremos entrar em casa, precisamos encontrar a chave, colocá-la na fechadura e abrir a porta. Já dentro de casa, devemos fechar a porta atrás de nos e trancá-la novamente. Não conseguiríamos entrar antes de abrir a porta. E não faz sentido tentar abrir a porta trancada sem antes usarmos a chave para destrancá-la.

Só iremos construir algoritmos adequadamente quando dominarmos a lógica.


Algoritimizando a Lógica

Construir algoritmos é o objetivo fundamental de toda a programação, mas afinal o que é algoritmo?
“Algoritmo é uma seqüência de passos que visam atingir um objetivo bem definido.”
“Algoritmo é a descrição de um conjunto de ações que obedecidas, resultam numa sucessão finita de passos, atingindo o objetivo.”
Em geral, um algoritmo destina -se a resolver um problema: fixa um padrão de comportamento a ser seguido, uma norma de execução a ser trilhada, com vista a alcançar, como resultado final, a solução de um problema.

Exemplo de um algoritmo (não computacional)

Objetivo: usar um telefone público .
Início
1. tirar o fone do gancho;
2. ouvir o sinal de linha;
3. introduzir o cartão;
4. teclar o número desejado;
5. se der o sinal de chamar
5.1 conversar
5.2 desligar
5.3 retirar o cartão
6. senão
6.1 repetir
Fim

Obs: um programa é um algoritmo escrito em linguagem computacional.

Operadores

Operadores aritméticos

Conjunto de símbolos que representa as operações básicas da matemática.
+ Adição
* multiplicação
** Potenciação
- Subtração
/ Divisão
// Radiciação



Operadores relacionais
Conjunto de símbolos que representa as operações básicas da matemática.

> Maior que
<>= Maior ou igual
<= Menor ou igual = Igual < > Diferente


Funções Pré-definidas
ABS ( ) Valor absoluto
SQRT ( ) Raiz quadrada
SQR ( ) Elevar ao quadrado
ROUND ( ) Valor arredondado
LOG ( ) Logaritmo
SIN ( ) Seno
COS ( ) Co-seno
TAN ( ) Tangente
TRUNC ( ) Valor truncado