Questão de Engenharia de Software — Desenvolvimento de Software — FGV 2024
Engenharia de Software›Desenvolvimento de Software
Código
fg101503
Banca
FGV
Órgão
TRF - 1ª REGIÃO
Ano
2024
Nível
Superior
Cargo
Analista Judiciário - Área Apoio Especializado - Especialidade: Tecnologia da Informação
O analista Maicon deve configurar um novo runner, chamado RunM, no GitLab CI/CD do TRF1. Os jobs executados no RunM devem ser capazes de interagir de forma plena com um dispositivo externo conectado fisicamente ao host do runner. O escalonamento do RunM pelo GitLab deve ser fixo, e não automático. Maicon deve escolher o executor de runner do GitLab que exige a menor quantidade de customização necessária para a execução de RunM.O executor de runner que Maicon deve escolher é:
Ashell;
Bdocker;
Cparallels;
Dinstance;
Evirtualbox.
Revelar gabarito e comentário▾
GabaritoA — shell;
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
GitLab CI/CD Runners: Escolha do Executor
Gabarito: letra A. O executor shell é o que exige a menor quantidade de customização para que um runner interaja plenamente com um dispositivo externo conectado fisicamente ao host, pois executa os jobs diretamente no sistema operacional do host, sem camadas de virtualização ou contêineres. Além disso, como o escalonamento é fixo (não automático), não há necessidade de configurar orquestração adicional.
A questão aborda a escolha do executor de runner no GitLab CI/CD, considerando dois requisitos principais:
Interação plena com dispositivo externo conectado fisicamente ao host do runner.
Escalonamento fixo, não automático.
Exigir a menor quantidade de customização possível.
Análise dos Executores
Executor
Característica principal
Acesso a dispositivo físico?
Customização necessária
Shell
Executa comandos no shell do host
Sim, acesso direto a todo hardware
Mínima (apenas configurar o shell)
Docker
Executa jobs em contêineres
Requer montagem de volumes ou modo privilegiado
Alta (configurar volume, permissões, etc.)
Parallels
Executa jobs em máquinas virtuais Parallels
Requer configuração de rede/passthrough
Alta (configurar VM e acesso a dispositivos)
Instance
Executa jobs em instâncias específicas (não é executor padrão do GitLab)
Depende da configuração, mas geralmente requer mais customização
Alta (configuração de instâncias externas)
VirtualBox
Executa jobs em máquinas virtuais VirtualBox
Requer configuração de rede/passthrough
Alta (configurar VM e acesso a dispositivos)
Alternativas
Executor de runner GitLab
1Acesso a dispositivo físico
Shell (direto no host)
Docker (requer volume/privilegiado)
Parallels (requer VM/passthrough)
VirtualBox (requer VM/passthrough)
2Escalonamento fixo
Shell (não precisa orquestração)
Instance (configuração externa)
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
O executor shell é a escolha correta. Ele fornece acesso completo ao sistema operacional do host e a todos os seus dispositivos físicos sem necessidade de virtualização ou contêineres. A configuração é simples: basta definir o runner com executor shell e eventualmente apontar o caminho do shell. Nenhuma customização extra é necessária para acessar o dispositivo externo.
Alternativa B — ❌ Incorreta
O executor docker isola os jobs em contêineres. Para interagir com um dispositivo físico, é necessário montar o dispositivo no contêiner (opção --device) ou executar em modo privilegiado (privileged: true), o que exige customização e configuração adicional. Portanto, não é a que exige menor customização.
Alternativa C — ❌ Incorreta
O executor parallels utiliza máquinas virtuais gerenciadas pelo Parallels. Para acessar um dispositivo físico conectado ao host, seria necessário configurar o passthrough de USB ou rede, o que demanda configuração complexa e maior customização.
Alternativa D — ❌ Incorreta
O executor instance não é um executor nativo do GitLab (os executores padrão são: shell, docker, kubernetes, custom, ssh, parallels, virtualbox). Possivelmente a alternativa se refere a instance como runner em uma instância de nuvem, mas isso exigiria configuração de rede, chaves SSH, etc., resultando em maior customização. Além disso, não é um executor padrão.
Alternativa E — ❌ Incorreta
O executor virtualbox também usa máquinas virtuais. Assim como Parallels, requer configuração de passthrough de hardware, acesso a dispositivos USB, rede, etc., exigindo customização significativa.
NÃO CAIA NESSA!
Muitos candidatos podem escolher docker por ser popular, mas esquecem que o acesso a dispositivo físico em contêiner exige configuração extra (modo privilegiado ou montagem de dispositivos). O shell é mais simples e direto para esse cenário.