Ansible – Conceitos básicos

O Ansible é uma ferramenta que, inicialmente pode ser categorizada como gerenciador de configuração (configuration management), e comparado a ferramentas bastante populares como o Puppet, Salt, Chef e outos. Mas também pode ser perfeitamente utilizado como ferramenta de deploy e orquestração de tarefas.

A comunidade de usuários e desenvolvedores do Ansible tem crescido bastante, eu particularmente acompanho a migração na infraestrutura do Projeto Fedora do Puppet para o Ansible. O Ansible tem também uma comunidade oficial chamada Ansible Galaxy[0], onde é possível obter playbooks para vários tipos de tarefas, e também compartilhar os seus playbooks.

Para ajudar a ter uma ideia melhor sobre a ferramenta, vou comentar algumas características, e em seguida mostrar alguns exemplos de instalação do Ansible e aplicação do playbook.

Playbooks – Como são chamados os arquivos de gerenciamento de configuração, é onde você irá escrever os perfis dos seus servidores, e as tarefas que devem ser executadas. Algo bem legal a respeito dos playbooks, é sua simplicidade, que segue o padrão YAML, que torna bastante fácil para escrever e também para ler outros playbooks.

Agentless – Não é necessário a instalação de agentes nos servidores que serão gerenciados. O servidor com o Ansible realiza uma coleta das informações dos servidores de destino utilizando o OpenSSH para saber o estado, e se é necessário realizar alguma alteração, e se houver diferença entre o que está escrito no playbook, e com o estado atual do servidor de destino, o Ansible realiza as tarefas que estão escritas.

Módulos – Existe uma grande quantidade de módulos integrados para realizar vários tipos de tarefas, como por exemplo testar a conectividade com servidores remotos, gerenciar serviços, e uns módulos que eu particularmente gosto bastante são os módulos  para interagir com provedores de Cloud, isso ajuda bastante em tarefas de escalabilidade de infraestrutura. É possível criar e configurar servidores, interagir com Load Balancers e etc.

Inventário – O inventário é um arquivo onde o Ansible controla grupos de hosts, e no playbook você pode referenciar determinado grupo que já está previamente configurado no inventário. Por exemplo, você pode criar um grupo chamado banco de dados e outro grupo chamado web, onde os hosts do grupo banco de dados serão configurados com um banco de dados MariaDB, e os hosts do grupo web, serão configurados com uma aplicação web, que ler e escreve nos hosts do grupo banco de dados. Em um post mais a frente, vou mostrar como gerar inventários para ambientes dinâmicos, por exemplo com Autoscale, e utilizando o Ansible para fazer a configuração dos hosts e aplicação, usarei como exemplo ambientes na AWS e Rackspace.

Instalação

Para os exemplos, usarei 2 hosts na Digital Ocean, na zona NYC3 que tem suporte a rede interna.
O primeiro host, onde o Ansible será instalado, vou chamar de master, e o segundo host vou chamar lamp1.
O host lamp1 está previamente configurado com a chave publica do host master.

O primeiro passo é habilitar o repositório Epel[1] na sua instalação, para isso faça a instalação do pacote RPM e instale:

wget https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

Instale o pacote:

yum install epel-release-7-5.noarch.rpm

Se a instalação do repositório Epel ocorrer sem problemas, já é possível instalar o Ansible através do Yum.

yum install ansible

Pronto, se não houve nenhum erro, o Ansible está instalado e pronto para trabalhar.

Configuração e inventário

Agora no inventário, vamos criar um grupo chamado lamp, e adicionar o host lamp1.
O arquivo padrão de configuração do inventário é o /etc/ansible/hosts, esse arquivo pode ser alterado em /etc/ansible/ansible.cfg,

inventory      = /etc/ansible/hosts

Para o nosso exemplo vamos usar o arquivo padrão e adicionar o host lamp1 ao grupo lamp. Edite o arquivo /etc/ansible/hosts, e adicione as linhas abaixo:

[lamp]
lamp1

Para fazer um teste, use o módulo de ping para testar a conectividade do host master para o host lamp1.

ansible -m ping lamp1
lamp1 | success >> {
    "changed": false, 
    "ping": "pong"
}

Se acontecer algum erro com este teste, possivelmente está relacionado a autenticação via SSH.

Playbook

Vamos escrever um playbook para instalar e configurar um ambiente LAMP (Linux, Apache, MariaDB e PHP).

