Автор: Давыденков Михаил
Допустим мы делаем новый проект - супер крутые админки на реакте под ключ :)
Которые позволяют каждому клиенту видеть и редактировать все свои посты в твиттере.
Когда в процессе разработки появляется инфраструктура, то исчезает прозрачность
Чем больше хостов и зависимостей, тем дело хуже
Работаем мозгами, а не руками (но сначала все же немного руками)
Создаем новый проект на реакте
npm install -g create-react-app
create-react-app test-admin
cd test-admin/
yarn add admin-on-rest
yarn start
// in src/App.js
import React from 'react';
import { jsonServerRestClient, Admin, Resource } from 'admin-on-rest';
import { PostList } from './posts';
const App = () => (
<admin restclient="{jsonServerRestClient('http://jsonplaceholder.typicode.com')}">
<resource name="posts" list="{PostList}">
</resource></admin>
);
export default App;
* Господа фронтендеры, презентационный движок меня дискредитирует :) Я знаю, что компоненты - это константы и пишутся с большой буквы! :)
// in src/posts.js
import React from 'react';
import { List, Datagrid, TextField } from 'admin-on-rest';
export const PostList = (props) => (
<list {...props}="">
<datagrid>
<textfield source="id">
<textfield source="title">
<textfield source="body">
</textfield></textfield></textfield></datagrid>
</list>
);
* Господа фронтендеры, презентационный движок меня дискредитирует :) Я знаю, что компоненты - это константы и пишутся с большой буквы! :)
Или нет? Что делать со сборкой?
yarn run build
Готовим сервер
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python2.7
sudo ln -sf /usr/bin/python2.7 /usr/bin/python
Лив кодинг session. Добавляем деплой к нашему проекту
Можно посмотреть в сорцы тут (ветки stage_0, stage_1, stage_2)
ansible-playbook -i hosts deploy.yml
Ставим готовый пакет из репозитория ролей (ближайшая аналогия rubygems, npm, dockerhub)
ansible-galaxy install jdauphant.nginx
Держим зависимости вместе с самописными ролями
mv ~/.ansible/roles/jdauphant.nginx roles/
ansible-playbook -i hosts setup.yml -K