пятница, 29 мая 2015 г.

Как настроить компьютер с Linux так, чтобы им можно было пользоваться отовсюду

Оригинал: How to Set Up Your Linux Dev Station to Work From Anywhere 
Автор: Jeff Cogswell 
Дата публикации: 20 March 2015 
Перевод: Н.Ромоданов 
Дата перевода: апрель 2015 г.

Еще в 2008 году я был в отпуске с семьей, и, пока я сидел на пляже, мои мысли, как и у любого хорошего технаря, продолжали возвращаться к какому-то коду, с которым я в тот день работал ранее, сидя в каюте. Моя супруга настояла, чтобы я оставил ноутбук в каюте, и я, держа в руке только телефон, представлял себе, что должен быть какой-нибудь способ, позволяющий подключиться к работе. В телефоне был интернет и браузер, и было соединение, позволяющее, хоть и плохо, передавать данные. Но тогда я действительно не мог никак работать. Поэтому я был вынужден положить телефон и смириться с отсутствием доступа к коду.


Быстро пробежало почти семь лет, и времена изменились. Теперь я всегда, когда куда-нибудь иду, беру с собой планшет. И с этим планшетом, я могу продолжать выполнять свою работу - не только ту работу, что на планшете, но и всю мою работу. Сегодня с помощью планшета я кодирую в node.js, а затем - в C++ с использованием среды разработки Geany IDE, которая работает на машине с Ubuntu 14.04. И даже эту статью стало возможным набрать с помощью пакета LibreOffice, работающего на той же машине с Ubuntu. Мои файлы с кодом хранятся в репозитории git на другой машине, а прочие мои документы спрятаны в каталоге Dropbox, который синхронизирован со всеми моими машинами. И да, я посмею признаться, что примерно раз в пару месяцев мне нужно запускать машину с Windows, и что-нибудь на ней делать.
Все это осуществляется с помощью планшета с Android. Или, на самом деле, с помощью двух планшетов - Nexus 7 и 11-дюймового Asus Transformer в комплекте с клавиатурой. У меня есть обычный компьютер, которым я пользуюсь для этих работ. Я ношу планшеты в чехле, размер которого чуть больше размера 11-дюймового планшета, и я могу выполнять работу в любом месте, где нахожусь. Сегодня днем я вернусь со своей основной работы. Затем буду сидеть в классе каратэ, где занимается мой сын, что достаточно далеко от места моей работы.
Все, что я хочу сделать, это рассказать вам о том, как я смог создать новый мобильный образ жизни. Я могу работать практически в любом месте, при условии, что есть сигнал мобильной сети. И у меня достаточно емкая батарея резервного питания, позволяющая работать приблизительно 30 часов или что-то около этого. При создании подобного образа жизни я стремился к следующему:
  • (1) Не полагаться только на одно устройство или компьютер, с которого я буду работать, и иметь возможность работать как с моего компьютера из дома, так и с любого из моих планшетов или даже иметь возможность взять чужой компьютер, если это абсолютно необходимо. Если планшет потеряется, то я бы хотел иметь возможность купить новый планшет и продолжить работу с того места, где я остановился.
  • (2) Не полагаться только на один сервер. Серверы и хосты могут остановится и я не хочу, чтобы из-за этого я попал в тупик
  • (3) Быть мобильным настолько, насколько это возможно, и иметь возможность работать из любой точки мира, в которой я окажусь, и работать до тех пор, пока у меня есть мобильная связь и шнур питания, который можно подключить к зарядному устройству.
  • (4) Уметь создавать, сохранять и редактировать текстовые файлы (такие, как этот, который сейчас я набираю), причем без необходимости копировать это файлы куда-либо вручную.
  • (5) И, наконец, иметь возможность пользоваться нативными приложениями, имеющимися на планшетах
Это было моей целью, но я добился не всего. Нативные приложения оказались не столь хороши. Кроме того, при работе на чужом компьютере необходимо использовать файл с ключом, и я чувствую себя не особенно комфортно, когда помещаю на чужой компьютер файл с ключом или ввожу пароли в случаях, когда это нужно для входа в программу. Я знаю, что есть такие владельцы компьютеров, у которых на компьютере имеется программа, перехватывающая пароли wgen, когда хозяин одалживает компьютер другим.
Во-первых, я кратко расскажу вам о том варианте, на котором я остановился. Затем я расскажу о нескольких других вариантах, которые я попробовал, и о том почему они в моем случае оказались непригодными. Но ваши потребности, возможно, будут сильно отличаться от моих, и некоторые из этих вариантов, может быть, будут хорошо работать у вас. Кроме того, по ряду причин мой окончательный вариант не совершенен, и, поэтому, я буду благодарен за обсуждение в комментариях того, как его можно улучшить.