Tecnicamente não há nenhum impedimento de onde os playbooks devem ser armazenados, nos nossos exemplos vamos utilizar o path /usr/local/etc/playbooks.

O playbook para instalação do nosso ambiente LAMP e da aplicação /usr/local/etc/playbooks/lamp.yml.

---
- name: Configurar ambiente LAMP
  hosts: lamp
  tasks:
   - name: Instalar Apache (HTTPD)
     yum: name=httpd

   - name: Iniciar HTTPD
     service: name=httpd state=started

   - name: Instalar PHP
     yum: name="{{item}}"
     with_items:
           - php
           - php-common
           - php-cli

   - name: Instalar MariaDB
     yum: name=mariadb-server

   - name: Instalar python-mysqldb
     yum: name=MySQL-python

   - name: Iniciar MariaDB
     service: name=mariadb state=started

   - name: Definir usuario e senha
     mysql_user: login_user=root login_password=123456 user=root password=123456 state=present

Agora vamos executar nosso playbook e acompanhar o resultado:

ansible-playbook /usr/local/etc/playbooks/lamp.yml

O resultado esperado é instalação no host lamp1 dos pacotes do Apache httpd, PHP e o MariaDB configuado com a senha “123456” para o usuário root.
O pacote MySQL-python é um requisito para que o Ansible consiga interagir com o banco de dados.

O playbook feito para este post é bastante simples, mas eu acredito que dá pra apresentar bem a ideia do funcionamento do Ansible, porém se você pretende adotar o Ansible em ambientes corporativos, eu aconselho uma boa leitura da documentação, e também o livro Ansible: Up & Running, onde cada ponto é explicado detalhadamente e também com muitos exemplos práticos.
Uma outra dica, caso não pretenda investir realizando testes em algum provedor na nuvem, é a utilização do Vagrant. No Vagrant é possível carregar um playbook no Vagrant File como provisionamento.

Caso tenha alguma sugestão sobre este post, ou dúvidas, fique a vontade para entrar em contato, ou deixar um comentário.

[0] – http://galaxy.ansible.com/
[1] – https://fedoraproject.org/wiki/EPEL

Referências:

Hochstein, Lorin. Ansible: Up and Running. ” O’Reilly Media, Inc.”, 2014.
Ansible Documentation. About Ansible. Disponível em: <http://docs.ansible.com/>. Acesso em: 14 Jul. 2015.

Posted in Ansible, Cloud, Fedora, GNU/Linux, Python | Tagged , , , | Leave a comment

FUDCon Managua

The FUDCon is a special event to me, because I have the opportunity to meet the guys that I interact almost every day online, and meet new mates from the Fedora community and the local people that attending the event. This year the FUDCon LATAM was held in the pleasant city of Manágua in Nicaragua.

This year, the trip not began so nice to me, I had to rebook the flight on the airport because my passport had only 172 days to expire, the minimum to go to Nicaragua is 180 days and I did not knew it, so because of this I had to ask an invite letter from Neville to issue an emergency passport that is issued in the same day, but after this trouble I landed on time in Managua and everything else occurred nice.

After landed in Managua, I went to an university when the guys were promoting the event to the students. In the end of afternoon, Neville took me and Luis Bacan to a Hotel nearby from the Mansion Teodolinda (Hotel that hosted us), to meet Efren and Oscar, two guys ffrom Mexico that traveled 4 days by bus to attend the FUDCon, they told us their experiences in Mexico and the work that they did unofficially. Now they joined the Fedora Community.

The first day of FUDCon started with a formal presentation by the directors of Universidad de Ciencias Comerciales, the university that hosted the event, and Neville that spoke about the FUDCon and about the Fedora Project. After this, Robert Mayr (robyduck) did a talk about the impact of Fedora.Next in the Fedora websites, followed by Dennis Gilmore that spoke about the Fedora.Next. After the lunch time, started the normal schedule of the event, when I did a talk about the Apache Libcloud (a python lib that I maintain in Fedora), and some interesting activities like the robotic session by Valentin Basel and the talk about Flask by Eduardo Echeverria.

Neville speaking speaking at the opening ceremony.

Neville speaking speaking at the opening ceremony.

In the second day of FUDCon we had a full day of activities with talks, workshops and interacting with the people between the sessions. At this day I did a talk about the Cloud and Big Data SIGs and a workshop to deploy a pseudo distributed Hadoop environment.

