Необходимо реализовать сервис и клиент для выставления имени хоста в Linux, а также изменения списка DNS серверов.
Сервис слушает сокет в системе по протоколу gRPC.
Сервис описывает .proto файл, из которого при сборке генерится как код самого gRPC сервиса, так и код с документацией для REST (swagger).
Всё это обеспечивает библиотека grpc-gateway: https://github.com/grpc-ecosystem/grpc-gateway
CLI клиент написанный, использующий фреймворк Cobra.
Клиент ждет ввода команды и если она соответствует команде изменения хостнейма, отправляет запрос сервису, который прои зводит изменение и возвращает результат.
Чуть сложнее реализация для изменения у DNS. Тут понадобится несколько команд как для листинга списка DNS серверов, так и для добавления/удаления сервера.