Мобильная жизнь: Краткая версия

Супер-короткое описание этой истории - я запускаю на серверах Linux программное обеспечение для организации VNC и при дистанционной работе пользуюсь VNC.
О том, как я обращаюсь с файлами.
В конечном итоге я для моих не очень важных файлов решил использовать Dropbox. Это те файлы, из-за которых у меня не возникнет серьезных проблем в случае, если мой аккаунт Dropbox будет взломан. Обычно это те файлы, которыми я пользуюсь при написании статей. Например, если кто-нибудь взломает аккаунт, то он найдет черновик этой статьи. Это не так страшно.
Для тех файлов, для которые требуется несколько более высокий уровень безопасности (но все еще не самый высокий), я использую систему управления версиями. В частности у меня есть репозиторий git на хост-сервере Linux. Я бы предпочел, чтобы их не распространяли повсюду, но если это случится, то конец света не наступит.
Теми файлами, которые являются наиболее важными (контракты, банковская информация и так далее), я продолжаю пользоваться приватно и не допускаю их использование в моей среде "мобильной жизни". Это слишком рискованно. Если что-нибудь мне потребуется в другом городе, где я окажусь по своим делам, то позвоню супруге и попрошу мне их передать, или, если возможно, то я попрошу подождать, пока я не вернусь домой. Я не храню их "в облаке".
Теперь об аппаратном обеспечении.
У меня еще есть главный компьютер — четырех-ядерная машина, которая стоит у меня дома и с которой я работаю. Это на самом деле ноутбук, но к нему подключены два монитора, внешняя клавиатура и мышь, а я вообще считаю его обычной рабочей станцией. Я бы мог использовать большую сумку и везде его с собой возить (без мониторов и клавиатуры), но это не самый легкий среди имеющихся ноутбук, и если его украдут, то я бы столкнулся с неразрешимой проблемой, поскольку на нем все данные.
У меня также есть планшет Nexus 7 2013, на котором работает Android (он только что был обновлен до версии Android 5). Я изначально пытался пользоваться внешней клавиатурой, но планшет слишком мал с тем, чтобы на нем можно было работать в течение долгих часов. Так что я купил второй планшет большего размера.
Второй планшет - Asus Transfomer TF701T. Это 10-дюймовый планшет, и у меня есть клавиатура, которую компания Asus делает специально для него. У меня также есть мышь Bluetooth, но я не всегда могу ею пользоваться когда просто сижу в кресле, а не за столом. Но в клавиатуре есть небольшой трекпад, который работает нормально.
А теперь — о серверах. К программам я вернусь чуть позже.
У меня есть хостинг на нескольких серверах Linux. Мне лично нравится DigitalOcean, поскольку это не очень дорогое решение. У меня есть несколько серверов (не только для моей личной "мобильный" работы, но для моей профессиональной деятельности) по цене ниже $100 в месяц. Amazon также в последнее время снизил цены на некоторые из своих серверов.
Что касается Amazon, то вы можете выключить сервер и, чтобы он был ваш, платить за него в месяц сущие копейки. В DigitalOcean оплата за сервер берется независимо от того, работает ли он или нет. Но с таким ценами, которые, вроде бы, ниже $10 в месяц, для меня это не слишком большая проблема.