At the end of the day, we had a nice hacking session at the Hotel where was useful to some people practice what they learned in the event. A very nice fact on this hacking session was the involvement of Lili, a girl from local staff, in the Fedora website, she started to work after attended a workshop about Fedora Websites by Robert Mayr, and guided by him she did her first commit.

Hacking session at the second day.

Hacking session at the second day.

In the third and last day, was full of talks and hands on activities like arduino hacking by Kiara. I had a free day, and it was very nice, because I had the opportunity to better interact with the people who went to the event, like asking questions about what I said in my talkings, mainly about OpenStack and Hadoop and questions about Fedora in general.

1625545_1503167009941450_685037004879145504_n

The last FUDCon day

At night we had the so much waited FudPub, where we had a tasteful dinner with traditional region’s food. After the dinner was held a very funny Football match.

Dinner at FudPub.

Dinner at FudPub.

A fact very positive at this FUDCon, was the talks with Alejandro, Luis Bazan, Abdel Potty, Itamar, Kiara, Valentin, Rino and all the other guys from LATAM, to discuss about we did in the last year, and align the ideas to improve our community. And was really good to see the people getting involved with the Fedora Project and I hope to helped on this, and I want to thanks Neville, Eduardo Mayorga, Lilli, Fernando and the all the guys from local community that worked to make it happen.

Posted in Community, Fedora, Free Software, FUDCon | Tagged , , | 1 Comment

Hadoop no Fedora 20

Hadoop Elephant

O Hadoop é bastante conhecido pelo MapReduce e pelo seu sistema de arquivos distribuídos o HDFS, que foram suas primeiras implementações. Hoje há um extenso ecossistema de aplicações que fazem com que o Hadoop se torne cada vez mais robusto e com mais recursos.

O Projeto Fedora criou um grupo de interesse especial em Big Data, que trabalha para trazer aplicações relacionadas para a distribuição, e uma das principais forças de trabalho desse grupo foi trazer o Hadoop e seus componentes, sendo a primeira distribuição GNU/Linux a disponibilizar o Hadoop em seus repositórios.

Neste artigo especificamente, vou abordar uma instalação simples do Hadoop no modo pseudo distribuído, onde o objetivo é ter um contato inicial com o Hadoop e/ou trabalhar com a validação de algoritmos em uma amostra de dados.

Os passos abaixo estão considerando que você esteja logado com o usuário root.

Atualize o sistema operacional

yum update

Se você estiver com o Firewall padrão do Fedora ou algum outro, libere as portas TCP 8088, 8020, 50070 e 50075. Um exemplo de regra:

iptables -I INPUT -p tcp --dport 8088 -j ACCEPT
iptables -I INPUT -p tcp --dport 8020 -j ACCEPT
iptables -I INPUT -p tcp --dport 50070 -j ACCEPT
iptables -I INPUT -p tcp --dport 50075 -j ACCEPT

Instale os pacotes do Hadoop

yum install hadoop-mapreduce.noarch hadoop-hdfs.noarch hadoop-common.noarch hadoop-common-native.x86_64 hadoop-client.noarch hadoop-httpfs.noarch hadoop-mapreduce-examples hadoop-tests libhdfs

Edite o arquivo /etc/hadoop/core-site.xml, e faça seguinte alteração

<property>
   <name>fs.default.name</name>
   <value>hdfs://<SEU_HOSTNAME_FQDN>:8020</value>
</property> 

Formate o Namenode

runuser hdfs -s /bin/bash /bin/bash -c "hadoop namenode -format"

Inicie o serviços do Hadoop e o Tomcat

systemctl start hadoop-namenode hadoop-datanode hadoop-nodemanager hadoop-resourcemanager tomcat

Agora crie os diretórios padrão no HDFS

hdfs-create-dirs

Nesse momento, já possível visualizar acessar via interface web a estrutura do HDFS e também obter informações do “cluster”.

* WebHDFS:

http://<SEU_HOSTNAME_FQDN>:50070

* Cluster:

http://<SEU_HOSTNAME_FQDN>:8088

Para testar o Hadoop, você pode executar o exemplo clássico do contador de palavras.

Crie um diretorio de teste no HDFS

runuser hdfs -s /bin/bash /bin/bash -c "hadoop fs -mkdir /user/teste"
runuser hdfs -s /bin/bash /bin/bash -c "hadoop fs -chown root /user/teste"

