<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Another Geek Blog &#187; linux</title>
	<atom:link href="http://geek.linuxman.pro.br/tag/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://geek.linuxman.pro.br</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 16 Dec 2011 01:55:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Sysadmin 201</title>
		<link>http://geek.linuxman.pro.br/geek/sysadmin-201</link>
		<comments>http://geek.linuxman.pro.br/geek/sysadmin-201#comments</comments>
		<pubDate>Mon, 22 Nov 2010 11:00:09 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[trabalho]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1506</guid>
		<description><![CDATA[Agora que você já entendeu os pré-requisitos e os pontos negativos e positivos de ser um sysadmin (contando que tenha lido o Sysadmin 101) aqui vão algumas idéias do que buscar tecnicamente. Recebi um bocado de feedback de outros sysadmins sobre o post anterior via twitter ou IM. Se quiserem postar aqui as respostas mais [...]]]></description>
			<content:encoded><![CDATA[<p>Agora que você já entendeu os pré-requisitos e os pontos negativos e positivos de ser um sysadmin (contando que tenha lido o <a href="http://geek.linuxman.pro.br/geek/sysadmin-101">Sysadmin 101</a>) aqui vão algumas idéias do que buscar tecnicamente.</p>
<p>Recebi um bocado de feedback de outros sysadmins sobre o post anterior via twitter ou IM. Se quiserem postar aqui as respostas mais gente vai poder ver. <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Minha experiência pessoal é como sysadmin de redes (na época basicamente com equipamentos Cisco) e com Linux/Unix. Mas certeza que a idéia geral serve pra quem pensa em seguir carreirar como Sysadmin Microsoft, Oracle ou qualquer outra variação.</p>
<p>Já pegando o gancho aqui vale a pena citar o seguinte: Quanto mais especializado você for melhor você vai ganhar e menor vai ser o mercado de trabalho.</p>
<p>Explicando: Não tem muitos sysadmins especializados em deployment de super-computadores híbridos para análise meteorológica. Esses caras ganham uma boa grana. Mas em compensação quantos super-computadores tem por ai? Você precisa se decidir o quão especialista quer ser e definir seu plano de carreira.</p>
<p>Independente de que tipo de sysadmin que deseja ser existem algumas coisas que, no meu ponto de vista, são extremamente básicas e já vi muito nego que dá carteirada com certificação passando de otário por não saber o básico.</p>
<h2>Redes</h2>
<p>IMHO a primeira coisa a se saber é redes. TCP/IP. Não perca tempo com outras tecnologias se não pretende ser sysadmin de rede. (Vale ressaltar aqui que eu estou em dívida comigo mesmo por ainda não ter estudado IPv6 à fundo).</p>
<p>A impressão que eu tenho é que um sysadmin que não sabe rede é como um médico que não sabe dividir o corpo humano em cabeça, tronco e membros. Mas acredite, isso acontece direto. Quando eu trabalhava com redes era ocorrência diária o time de Windows ou Unix mandar chamados de &#8220;problema de rede&#8221; dizendo que o serviço X ou Y não estava acessível, mas &#8220;o servidor está OK&#8221;.</p>
<p>Não precisava mais do que 5 minutos de troubleshooting pra descobrir que o serviço não estava rodando, que estava dando connection refused, o processo dava reset na conexão ou outra coisa qualquer, totalmente não-relacionada a rede. Faça um favor para você mesmo e evite pagar de otário aprendendo a utilizar ping, netstat, route.</p>
<p>E sysadmins Microsoft em geral parecem ter um especial dificuldade em entender o conceito de &#8220;default gateway&#8221;. Então se você for trabalhar com MS e souber isso, já largou na frente. <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Troubleshooting</h2>
<p>E falando em troubleshooting eu deveria ter começado é com isso. Capacidade de efetuar troubleshooting é simplesmente a mais importante qualidade na vida de um sysadmin.  E eu penso que &#8220;troubleshooting skills&#8221; nada mais é do que apenas um nome chique pra &#8220;bom-senso&#8221;, então todo mundo deveria ter, mas 30 segundos na Internet me mostram que isso não é bem verdade.</p>
<p>Apesar de ser uma coisa que eu considero como um talento nato o mesmo com certeza pode e deve ser melhorado. Ao invés de fugir de problemas encare-os de frente e tente resolver todo tipo de pepino que aparecer na sua frente. Faça uma Wiki pessoal utilizando algo como o <a href="http://notebook.google.com">Google Notebook</a> ou <a href="http://www.tiddlywiki.com/">TiddlyWiki</a> e mantenha registro de como solucionou problemas. Estude estratégias de resolução de problemas, como a minha favorita <a href="http://en.wikipedia.org/wiki/Divide_and_conquer_algorithm">Divide and Conquer</a>, e lembre-se sempre que você não é tão especial quanto você acha. Grandes chances de alguém já ter tido o mesmo problema que você está tendo. E nesse caso o Google é seu amigo. Aliás, seguindo o link que o <a href="http://blog.andreyev.net/2010/11/sysadmin-1011.html">Andreyev postou aqui</a>, <a href="http://www.googleguide.com/advanced_operators_reference.html">aprenda a usar o Google direito</a>!</p>
<h2>As bases</h2>
<p>Então considerando que você já está OK com os dois pontos anteriores, vamos falar da sua área de atuação. E aqui vou usar meu exemplo pessoal como sysadmin Linux.</p>
<p>Antes de sair por ai assinando seu email como sysadmin e <a href="http://br.groups.yahoo.com/group/shell-script/message/32123">tomar uma bofetada como essa</a>, conheça muito bem as bases e raízes do sistema. Saiba a diferença entre sistemas derivados de <a href="http://en.wikipedia.org/wiki/UNIX_System_V">System V</a> e <a href="http://en.wikipedia.org/wiki/BSD">BSD</a>, <a href="http://www.oreillynet.com/linux/cmd/">leia e aprenda</a> a maior quantidade de comandos que conseguir.</p>
<p>Conheça a <a href="http://en.wikipedia.org/wiki/Unix_directory_structure">estrutura de diretórios Unix</a> e o <a href="http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard">Filesystem Hierarchy Standard</a> .</p>
<p>Deixe de ser fan-boy de distribuição, já que um bom sysadmin Linux deve ser capaz de sentar na frente de um console, determinar que distribuição está rodando e sair trabalhando. E sim, Ubuntu é lindo, fácil de instalar e cheio de aplicações (eu mesmo uso), mas o fato de você ter ele instalado em dual-boot no seu micro de casa a 6 meses não te qualifica como sysadmin.</p>
<p>Hoje em dia sou preguiçoso, mas no passado já fui mais ativo e perdi as contas de quais distribuições usei. Cheguei a ter uma máquina de teste onde toda semana eu instalava algo diferente, como <a href="http://en.wikipedia.org/wiki/TurboLinux">TurboLinux</a> e <a href="http://en.wikipedia.org/wiki/Progeny_Linux_Systems">Progeny</a>. Sempre um exercício interessante.</p>
<p>Considere usar algo um pouco mais baixo-nível por um tempo, como <a href="http://www.slackware.com/">Slackware</a> ou <a href="http://www.gentoo.org/">Gentoo</a>, mas do ponto de vista comercial preocupe-se mesmo com <a href="http://www.redhat.com">RedHat</a>, <a href="http://www.novell.com/home/">SuSE</a> e <a href="http://www.ubuntu.com">Ubuntu</a>. Aliás, minha experiência corporativa até o momento diz que a RedHat reina absoluta. Estudar essa distribuição em particular é interessante. Use o <a href="http://www.centos.org/">CentOS</a> caso, como eu, não tenha US $800 sobrando pra comprar uma licença.</p>
<p>Aprenda a compilar um kernel, compilar pacotes, utilizar gerenciadores de pacotes, e instalar módulos do Perl ou Ruby via CPAN ou Gem.</p>
<p>Por favor, aprenda permissões e saiba parâmetros do chown e chmod. Utilizar o sudoers e saber da existência do /etc/securetty também não machuca ninguém. Não rele no /etc/passwd via editor de texto, mas se realmente não tiver outra opção utilize o vipw!</p>
<h2>Scripting</h2>
<p>Fato: Mais cedo ou mais tarde você vai precisar criar um script pra alguma coisa. Por isso aprenda shell script muito bem. Eu diria que é um diferencial excelente na hora de procurar emprego. Mas nada de aprender mais ou menos e sair cantando de galo por ai. Saber fazer um &#8220;pipe grépe&#8221; não é escrever shell script.</p>
<p>E uma coisa que acompanha shell script tão bem quanto café acompanha leite é expressão regular. Poucos sysadmins conhecem regex e a vida é MUITO, MUITO mais fácil com ela.</p>
<p>E se quiser ir um pouco mais fundo (dica: sempre queira), aprender um outra linguagem mais complexa é sempre interessante. Pessoalmente escolhi Python, mas conheço também um pouco de Perl e gostaria muito de ter tempo pra estudar Ruby. Essas linguagens mais complexas e cheias de recursos podem acabar facilitando sua vida reduzindo a quantidade de código que precisaria para fazer a mesma coisa em Bash, por exemplo.</p>
<p>E aqui vale enfatizar: Não invente moda. Nada de criar um script gigante e cheio de frescura se puder resolver o problema só um find -exec.</p>
<h2>Seja preguiçoso</h2>
<p>Isso mesmo. Pense sempre o seguinte: Como eu consigo executar essa tarefa com o menor esforço possível? Ou então: Como eu posso automatizar essa atividade pra não precisar fazer isso todo dia? E ainda: O que eu posso fazer pra parar de ter esse problema e nego me enchendo o saco todo fim do mês?</p>
<p>Lembre-se que o at, a crontab ou outros schedulers são seus amigos. Criar um daemonzinho utilizando um shell script também pode ser uma saída para algumas coisas.</p>
<p>E caso precise fazer algo que realmente não possa ser 100% automatizado faça uma excelente documentação do processo e deixe em algum lugar disponível para consulta não só sua como de qualquer outro colega. Assim a próxima vez o processo pode passar para mãos mais inexperientes ou simplesmente pra quem estiver disponível. Não precisa ser necessariamente você.</p>
<p>E por falar em preguiça, por hoje chega.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/cisco" title="cisco" rel="tag">cisco</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/network" title="network" rel="tag">network</a>, <a href="http://geek.linuxman.pro.br/tag/sysadmin" title="sysadmin" rel="tag">sysadmin</a>, <a href="http://geek.linuxman.pro.br/tag/trabalho" title="trabalho" rel="tag">trabalho</a>, <a href="http://geek.linuxman.pro.br/tag/unix" title="unix" rel="tag">unix</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/sysadmin-201/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Exciting times</title>
		<link>http://geek.linuxman.pro.br/geek/exciting-times</link>
		<comments>http://geek.linuxman.pro.br/geek/exciting-times#comments</comments>
		<pubDate>Wed, 17 Nov 2010 19:43:35 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[btrfs]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[wayland]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1503</guid>
		<description><![CDATA[Parece que vamos entrar em mais uma onda de novidades e grandes revoluções no Linux. Não sei vocês, mas eu tenho a impressão que as coisas estão meio estacionadas faz um tempo. Eu mesmo estou usando na minha workstation do trabalho um Ubuntu 9.10 e não vejo o menor motivo pra upgrade. Parece que nos últimos [...]]]></description>
			<content:encoded><![CDATA[<p>Parece que vamos entrar em mais uma onda de novidades e grandes revoluções no Linux.</p>
<p>Não sei vocês, mas eu tenho a impressão que as coisas estão meio estacionadas faz um tempo. Eu mesmo estou usando na minha workstation do trabalho um Ubuntu 9.10 e não vejo o menor motivo pra upgrade. Parece que nos últimos anos nada digno de nota aconteceu. Ou talvez tenha, mas só não foi nada que me interessou.</p>
<p>Porém para um futuro próximo parece que vamos ter um <a href="http://br-linux.org/2010/o-patch-de-200-linhas-que-multiplica-o-desempenho-no-linux/">aumento de performance sensacional</a>, um <a href="https://btrfs.wiki.kernel.org/index.php/Main_Page">filesystem de gente grande</a> e uma <a href="http://wayland.freedesktop.org/">camada gráfica decente</a> . Isso tudo num espaço de talvez um ano?</p>
<p>Tô na pilha para colocar as mãos num Ubuntu 11.10 e descobrir que ele roda melhor, mais rápido, mais confiável e mais bonito na mesma máquina que estou usando hoje.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/btrfs" title="btrfs" rel="tag">btrfs</a>, <a href="http://geek.linuxman.pro.br/tag/kernel" title="kernel" rel="tag">kernel</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/ubuntu" title="ubuntu" rel="tag">ubuntu</a>, <a href="http://geek.linuxman.pro.br/tag/wayland" title="wayland" rel="tag">wayland</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/exciting-times/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Criando DNS dinâmicos com sua conta no DreamHost</title>
		<link>http://geek.linuxman.pro.br/geek/criando-dns-dinamicos-com-sua-conta-no-dreamhost</link>
		<comments>http://geek.linuxman.pro.br/geek/criando-dns-dinamicos-com-sua-conta-no-dreamhost#comments</comments>
		<pubDate>Fri, 08 Oct 2010 11:30:57 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1454</guid>
		<description><![CDATA[Sou cliente do DreamHost já faz um tempo e acho o serviço deles sensacional. Uma feature que eu ainda não tinha usado é a API que eles disponibilizam para todos os clientes. Bem bacana e flexível. Como em casa eu tenho IP dinâmico e vez por outra ele muda justamente quando preciso acessar de volta [...]]]></description>
			<content:encoded><![CDATA[<p>Sou cliente do DreamHost já faz um tempo e acho o serviço deles sensacional.</p>
<p>Uma feature que eu ainda não tinha usado é a API que eles disponibilizam para todos os clientes. Bem bacana e flexível.</p>
<p>Como em casa eu tenho IP dinâmico e vez por outra ele muda justamente quando preciso acessar de volta resolvi aproveitar e fiz um shell script quick&#8217;n dirty pra usar esse recurso bacana.</p>
<p>Sei que existem diversos serviços de DNS dinâmico por ai, mas preferi essa alternativa que pode ser útil pra mais alguém com uma necessidade parecida. <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://pastebin.com/XTK05EEV">Tá aqui o script</a>.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/bash" title="bash" rel="tag">bash</a>, <a href="http://geek.linuxman.pro.br/tag/dreamhost" title="dreamhost" rel="tag">dreamhost</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/shell" title="shell" rel="tag">shell</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/criando-dns-dinamicos-com-sua-conta-no-dreamhost/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Túnel SSH reverso</title>
		<link>http://geek.linuxman.pro.br/geek/tunel-ssh-reverso</link>
		<comments>http://geek.linuxman.pro.br/geek/tunel-ssh-reverso#comments</comments>
		<pubDate>Thu, 07 Oct 2010 11:30:45 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1448</guid>
		<description><![CDATA[Dica rápida e muito útil: Se você já precisou acessar um servidor Linux atrás de um NAT sobre qual você não tem controle sabe como seria bom poder iniciar a conexão do lado do servidor conectando de volta em você. Isso é possível com um túnel SSH reverso. A idéia é que o servidor que [...]]]></description>
			<content:encoded><![CDATA[<p>Dica rápida e muito útil:</p>
<p>Se você já precisou acessar um servidor Linux atrás de um NAT sobre qual você não tem controle sabe como seria bom poder iniciar a conexão do lado do servidor conectando de volta em você.</p>
<p>Isso é possível com um túnel SSH reverso. A idéia é que o servidor que você deseja acessar inicia a conexão do lado dele, conecta-se na sua máquina e disponibiliza, via túnel SSH uma porta de volta pra ele.</p>
<p><a href="http://geek.linuxman.pro.br/wp-content/uploads/2010/10/openssh.gif"><img class="aligncenter size-full wp-image-1451" title="openssh" src="http://geek.linuxman.pro.br/wp-content/uploads/2010/10/openssh.gif" alt="" width="520" height="155" /></a></p>
<p>Eu uso isso como um acesso rápido de casa para a empresa naqueles casos onde preciso só acessar rapidamente alguma coisa vinha linha de comando. Tenho acesso VPN se precisar de email, Terminal Services, etc. Seria possível fazer tudo via túnel, mas ai o desempenho não fica grandes coisas e nem é tão conveniente.</p>
<p>O comando (a ser executado do servidor atrás do NAT) é:</p>
<pre>ssh -nNT -R 2222:localhost:22 username@suamaquina</pre>
<p>Uma vez estabelecido o túnel você pode conectar de volta à partir da sua máquina utilizando:</p>
<pre>ssh -p 2222 username@localhost</pre>
<p>Como é possível que a conexão caia, o processo trave ou sei lá o que mais, recomendo os seguintes truques:</p>
<ul>
<li>Use <a href="http://www.dicas-l.com.br/arquivo/logando_com_seguranca_num_servidor_ssh_sem_uso_de_senha.php">chaves públicas para autenticação</a>, assim não precisa de senha</li>
<li>Rode a sessão inicial dentro do <a href="http://www.gnu.org/software/screen/">screen</a>, isso evita perder o console</li>
<li>Rode o túnel dentro de um loop while, pro processo poder ser restaurado caso morra</li>
<li>Pra evitar alguém te sacanear crie um usuário dedicado pra essa conexão e aponte o shell dele para /bin/false</li>
</ul>

	Tags: <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/shell" title="shell" rel="tag">shell</a>, <a href="http://geek.linuxman.pro.br/tag/ssh" title="ssh" rel="tag">ssh</a>, <a href="http://geek.linuxman.pro.br/tag/sysadmin" title="sysadmin" rel="tag">sysadmin</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/tunel-ssh-reverso/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Multi Master Replication Manager (MMM)</title>
		<link>http://geek.linuxman.pro.br/geek/multi-master-replication-manager-mmm</link>
		<comments>http://geek.linuxman.pro.br/geek/multi-master-replication-manager-mmm#comments</comments>
		<pubDate>Sat, 02 Oct 2010 23:53:42 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mmm]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[replication]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1418</guid>
		<description><![CDATA[UPDATE: Acho que arrumei a formatação. Deve estar legível agora. !!!ATENÇÃO &#8211; A visualização de algumas sessões pode estar truncando conteúdo! Pelo jeito a tag &#60;pre&#62; tá quebrada. Preciso olhar isso, mas preguiça, né? Dá pra ler direitinho usando o RSS !!!! Mesmo com a a infra-estrutura toda virtualizada e clusterizada nos ESXi fazer um [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE:</strong> Acho que arrumei a formatação. Deve estar legível agora.<br />
<strong>!!!ATENÇÃO &#8211; A visualização de algumas sessões pode estar truncando conteúdo! Pelo jeito a tag &lt;pre&gt; tá quebrada. Preciso olhar isso, mas preguiça, né? Dá pra ler direitinho usando o <a href="http://geek.linuxman.pro.br/feed">RSS</a> !!!!</strong></p>
<p>Mesmo com a a infra-estrutura toda virtualizada e clusterizada nos ESXi fazer um cluster de MySQL ainda é uma boa idéia.</p>
<p>Não só você pode colocar as duas máquinas em storages diferentes e eliminar mais um ponto de falha mas também você pode dedicar uma (ou mais) VM(s) para read-only.</p>
<p>Isso quer dizer que seus usuários rodando reports e chamando estatísticas/gráficos no meio do dia não vão afetar o desempenho de quem está entrando operações em produção.</p>
<p>Isso dito entra em cena o <a href="http://mysql-mmm.org/">MySQL Multi Master Replication Manager</a> (MMM): Um conjunto de scripts Perl que facilita a replicação e gerenciamento do seu cluster MySQL.</p>
<p>Abaixo os passos que utilizei para criar um cluster de 2 máquinas CentOS 5.5. Vou assumir que você já tem as máquinas em pé com MySQL devidamente instalado.</p>
<p>Além das máquinas rodando o MySQL você vai precisar de uma terceira, que é o monitor. É esse cara que vai manter os olhos no cluster, decidir quando uma máquina morreu e gerenciar os papéis de cada uma.</p>
<p>Nem idéia ainda dos requisitos mínimos desse servidor, visto que apenas fiz um teste pequeno aqui. Mas tá rodando sem reclamar em 1 processador e 512 de RAM.</p>
<h3>Cenário:</h3>
<p>IP Leitura/Gravação MySQL -&gt; 10.0.0.1</p>
<p>IP Somente Leitura MySQL -&gt; 10.0.0.100</p>
<p>IP Servidor MySQL 1 (hostname master) -&gt; 10.0.0.2</p>
<p>IP Servidor MySQL 2 (hostname master2) -&gt; 10.0.0.3</p>
<p>IP Monitor (hostname mon) -&gt; 10.0.0.10</p>
<p>Editando a configuração do MySQL:</p>
<p>Em cada um dos servidores adicione as seguintes linhas embaixo da sessão [mysqld] do <em>/etc/my.cnf</em>:</p>
<pre>
#MMM
read-only
replicate-ignore-db = mysql
binlog-ignore-db = mysql
log-bin=master-binary
relay-log=master-relay
server-id=2
</pre>
<div>Atenção!! master (ali no log-bin e relay-bin) é o HOSTNAME da máquina em questão. Então no meu caso no outro servidor o arquivo receberá as linhas:</div>
<pre>
<div>#MMM</div>
<div>read-only</div>
<div>replicate-ignore-db = mysql</div>
<div>binlog-ignore-db = mysql</div>
<div>log-bin=master2-binary</div>
<div>relay-log=master2-relay</div>
<div>server-id=2</div>
</pre>
<div>Isso vai evitar que mudanças sejam feitas no banco de dados mysql e também define um nome único para os logs que vamos usar mais tarde.</div>
<div>Não esqueça do restart no serviço.</div>
<h3>Instalando o MMM:</h3>
<div>Não sei vocês, mas já passei da idade de compilar pacote na mão. Eu instalo a <a href="http://fedoraproject.org/wiki/EPEL/FAQ#What_is_EPEL.3F">EPEL</a> e já era.</div>
<div>Nos servidores MySQL:</div>
<h3>
<pre>rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum -y install perl-Algorithm-Diff perl-Class-Singleton perl-DBD-MySQL perl-Log-Log4perl perl-Log-Dispatch perl-Proc-Daemon perl-MailTools
yum install mysql-mmm.noarch mysql-mmm-agent.noarch mysql-mmm-tools.noarch</pre>
</h3>
<h3>Configurando os Usuários:</h3>
<p>Dentro de cada servidor precisamos criar 3 usuários: replication, agent e monitor. Abra seu console do MySQL e mande:</p>
<pre>
<pre>GRANT REPLICATION CLIENT                 ON *.* TO 'mmm_monitor'@'10.0.0.%' IDENTIFIED BY 'monitor_password';
GRANT SUPER, REPLICATION CLIENT, PROCESS ON *.* TO 'mmm_agent'@'10.0.0.%'   IDENTIFIED BY 'agent_password';
GRANT REPLICATION SLAVE                  ON *.* TO 'replication'@'10.0.0.%' IDENTIFIED BY 'replication_password';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;</pre>
</pre>
<p>Abra duas sessões (uma em cada MySQL) e não as feche depois de rodar os comandos acima. Com eles executados faça a seguir:</p>
<pre>SHOW MASTER STATUS;</pre>
<p>E o resultado vai ser algo como:</p>
<pre>
<div id="_mcePaste">mysql&gt; SHOW MASTER STATUS;</div>
<div id="_mcePaste">+-----------------------+----------+--------------+------------------+</div>
<div id="_mcePaste">| File                  | Position | Binlog_Do_DB | Binlog_Ignore_DB |</div>
<div id="_mcePaste">+-----------------------+----------+--------------+------------------+</div>
<div id="_mcePaste">| master2-binary.000003 |       98 |              | mysql            |</div>
<div id="_mcePaste">+-----------------------+----------+--------------+------------------+</div>
<div id="_mcePaste">1 row in set (0.00 sec)</div>

mysql&gt;</pre>
<p>Você vai usar essa informação nos comandos abaixo. Note que você deve utilizar o output da execução em uma máquina no input da outra, de forma que crie uma <em>cross-reference</em> entre elas:</p>
<pre>change master to master_host = '10.0.0.3', master_user='replication', master_password='replication_password', master_log_file='master2-binary.000001', master_log_pos=98;</pre>
<p>A seguir vamos editar o <span style="font-family: arial, helvetica; line-height: 16px; font-size: 12px;"><strong>/etc/mysql-mmm/mmm_common.conf:</strong></span></p>
<pre>active_master_role      writer

&lt;host default&gt;
    cluster_interface       eth1
    pid_path                /var/run/mysql-mmm/mmm_agentd.pid
    bin_path                /usr/libexec/mysql-mmm/
    replication_user        replication
    replication_password    replication_password
    agent_user              mmm_agent
    agent_password          agent_password
&lt;/host&gt;

&lt;host master&gt;
    ip      10.0.0.2
    mode    master
    peer    master2
&lt;/host&gt;

&lt;host master2&gt;
    ip      10.0.0.3
    mode    master
    peer    master
&lt;/host&gt;

&lt;role writer&gt;
    hosts   master,master2
    ips     10.0.0.1
    mode    exclusive
&lt;/role&gt;

&lt;role reader&gt;
    hosts   master,master2
    ips     10.0.0.100
    mode    balanced
&lt;/role&gt;</pre>
<p>Este arquivo deve ser exatamente o mesmo nos dois lados do cluster!</p>
<p>E só fica faltando agora editar o <strong>/etc/mysql-mmm/mmm_agent.conf</strong>:</p>
<pre>include mmm_common.conf
this master</pre>
<div>A variável &#8220;this&#8221; indica o hostname. Portanto no meu caso o outro servidor vai ter um &#8220;this master2&#8243;</div>
<p>Com tudo isso pronto vamos no servidor de monitoramento e fazemos:</p>
<pre>rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum install mysql-mmm-monitor.noarch</pre>
<p>Copiamos nele também o <strong>/etc/mysql-mmm/mmm_common.conf.</strong></p>
<p>E depois editamos o <span style="font-family: arial, helvetica; line-height: 16px; font-size: 12px;"><strong>/etc/mysql-mmm/mmm_mon.conf:</strong></span></p>
<pre>&lt;monitor&gt;
    ip                  127.0.0.1
    pid_path            /var/run/mysql-mmm/mmm_mond.pid
    bin_path            /usr/libexec/mysql-mmm
    status_path         /var/lib/mysql-mmm/mmm_mond.status
    ping_ips            10.0.0.1,10.0.0.2,10.0.0.3,10.0.0.100
    auto_set_online     60

    # The kill_host_bin does not exist by default, though the monitor will
    # throw a warning about it missing.  See the section 5.10 "Kill Host
    # Functionality" in the PDF documentation.
    #
    # kill_host_bin     /usr/libexec/mysql-mmm/monitor/kill_host
    #
&lt;/monitor&gt;

&lt;host default&gt;
    monitor_user        mmm_monitor
    monitor_password    monitor_password
&lt;/host&gt;

debug 0</pre>
<h3>Iniciando os serviços:</h3>
<p>Nos servidores MySQL:</p>
<pre>service mysql-mmm-agent start
chkconfig mysql-mmm-agent on</pre>
<p>No servidor de monitoração:</p>
<pre>service mysql-mmm-monitor start
chkconfig mysql-mmm-monitor on</pre>
<p>Se tudo correu bem em alguns segundos você vai ter os serviços rodando e pode ver o status deles à partir do servidor de monitoração com o seguinte comando:</p>
<pre>[root@mon ~]# mmm_control show
  master(10.0.0.2) master/ONLINE. Roles: writer(10.0.0.1)
  master2(10.0.0.3) master/ONLINE. Roles: reader(10.0.0.100)</pre>
<div>Agora é só aprender mais sobre as opções do mmm_control e correr pro abraço.</div>
<h3>Referências:</h3>
<p><a href="http://www.packtpub.com/article/install-manage-use-mmm-for-mysql-high-availability http://www.packtpub.com/article/setting-up-mysql-replication-for-high-availability?utm_source=rk_mysql_cb_abr2_0510&amp;utm_medium=content&amp;utm_campaign=ramsai http://fedoraproject.org/wiki/EPEL/FAQ#What_is_EPEL.3F http://mysql-mmm.org/mmm2:guide">http://www.packtpub.com/article/install-manage-use-mmm-for-mysql-high-availability</a></p>
<p><a href="http://www.packtpub.com/article/setting-up-mysql-replication-for-high-availability?utm_source=rk_mysql_cb_abr2_0510&amp;utm_medium=content&amp;utm_campaign=ramsai">http://www.packtpub.com/article/setting-up-mysql-replication-for-high-availability?utm_source=rk_mysql_cb_abr2_0510&amp;utm_medium=content&amp;utm_campaign=ramsai</a></p>
<p><a href="http://fedoraproject.org/wiki/EPEL/FAQ#What_is_EPEL.3F">http://fedoraproject.org/wiki/EPEL/FAQ#What_is_EPEL.3F</a></p>
<p><a href="http://mysql-mmm.org/mmm2:guide">http://mysql-mmm.org/mmm2:guide</a></p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/centos" title="CentOS" rel="tag">CentOS</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/mmm" title="mmm" rel="tag">mmm</a>, <a href="http://geek.linuxman.pro.br/tag/mysql" title="mysql" rel="tag">mysql</a>, <a href="http://geek.linuxman.pro.br/tag/replication" title="replication" rel="tag">replication</a>, <a href="http://geek.linuxman.pro.br/tag/sysadmin" title="sysadmin" rel="tag">sysadmin</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/multi-master-replication-manager-mmm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Home Office</title>
		<link>http://geek.linuxman.pro.br/geek/home-office</link>
		<comments>http://geek.linuxman.pro.br/geek/home-office#comments</comments>
		<pubDate>Mon, 07 Jun 2010 00:18:38 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[home office]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1394</guid>
		<description><![CDATA[Home Office pra geek é mais do que aquele espaço onde as pessoas vão de vez em quando para pegar algum documento do carro ou verificar os emails pessoais quando estão em casa. É lá que passamos horas a fio entretidos em nossas pesquisas, testes, laboratórios, lendo documentação, fazendo freelas, navegando na internet e bem&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>Home Office pra geek é mais do que aquele espaço onde as pessoas vão de vez em quando para pegar algum documento do carro ou verificar os emails pessoais quando estão em casa. É lá que passamos horas a fio entretidos em nossas pesquisas, testes, laboratórios, lendo documentação, fazendo freelas, navegando na internet e bem&#8230; sendo nerds.</p>
<p>IMHO um bom home office precisa de Internet banda larga, uma rede local sua workstation de trabalho e um servidor de testes e um bom tanto de storage.</p>
<p>Pensando nisso hoje lembrei do meu primeiro home office, quando ainda morava em São Bernardo (circa 2004):</p>
<ul>
<li> Speed 256K</li>
<li>Hub 10Mb/s</li>
<li>Workstation Atlhon 900Mhz/512RAM/80GB (era também o firewall/router)
<ul>
<li>SuSE (??)</li>
</ul>
</li>
<li>Server test Atlhon 750Mhz/512 RAM/40GB
<ul>
<li>Debian</li>
<li>Kurumin</li>
</ul>
</li>
</ul>
<p>E a cara dele era assim:</p>
<p style="text-align: center;"><a href="http://geek.linuxman.pro.br/wp-content/uploads/2010/06/dsc00030.jpg"><img class="aligncenter size-full wp-image-1395" title="dsc00030" src="http://geek.linuxman.pro.br/wp-content/uploads/2010/06/dsc00030.jpg" alt="" width="315" height="420" /></a><a href="http://geek.linuxman.pro.br/wp-content/uploads/2010/06/dsc00033.jpg"><img class="aligncenter size-full wp-image-1396" title="dsc00033" src="http://geek.linuxman.pro.br/wp-content/uploads/2010/06/dsc00033.jpg" alt="" width="560" height="420" /></a></p>
<p>Hoje, meu home office tem:</p>
<ul>
<li>Internet à cabo de 15Mb/s</li>
<li>Firewall / Router / Wifi (<a href="http://www.dd-wrt.com/site/index">ddwrt</a>)</li>
<li>Switch 100Mb/s</li>
<li>Workstation ﻿﻿﻿AMD Athlon(tm) 64 X2 / 2GB RAM / 1.3TB
<ul>
<li>Ubuntu</li>
</ul>
</li>
<li>Múltiplos servidores de teste virtualizados (três hurras para virtualização)
<ul>
<li>Debian</li>
<li>CentOS</li>
<li>Fedora</li>
<li>ArchLinux</li>
<li>Ubuntu</li>
</ul>
</li>
</ul>
<p>Mas em compensação ele é assim:</p>
<p style="text-align: center;"><a href="http://geek.linuxman.pro.br/wp-content/uploads/2010/06/DSCN0127.jpg"><img class="aligncenter size-full wp-image-1397" title="DSCN0127" src="http://geek.linuxman.pro.br/wp-content/uploads/2010/06/DSCN0127.jpg" alt="" width="560" height="420" /></a></p>
<p style="text-align: center;"><a href="http://geek.linuxman.pro.br/wp-content/uploads/2010/06/DSCN0128.jpg"><img class="aligncenter size-full wp-image-1398" title="DSCN0128" src="http://geek.linuxman.pro.br/wp-content/uploads/2010/06/DSCN0128.jpg" alt="" width="560" height="420" /></a><a href="http://geek.linuxman.pro.br/wp-content/uploads/2010/06/DSCN0130.jpg"><img class="aligncenter size-full wp-image-1399" title="DSCN0130" src="http://geek.linuxman.pro.br/wp-content/uploads/2010/06/DSCN0130.jpg" alt="" width="560" height="420" /></a></p>
<p>Pois é&#8230; nem tudo na vida é upgrade. <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/geek" title="Geek" rel="tag">Geek</a>, <a href="http://geek.linuxman.pro.br/tag/home-office" title="home office" rel="tag">home office</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/home-office/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Porquê as interfaces de rede trocaram de posição no Linux?</title>
		<link>http://geek.linuxman.pro.br/geek/porque-as-interfaces-de-rede-trocaram-de-posicao-no-linux</link>
		<comments>http://geek.linuxman.pro.br/geek/porque-as-interfaces-de-rede-trocaram-de-posicao-no-linux#comments</comments>
		<pubDate>Wed, 17 Mar 2010 11:01:03 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1362</guid>
		<description><![CDATA[Já que não são nem 8 da matina e já to aqui faz tempo, aqui vai o problema que tive essa madrugada e a solução. Cenário: Um servidor que estava rodando e funcional há mais de um ano teve um reboot agendado  de madrugada. Depois do reboot recebo alertas que o tal não voltou automaticamente [...]]]></description>
			<content:encoded><![CDATA[<p>Já que não são nem 8 da matina e já to aqui faz tempo, aqui vai o problema que tive essa madrugada e a solução.</p>
<p>Cenário: Um servidor que estava rodando e funcional há mais de um ano teve um reboot agendado  de madrugada. Depois do reboot recebo alertas que o tal não voltou automaticamente como esperado.</p>
<p>Servidor: Dell PE 2850 com 3 NICs: 2 Intel + 1 DLink rodando CentOS 5.2</p>
<p>Remotamente acessei o KVM e vi que o servidor estava OK, no tela de login. Nenhuma mensagem de erro e as interfaces em pé. Como já sou macaco velho na hora pensei que as interfaces de rede tinham mudado de lugar (já vi isso várias vezes), mas não tinha como testar pois elas estão em redes físicas separadas (não dava só pra reconfigurar uma vlan no switch), então tive que vir pra empresa mesmo.</p>
<p>Chegando aqui, dito e feito. As interfaces (eth0 e eth2) alternaram de posição. Eu já tinha visto isso acontecer antes, mas não sem um upgrade de kernel.</p>
<p>A questão é que o servidor estava up há mais de 1 ano, enquanto eu só tenho 8 meses de empresa. Isso significa que meus antecessores podem ter feito upgrade de kernel em um determinado momento, mas nunca deram boot na versão nova. Eu nunca vou saber.</p>
<p>Mas na verdade o problema poderia ter sido evitado facilmente se as interfaces tivessem sido configuradas adequadamente logo de cara.</p>
<p>No RHEL e no CentOS as interfaces são ativadas pelo /etc/sysconfig/network-scripts/ifcfg-ethX. Onde X é o número da interface. Um dos parâmetros que pode ser configurado é HWADDR, onde você amarra o endereço físico (MAC Address) à interface, de forma que na hora de subir a mesma o Linux saberá exatamente qual é qual.</p>
<p><a href="http://www.redhat.com/docs/manuals/enterprise/RHEL-3-Manual/ref-guide/s1-networkscripts-interfaces.html">Aqui tem mais detalhes</a> desse arquivo de configuração, enquanto <a href="http://grokbase.com/topic/2008/01/10/centos-nic-order-detection/4dpkT17x_a9wr2IiIYXTB2tukaA#nfL6o9Li0vqCWnnPp4vXpD_yu0I">aqui tem uma excelente explicação</a> de porquê as interfaces podem alternar de posição.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/centos" title="CentOS" rel="tag">CentOS</a>, <a href="http://geek.linuxman.pro.br/tag/geek" title="Geek" rel="tag">Geek</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/rhel" title="rhel" rel="tag">rhel</a>, <a href="http://geek.linuxman.pro.br/tag/sysadmin" title="sysadmin" rel="tag">sysadmin</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/porque-as-interfaces-de-rede-trocaram-de-posicao-no-linux/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mirror local</title>
		<link>http://geek.linuxman.pro.br/geek/mirror-local</link>
		<comments>http://geek.linuxman.pro.br/geek/mirror-local#comments</comments>
		<pubDate>Wed, 03 Feb 2010 13:30:34 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1343</guid>
		<description><![CDATA[Um post bem geek pra variar&#8230; A maior universidade aqui da região, a Dalhousie, acabou de criar um mirror de software livre. Como se não fosse bom o suficiente ter um mirror fisicamente tão próximo, diminuindo em muito a latência na rede, ainda por cima eles usam o mesmo provedor que eu e tem um [...]]]></description>
			<content:encoded><![CDATA[<p>Um post bem geek pra variar&#8230; <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>A maior universidade aqui da região, a <a href="http://www.dal.ca/">Dalhousie</a>, acabou de criar um <a href="http://mirror.its.dal.ca/">mirror de software livre</a>.</p>
<p>Como se não fosse bom o suficiente ter um mirror fisicamente tão próximo, diminuindo em muito a latência na rede, ainda por cima eles usam o mesmo provedor que eu e tem um PTT (Ponto de Troca de Tráfego) dentro do datacenter deles.</p>
<p>Olhem só o traceroute:</p>
<pre>Host                               Loss%   Snt   Last   Avg  Best  Wrst StDev</pre>
<pre> 1. DD-WRT.home.lan                  0.0%     3    0.5   0.6   0.5   0.7   0.1</pre>
<pre> 2. ???</pre>
<pre> 3. hlfx-asr1.eastlink.ca            0.0%     3    9.8   9.2   8.4   9.8   0.7</pre>
<pre> 4. hlfx-br1.eastlink.ca             0.0%     3    9.0  12.9   9.0  16.2   3.7</pre>
<pre> 5. hlfx-dr3.eastlink.ca             0.0%     2    7.0  21.1   7.0  35.2  19.9</pre>
<pre> 6. dal-gw.eastlink.ca               0.0%     2    7.8   9.8   7.8  11.8   2.9</pre>
<pre> 7. 198.166.1.37                     0.0%     2    8.5   8.1   7.8   8.5   0.5</pre>
<pre> 8. 192.75.96.254                    0.0%     2    9.1   9.3   9.1   9.4   0.3</pre>
<p>Coloquei um download pra rolar, just for fun aqui. Não deu nem graça:</p>
<pre>347,852,800 1.75M/s   in 3m 10s</pre>
<p>Se eu ainda estivesse na universidade onde trabalhava o link entre elas é 1Gbp/s. O gargalo iria ser meu disco! Que coisa linda de imaginar.</p>
<p>Mas com isso eu já consigo viver feliz o suficiente, obrigado. <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/geek" title="Geek" rel="tag">Geek</a>, <a href="http://geek.linuxman.pro.br/tag/internet" title="internet" rel="tag">internet</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/mirror-local/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Restingindo acesso com rbash</title>
		<link>http://geek.linuxman.pro.br/geek/restingindo-acesso-com-rbash</link>
		<comments>http://geek.linuxman.pro.br/geek/restingindo-acesso-com-rbash#comments</comments>
		<pubDate>Tue, 22 Dec 2009 14:34:27 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rbash]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1293</guid>
		<description><![CDATA[Como sysadmins vez por outra a gente precisa dar acesso a clientes, parceiros ou outro tipo de usuário temporário/untrusted aos servidores. Apesar de criar um jail root completo ser a melhor solução muitas vezes é mais trabalho do que o necessário e começa a entrar naquele cenário em que a segurança atrapalha a usabilidade e [...]]]></description>
			<content:encoded><![CDATA[<p>Como sysadmins vez por outra a gente precisa dar acesso a clientes, parceiros ou outro tipo de usuário temporário/untrusted aos servidores. Apesar de criar um jail root completo ser a melhor solução muitas vezes é mais trabalho do que o necessário e começa a entrar naquele cenário em que a segurança atrapalha a usabilidade e os negócios.</p>
<p>Uma forma simples de conseguir uma segurança bacana é utilizar o modo restrito do bash. Com isso habilitado o shell irá desabilitar as seguintes funções:</p>
<ul>
<li>Mudar o diretório (cd)</li>
<li>Mudar o valor das variáveis SHELL, PATH, ENV, or BASH_ENV</li>
<li>Comandos que incluem /</li>
<li>Especificar um arquivo que contenha / como fonte para o comando &#8220;.&#8221;</li>
<li>Usar redirecionamento de output (&gt;, &gt;&gt;, |)</li>
<li>etc (man bash para todas as features)</li>
</ul>
<p>Colocando para rodar:</p>
<p>Crie um link do bash para o rbash e adicione o mesmo em /etc/shells:</p>
<pre>ln -s /bin/bash /bin/rbash
echo /bin/rbash &gt;&gt; /etc/shells</pre>
<p>Depois é só mudar o shell do usuário a ser restringido para usar o rbash:</p>
<pre>usermod -s /bin/rbash username</pre>
<p>Combinando isso com traps (do CTRL+C, por exemplo) você consegue criar um ambiente seguro o suficiente para fornecer serviços e acessos aos seus servidores e ainda assim dormir à noite.</p>
<p>Como diria o SuSE: Have a lot of fun!</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/bash" title="bash" rel="tag">bash</a>, <a href="http://geek.linuxman.pro.br/tag/geek" title="Geek" rel="tag">Geek</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/rbash" title="rbash" rel="tag">rbash</a>, <a href="http://geek.linuxman.pro.br/tag/sysadmin" title="sysadmin" rel="tag">sysadmin</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/restingindo-acesso-com-rbash/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VMware nas madrugadas</title>
		<link>http://geek.linuxman.pro.br/geek/vmware-nas-madrugadas</link>
		<comments>http://geek.linuxman.pro.br/geek/vmware-nas-madrugadas#comments</comments>
		<pubDate>Sat, 12 Dec 2009 18:39:36 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[equallogic]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[vmware]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1276</guid>
		<description><![CDATA[Quem me acompanha no Twitter já percebeu o grande número de posts com o hashtag #vmware. Mergulhamos fundo em virtualização na empresa e eu ando varando as madrugadas migrando a infra-estrutura. Algumas coisas interessantes para dizer sobre isso&#8230; A primeira observação é que a geração anterior de sysadmins a qual eu substituo até começou o [...]]]></description>
			<content:encoded><![CDATA[<p>Quem <a href="http://twitter.com/Ebastos">me acompanha no Twitter</a> já percebeu o grande número de posts com o hashtag #vmware.</p>
<p>Mergulhamos fundo em virtualização na empresa e eu ando varando as madrugadas migrando a infra-estrutura. Algumas coisas interessantes para dizer sobre isso&#8230;</p>
<p>A primeira observação é que a geração anterior de sysadmins a qual eu substituo até começou o processo &#8211; mas infelizmente por falta de fundos ou de apoio ou de conhecimento ou, mais provavelmente, de uma combinação dos três &#8211; fez uma melança horrível. E acertar esse meio-ambiente previamente virtualizado para o nosso novo vSphere tem sido mais complexo do que o previsto.</p>
<p>Com versões diferentes de vmware, número limitado de licenças de vCenter e vSphere (sim&#8230; no momento tenho os dois), uso de diferentes tecnologias e servidores como storage e péssimos posicionamentos dentro do rack migrar uma máquina virtual de um servidor ESX 3.5 para o vSphere pode ser uma tarefa bem ingrata. Principalmente quando você tem uma janela de manutenção limitada.</p>
<p>Imaginem a seguinte situação: Meu vCenter tinha 4 servidores ESX 3.5 sendo gerenciados. 2 numa subnet, 1 em outra subnet e outro numa terceira subnet. Não houve a preocupação de criar uma interface de gerenciamento na subnet de administração. Pior: subnets de níveis de segurança diferente. Então todo o tráfego do VMware passava pelo firewall.</p>
<p>Nem preciso dizer que vmotion não funcionava, né? Mas também não ia adiantar&#8230; No storage criaram um volume para cada ESX, de forma que um não via as VMs do outro. Então o vmotion tinha que ser full. Ah, sim&#8230; E cada ESX tinha apenas máquinas virtuais da subnet a qual a interface de administração pertencia. Trunk é para os fracos. Já falei que vmotion não funcionava?</p>
<p>Resumindo, eram apenas contâineres isolados com uma interface de administração centralizada. Horrível.</p>
<p>O que eu fiz agora, que compramos 4 Power Edges R710 top de linha e um storage EqualLogic foi sapecar placas de rede nos bichos. Cada servidor tem: 1 NIC pro iDrac, 1 NIC pra gerenciamento do vmware (incluindo vmotion), 1 NIC para cada subnet nas quais terei máquina virtual, 1 NIC para a rede de backup, 1 NIC para o storage e ainda 1 NIC disponível no momento (provavelmente utilizarei para fault-tolerance).</p>
<p>Para migrar as máquinas da antiga infra (!??) virtual para essa nova a forma mais fácil tem sido, acredite se quiser, usar o VMware Converter. Em alguns casos consegui fazer uma gambiarra e conectar com um ESXi novo num storage antigo e importar a VM para dentro do meu inventário e depois fazer um vmotion para o EqualLogic, mas foram poucos os casos que consegui.</p>
<p>E a cereja no bolo: No total já devo ter migrado &#8211; entre máquinas virtuais e P2V &#8211; uns 20 servidores. Desses todos, menos 2, eram Linux. Dos dois Windows que migrei um deles deu merda. Só 50% de aproveitamento. Como pode uma coisa dessa? Ainda bem que só servidor de uso interno é Windows, viu? Todos os servidores de serviços aos clientes são Linux. Senão a essa hora eu já tinha pedido para sair.</p>
<p>De qualquer forma tem sido uma tarefa longa e tediosa. Minhas madrugadas basicamente tem sido 2 horas de sono seguidas de 1 hora acordado em ciclos eternos até que acabe de migrar as máquinas do dia ou acabe a janela de manutenção e eu tenho simplesmente que destruir a VM nova e bootar a VM antiga.</p>
<p>Em compensação &#8211; exceto por ontem à noite &#8211; P2V tem sido uma baba. Conecto no servidor, desabilito todos os serviços e o crond, faço o P2V, dou shut na interface do switch onde a máquina físca está, subo a máquina virtual, instalo vmware-tools e corro pro abraço. No dia seguinte &#8211; quando chego no escritório &#8211; vou até o console do servidor e dou shutdown nele. Uns dois dias depois tiro a máquina do data-center e já era.</p>
<p>E aqui entre nós: Quando tenho a oportunidade de dormir eu até descanço mais tranquilo, pois alguns servidores muito críticos que fiz P2V estavam rodando em hardware com mais de três anos e o tempo médio para restaurar os backups é de 5 a 8 horas. Nem tava afins de enfrentar uma merda dessas.</p>
<p>Kudos para quem inventou o conceito de snapshot de file system direto no storage viu?</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/dell" title="dell" rel="tag">dell</a>, <a href="http://geek.linuxman.pro.br/tag/equallogic" title="equallogic" rel="tag">equallogic</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/sysadmin" title="sysadmin" rel="tag">sysadmin</a>, <a href="http://geek.linuxman.pro.br/tag/vmware" title="vmware" rel="tag">vmware</a>, <a href="http://geek.linuxman.pro.br/tag/windows" title="windows" rel="tag">windows</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/vmware-nas-madrugadas/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