Но сначала — краткое описание программ.Одна из моих целей состояла в том, чтобы не быть зависимым от одного сервера. Если DigitalOcean остановится прямо сейчас, то я, по крайне мере в идеале, хотел бы в считанные минуты все восстановить другом сервере и продолжить работу. Если реально, то для меня было было бы вполне приемлемо потратить день или что-то около этого для того, чтобы все восстановить и продолжить работу. В настоящее время у меня есть все резервные копии на серверах S3 компании Amazon, которые, как я считаю, идеально подходят для хранения больших файлов. У меня нет образов резервных копий моих дисков, поэтому мне не нужна возможность переноса файлов между различными хостами. Вместо этого, я храню полную резервную копию моих файлов на github. Я вернусь к этому вопросу, когда буду подробнее рассказывать о настройке программ.
Я уже упомянул о github и Dropbox. Прежде, чем остановиться на Dropbox, я попробовал несколько различных облачных сервисов хранения данных. Ранее для меня идеально подходил сервис Ubuntu One, но его закрыли. Я попробовал несколько других сервисов, а затем понял, что для того, что я делаю, отлично подходит Dropbox. Он синхронизирует мои файлы на моих машинах и не требует от меня каких-либо действий. И, поскольку у меня есть два сервера, работающие на двух разных хостах, а я на основном компьютере сохраняю файл в каталоге под ~/Dropbox, то через несколько секунд файл сохраняется на моих работающих хостах. Если я нахожусь вдали от дома, иду на один из серверов и сохраняю файл в каталоге ~/Dropbox, то этот файл сохраняется также в моем домашнем ноутбуке. Аналогичным образом выполняются все изменения и удаления. И до сих пор у меня с этим не было никаких проблем.
Но как редактировать файлы? Чтобы начать работать, мне требуется некоторое время. Опять же, если отвечать кратко, то я пользуюсь VNC для входа на сервера, на которых работает LibreOffice. А с клавиатурой и мышью мой большой планшет в превращается в небольшой нетбук, и я могу работать. Клиентская программа VNC, с которой я имею дело, называется Remotix. Есть ее версии для Android и iOS, причем она может легко подключаться как к серверу Linux VNC, так и к серверу Windows RDP. Мышь и трекпад работают просто отлично. Когда я пользуюсь своим маленьким планшетом без клавиатуры и мыши, я могу перемещать указатель мыши двигая палец по экрану планшета точно также, как по трекпаду. В следующей статье, когда я буду подробно рассказывать о приложениях VNC и том, какое приложение я выбрал, я также расскажу об этом подробнее и о том, почему для меня важен такой подход.
Однако я использую не только VNC. Есть некоторые хорошие терминальные программы для Android, которые поддерживают работу с ssh. Одна из них, которой я пользуюсь, называется JuiceSSH, но также есть несколько других хороших приложений.

Подробнее

Итак, это достаточно простое решение. Да, оно в основном связано с использование VNC, но я могу быть мобильным. Есть некоторые аспекты, которые не идеальны, и я о них в будущем расскажу подробнее. Например, файлы с моими ключами ssh находятся на моих планшетах, что мне не нравится. Но они требуют ввода пароля и, чтобы их разблокировать, нужен очень длинный PIN-код, а очень важные файлы на планшетах не хранятся. Если когда либо планшет украдут, я войду на свой сервер, создам новый ключ и заменю существующий ключ в каталоге .ssh на новый, причем надеюсь, задолго до того, как будут взломаны PIN-код и пароль файла с ключом ssh.
В следующих статьях я расскажу о различных настройках программ, которые я попробовал, и как я пришел к тем вариантам, которыми пользуюсь. Например, я бы хотел использовать на планшете текстовый процессор, который на нем уже установлен, но с ним возникли некоторые проблемы. Но, время от времени я пользуюсь нативным редактором кода DroidEdit, с помощью которого я могу через ssh дистанционного читать и писать файлы.
DroidEdit является нативным редактором кода, с помощью которого я могу дистанционно через ssh читать и писать файлы.
Но некоторые из этих настроек, от которых я отказался, возможно подойдут вам. А затем я расскажу о том, как я настроил свои серверы Linux. Я узнал много нового о настройках SSH на сервере и создал на своих серверах простое, но очень хорошее окружение рабочего стола (в конце концов, я остановился на LXDE, но до этого попробовал много различных вариантов) — я расскажу вам о этом подробно, в том числе о моих попытках управлять через планшет оконным менеджером. И я буду рад любому вашему совету, касающегося того, как все это можно улучшить и сделать нашу жизнь проще и мобильнее. Ждите продолжения!


P.S. В процессе работы над этой статьей я вернулся домой и закончил писать статью на основном компьютере, который находится у меня дома. Теперь, когда статья закончена, я буду весь вечер валяться на диване, но у меня в руках будет планшет Nexus 7, так что я смогу еще раз прочитать статью перед тем, как отправлю ее редактору, причем все это без какого-либо копирования файлов и подключений к ноутбуку. Называйте меня ленивым, но в эту новую эпоху мобильных технологий жизнь действительно прекрасна.

Комментариев нет:

Отправить комментарий