Baixe um arquivo em texto plano

wget http://danielbruno.eti.br/text/gpl.txt

Adicione o arquivo ao diretório criado no HDFS

hadoop fs -put gpl.txt /user/teste/

Execute o contador de palavras

hadoop jar /usr/share/java/hadoop/hadoop-mapreduce-examples.jar wordcount /user/teste /user/teste/output

Enquanto o algoritmo de teste é executado, você pode acompanhar o processo através da URL de informações do cluster na porta 8088.

Após a finalização do teste, verifique se foi gerado um arquivo de saída

hadoop fs -ls /user/teste/output

Confira o resultado

hadoop fs -cat /user/teste/output/part-r-00000

O arquivo também pode ser lido através da página de navegação do HDFS na porta 50070.

Em breve escreverei um tutorial de um cluster com mais nós, para executarmos um exemplo mais complexo e acompanhar o paralelismo acontecendo.

Referências
https://fedoraproject.org/wiki/Big_data_SIG
https://fedoraproject.org/wiki/Changes/Hadoop
http://wiki.apache.org/hadoop/WordCount
White, Tom. Hadoop: The definitive guide. ” O’Reilly Media, Inc.”, 2012.

Posted in Big Data, Cloud, Diversos, Fedora, Hadoop | Tagged , , | Leave a comment

Skype no Fedora 20

Ao instalar o Skype no Fedora 20, ou então fazer o upgrade do Fedora 19 para o 20, O áudio do Skype provavelmente não irá funcionar.
Para contornar este problema, edite o arquivo:

/usr/share/applications/skype.desktop

E altere a linha:

Exec=skype %U

Para:

Exec=env PULSE_LATENCY_MSEC=30 skype %U
Posted in Community, Fedora, GNU/Linux | Tagged , , , | 2 Comments

Instalando o Ruby 1.9.3 no CentOS 6.4

A versão atual do Ruby nos repositórios do CentOS 6 é 1.8.7, e provavelmente você precisa usar uma versão mais recente que essa, para executar uma aplicação como o Octopress ou desenvolver sua própria com Ruby on Rails. Para isso, utilizaremos o RVM, Ruby Version Manager.

Antes iniciarmos o processo de instalação, atualize seu sistema.

sudo yum update

Faça a instalação das dependências necessárias

sudo yum install curl gcc-c++ patch readline readline-devel zlib\
 zlib-devel libyaml-devel libffi-devel openssl-devel make\
bzip2 autoconf automake libtool bison iconv-devel

Instale a versão estável do RVM

curl -L get.rvm.io | bash -s stable

Configure o ambiente RVM, carregando as diretivas fornecidas pelo RVM

source /etc/profile.d/rvm.sh

Para garantir que todas as dependências do RVM estão instaladas, execute o seguinte comando

rvm requirements

Faça a instalação do Ruby 1.9.3

rvm install 1.9.3

Instale também o RubyGems na versão estável

rvm rubygems current

Com o RVM é possível ter um ambiente com mais de uma versão do ruby, para definir a versão padrão, use o seguinte comando

rvm use 1.9.3 --default

Para usuários do Fedora 18 ou superior, a versão nativa do Ruby já é a 2.0, então basicamente basta instalar com YUM.

yum install ruby rubygems
Posted in Fedora | Tagged , , , | Leave a comment

Fórum do Projeto Fedora está de volta!

Endereço do fórum: http://ask.projetofedora.org

Inicialmente a ideia era usarmos o ask.fedoraproject.org, que está hospedado na infraestrutura do Projeto Fedora, e tem suporte de usuários de todas as partes do mundo, porém atualmente o fórum oficial, não tem suporte para outros idiomas além do inglês, e isso ainda é uma grande barreira para grande parte dos usuários brasileiros.

Com isso, após alguns meses a desativação do fórum antigo, decidimos disponibilizar um fórum em português e outro em espanhol, para os usuários não somente do Brasil, mas da América Latina (LATAM) também.

E hoje com uma grande ajuda do amigo Eduardo Echeverria (echevemaster) da venezuela, disponibilizamos o novo fórum em português, que está acessível no endereço ask.projetofedora.org.

A intenção é utilizarmos essa infraestrutura separada, até o fórum oficial ter suporte a outros idiomas, e então realizarmos uma integração dos dados.

Posted in Community, Fedora, GNU/Linux, Internet, Opensource, Python | Tagged , , , , | 2 Comments

projetofedora.org is coming back

Brace yourself, projetofedora.org is coming!

Who follows Fedora Project in Brazil probably knows the domain projetofedora.org, and also knows that the applications that ran there is out from some time.

Recently we migrate the ownership of the domain to the Fedora Project. But Why? To avoid duplication of work, the effort and focus on content creation in the infrastructure maintained by the project, and to follow the guidelines and philosophy of the Fedora Project.

And now, what will happen?
The domain projetofedora.org, will redirect to http://fedoraproject.org/wiki/pt_BR, that is the wiki page in brazilian portuguese, and we’ll set the subdomain ask.projetofedora.org to an instance of askbot with Brazilian Portuguese hosted on OpenShift, Initially the maintenance of the forum will be made ​​by me (any help is welcome), because the ask.fedoraproject.org don’t support other languages than English yet, and here in the LATAM region it is a big limitation for the users that looking for help.

Posted in Community, Fedora, GNU/Linux | Tagged , , | 2 Comments

Fedora on Latinoware 2013

latinoware_oficialLatinoware is a Free Software event that is held annually by Itaipu Technological Park, at Foz do Iguaçu Brazil. This year was held the 10th edition of the event, attended by 4,620 participants from all Brazilian states and 11 countries.

 

 

fedora_ambassadorsThe Fedora Project was represented by 8 Ambassadors, who were: Daniel Bruno, Leonardo Vaz, Eduardo Echeverria (Venezuela), Ramilton Costa, Marcel Ribeiro, Rino Rondan (Argentina), Juan Carlos Lin (Paraguay) and Fernando Cabral, 8 lectures were presented in the official schedule, which were:

Beyond the 4 Fs: What is Fedora effectively doing for Open Source? – Daniel Bruno e Leonardo Vaz
Fedora: Sharing thoughts, experiences and passion – Marcel Dantas
Cloud Computing by OpenShift on Fedora 19 – Fernando Cabral
Openstack, A walkthrough by the Open Source Cloud Computing – Eduardo Echeverria, Luan Cestari, Daniel Bruno e Leonardo Vaz
Fedora Security Lab – Ramilton Costa
Fedora Cloud and Big Data Technologies0 – Daniel Bruno
Fedora Community and Fedora 19/20 – Rino Rondan e Eduardo Echeverria
Joining to Gluster “SuperColony” – Leonardo Vaz

We also have a booth where we delivery hundreds of stickers, live cds, pens and bottons and was also made the installation of Fedora 19 in dozens of notebooks. Another interesting point was the participants’ interest in cloud computing technologies and robotics, where we had the opportunity to present the Icarus project of our Argentinian friend Valentin Basel.

The Fedora Project booth was located between the booth of Red Hat and RDO, it helped for participants who visit us, could interact with the three projects and better understand each other.

Besides the Fedora Ambassadors present, we also have the presence of Diane Mueller, Cloud Evangelist, and Roberto Stainbach, Red hat.

The Latinoware 2013 was a success, with an excellent infrastructure, organization, and a good level of lectures presented. I especially want to thank Silvio Palmieri and Duda Nogueira, for all the support offered, I think we did a good job to reciprocate.

Posted in Diversos, Fedora | Tagged , | Leave a comment

Hospedagem de aplicativos na nuvem. Parte 1: Openshift

Depois de alguns amigos desenvolvedores e/ou empreendedores com suas startups e projetos pessoais, entrarem em contato pedindo ajuda para hospedar suas aplicações com qualidade e baixo custo, resolvi criar dois posts apresentando as duas soluções que costumo indicar, como são duas soluções bem distintas, resolvi separar em dois posts para sua startup ou para sua aplicação.

No primeiro post vou falar sobre o  OpenShift, que é  a solução de PaaS Open Source da Red Hat.

Com o OpenShift, o desenvolvedor pode manter o foco no desenvolvimento da aplicação sem se preocupar com a infraestrutura, e realizar seus deploys de forma bem ágil através das ferramentas disponibilizadas. Atualmente a solução está em developer preview, e cada usuário pode hospedar até 3 aplicativos, ou então hospedar um aplicativo e dedicar os recursos computacionais reservados para as outras duas aplicações para uma única aplicação.

Esses recursos são disponibilizados gratuitamente, com isso você pode por exemplo hospedar 3 aplicações na nuvem, em uma plataforma estável e escalável sem custos. Em breve Red Hat irá lançar a versão comercial da plataforma onde o usuário poderá alocar mais recursos, ter apoio técnico da empresa e muitas outras features, até onde eu sei a versão gratuita continuará disponível para aqueles que não precisam de tantos recursos.

O OpenShift, tem suporte nativo a PHP, Java, Ruby, Pyhton, Perl,  Node.js, rails, cakephp, spring framework, django, tomcat, JBoss e algumas aplicações pré-configuradas como wordpress, drupal, magento, redmine e muitas outras…

Agora que já sabemos o que é, algumas das linguagens, frameworks e aplicações suportadas, tá na hora de fazer o deploy.

O primeiro passo é registrar uma conta em openshift.redhat.com

Após o registro instale, caso não tenha, o ruby 1.8.7+ e git

sudo yum install ruby git

Em seguida instale a ferramenta de linha de comando para gerenciar sua conta e apps.

sudo gem install rhc

Agora configure o seu sistema com a sua conta criada, nesse passo basicamente você terá que fornecer o usuário e senha cadastrados, informar a chave publica e escolher um nome que será o sufixo padrão para suas apps.

rhc setup

Crie sua primeira app, exemplo:

rhc app create -a beta -t php-5.3

Como resultado do comando acima, foi gerada uma URL com o nome da aplicação escolhida que foi beta e com o sufixo escolhido durante o setup que foi dbruno. Espere alguns segundos pela propagação do DNS e acesse a URL gerada no navegador e verá uma página modelo do OpenShift. No diretório onde foi executado o comando para criar a app também foi criado um diretório com o código fonte dessa página modelo, que você pode editar ou adicionar o código fonte a sua app, e deve usar o git para enviar suas modificações para o servidor.

Exemplo da URL gerada:

beta-dbruno.rhcloud.com

Provavelmente você não vai querer utilizar essa URL para a sua app, para isso crie uma entrada do tipo CNAME no registro de DNS do seu domínio apontando para a URL gerada.

O OpenShift tem um recurso chamado cartridge onde são disponibilizados serviços como banco de dados (mysql, postgresql, mongodb) cron, integração continua com jenkins e etc.
Para adicionar um banco MySQL (v. 5.1):

rhc app cartridge add -a beta -c mysql-5.1

Lembrando que beta é o nome da app criada durante esse post e mysql-5.1 é o banco e a versão disponibilizada. No output do comando de criação do mysql será informado o nome do banco, usuário, senha e uma url para o phpmyadmin.

No OpenShift é possível também ter acesso SSH e fazer deploy de aplicações escritas em linguagens que não foram mencionadas neste post, segundo o Fabiano Franz, que é um dos desenvolvedores da plataforma, algumas pessoas veem fazendo deploy de apps em C, C++, LISP, como nos exemplos em:

http://lisp2-atgreen.rhcloud.com/
http://register-elasticcobol.rhcloud.com/register/register.html

No repositório https://github.com/openshift existem algumas aplicações pré-configuradas para serem subidas para a nuvem.

Para maiores informações, recomendo ler a documentação do projeto https://openshift.redhat.com/community/developers/, e acompanhar o twitter @openshift para ficar por dentro das novidades.

No próximo post irei apresentar uma solução também eficiente e de baixo custo, usando o IaaS da Amazon Web Services.

Posted in Cloud, Fedora, Opensource, Tips | Tagged , , , , | 4 Comments

Lightning Talks – FISl 13

O Projeto Fedora está com 5 slots para lightning talks no evento comunitário no FISL 13, que será realizado no dia 26/07 de 11h as 13h na sala 601.

O período de inscrição será até o dia 21/07 as 23:59. A votação das lightning talks será realizada no #fedora-br (Freenode) no dia 22/07 11h (GMT -3).

Cada lightning talk deverá ser apresentada em no máximo 5min, as apresentações selecionadas deverão estar em formato PDF e deverão ser entregues para o coordenador do evento antes do evento comunitário. As perguntas e comentários deverão ser feitos no espaço reservado para discussão.

Para enviar sua proposta preencha o formulário http://goo.gl/zZa6K.

Mais informações sobre o evento comunitário podem ser encontradas em https://fedoraproject.org/wiki/FAD_FISL13.

Posted in Diversos | Tagged , | Leave a comment