【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/04/11(月) 16:28:34.52ID:ORuOCkHy
pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。
サーバサイドjavascriptについて語りましょう。

node.js - googleが開発したV8エンジン上で実行できる処理系
http://nodejs.org/
io.js - node.js 互換で Joyent の影響からの脱却を目指す処理系
http://iojs.org/
Rhino - JVM上で実行できる処理系
https://developer.mozilla.org/ja/Rhino

io.js の経緯
http://stackoverflow.com/questions/27309412/what-is-the-difference-between-node-js-and-io-js
javascriptはrubyと比較してもかなり速い
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&;lang=v8&lang2=yarv
基礎から学ぶNode.js
http://gihyo.jp/dev/serial/01/nodejs
node.jsの概要とアプリケーション開発の準備
http://gihyo.jp/dev/serial/01/realtimeweb/0002

前スレ
【node.js】サーバサイドjavascript 3【io.js】(c)2ch.net
http://echo.2ch.net/test/read.cgi/tech/1419673207/
【node.js】サーバサイドjavascript 2【Rhino】
http://peace.2ch.net/test/read.cgi/tech/1358937029/
【node.js】サーバサイドjavascript【Rhino】
http://toro.2ch.net/test/read.cgi/tech/1310087535/
263デフォルトの名無しさん
垢版 |
2016/09/02(金) 15:15:17.79ID:dglZ+Mdk
完全なバリデーションが書けるなら client/server 共通でいいだろうけど
なかなかそうもいかないから、別言語の別観点で2重にバリデーションを
するほうが安全かも知れない。
264デフォルトの名無しさん
垢版 |
2016/09/02(金) 15:33:28.19ID:tIJhbCeG
ばりでーチョン
2016/09/02(金) 15:42:50.04ID:LgVEFfHs
>>263
そんな手間を掛けるくらいならテストを書いたほうがいい。
サーバサイドでjsエンジンを動かしてという手もあるんでしたっけ
reactのサーバサイドレンダリングってrailsとか使うとどうしてるんだろ。
2016/09/02(金) 15:50:27.04ID:2cG65SkE
一方が間違ってると両方間違うので注意w
2016/09/09(金) 21:30:49.46ID:oMlYA35z
テストで何とかしようとするのは
同じ動的型付けであるRubyが辿った悲劇の二の舞
2016/10/28(金) 06:44:17.03ID:r/x8mVSr
Win使いなんだけど、みんな開発環境どうしてるんです?

Winでそのまま開発?
GUIありのLinuxをバーチャルか普通にPCインストールしてそこで開発?
それともMac?
2016/10/28(金) 09:56:15.34ID:3tZbr/Tc
前は仮想マシンのLinux内でやってたけど今はそのまま
2016/10/28(金) 13:19:17.97ID:3lkqIeOw
禿丸最強
2016/10/28(金) 13:20:38.14ID:9rEP3QYc
Node.jsなんてLinux入れるまでもないじゃん
2016/10/28(金) 14:48:17.79ID:xXLR7gqA
winだとパス長すぎって
2016/10/28(金) 14:53:48.34ID:EfMWYGcS
最近のwinはlinux環境入れられるんでしょ?
もうwin環境のことは気にしなくていい?
2016/11/01(火) 23:42:56.87ID:jbWQdUPc
すみません質問させてください!

postcssのビルドに7秒くらいかかるんですが、もっと早くする方法ありませんか?
使ってるモジュールはpostcss-importとpostcss-cssnextだけなのですがなんでこんなにかかるんでしょう。

browserifyの時も15秒くらいかかっててwatchify使ったら爆速になったので感動したのですが
postcssにもwatchifyみたいなのってないんでしょうか...
275274
垢版 |
2016/11/03(木) 11:57:32.06ID:ELIf3lFW
>>274ですが、postcssを使っていると言いましたが具体的には
post-css-cliを使っています。

今、代わりにwebpackを利用したpostcss-loaderを使ったビルドを行ってみたら
物凄く早くてびっくりしました。(webpackも内部的にpostcssを使っていると思ってたのですが...)

ただjsにパッケージしたいわけではなく、cssファイルとして出力したいので
webpackは使いたくないです。

昨日、こんな記事を見つけました
http://blog.greggant.com/posts/2016/05/03/post-css-is-slow.html

やっぱりPostCSSって遅いんですかね?
なんかSassよりビルドが早いってことがメリットだと思ってたんですが...
2016/11/03(木) 13:41:25.94ID:lfIkemy8
SassはRuby実装版とC言語実装版があるんだよ。
Ruby実装版は遅かった。
C言語実装版は爆速

PostCSSはJavaScript実装みたいだから
一般論としてC言語実装のほうが速いだろうね。
2016/11/03(木) 13:44:00.34ID:lfIkemy8
>>275
> (webpackも内部的にpostcssを使っていると思ってたのですが...)
どのプラグイン(loader)を使うかによる

> ただjsにパッケージしたいわけではなく、cssファイルとして出力したいので
> webpackは使いたくないです。
extract-text-webpack-pluginを使えば、cssを別ファイルに切り出せる
2016/11/22(火) 01:30:31.04ID:kbDRJTGd
webpackで指定したrequireをバンドルせずスルーするのってライブラリ書くときにやると思うけど
変換せずにES6 Modulesそのままで出力する時代になったら同様の手法ってどう実装するんだろ
import,exportはトップレベル限定だし
279デフォルトの名無しさん
垢版 |
2016/11/23(水) 16:26:43.44ID:q+/j2xKv
>>278
だからwebpackにexternalsって機能が用意されてるだろ
2016/11/23(水) 16:30:10.06ID:q+/j2xKv
> ES6 Modulesそのままで出力する時代
webpackを使わないって話か?
それなら細切れのファイルのままで動くはずだろ。

これらのファイルをパフォーマンスのために結合したいっていう話であれば
結合するツールを通せばいいだけ。

それがwebpackだけどなw
最初からwebpackは結合ツールだろ?
281デフォルトの名無しさん
垢版 |
2016/11/23(水) 19:18:19.97ID:8JM49hh7
npm socket.io以外の方法でsocket.ioを入れる方法はあるのでしょうか?
格安VPSを借りてnodeを入れたらnpmがメモリ不足で落ちました。。。
ちなみに128MB+swap128MBです。nodeのために借りたわけじゃないので最低プランです。
nodeを少し触ってみようと思ってみたらメモリ不足だったと。。
2016/11/23(水) 19:27:52.62ID:q+/j2xKv
yarnでも使ってみたら?
npmは異常にメモリ食うツールだと思ってるんで
改良されたyarnならそこら辺も改良されてるんじゃね?
2016/11/23(水) 19:28:46.35ID:q+/j2xKv
あと結局のところファイルがあれば十分だろうから、
互換性がある環境をローカルで用意してコピーしても動くだろうね。
2016/11/23(水) 19:34:05.74ID:8JM49hh7
了解しました。ありがとうございました。
2016/11/24(木) 16:25:31.08ID:8ph3HZsS
httpリクエストのパラメーターをJSONで受け取りたいのですが簡単に型チェックを行うにはどうしたらいいでしょうか?
2016/12/15(木) 12:29:15.65ID:7KRIzock
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
2016/12/24(土) 08:28:57.62ID:SsPwlmKa
node.jsってコンパイル環境なんですか?
いまいちよくわからない・・・
2016/12/24(土) 09:05:53.13ID:n8P5UzA6
単純にはスクリプト言語だよ
2016/12/24(土) 12:38:08.47ID:p4lqfCaM
TypeScriptのコンパイル?
2016/12/24(土) 12:59:31.99ID:pvCha/M1
最近Winでも動くようにシェルじゃなくNodeのAPIでファイル操作書いてるけど
fsはディレクトリ名の変更が面倒だな
2016/12/26(月) 17:10:45.18ID:YoRbV7Fw
native moduleでBuffer返そうとしてるんだけど何故かUint8Arrayが返る
これどうすればいい?

v8::Local<v8::Object> lr;
v8::MaybeLocal<v8::Object> buf=node::Buffer::New(isolate, datalen);
buf.ToLocal(&lr);
memcpy(node::Buffer::Data(lr), data, datalen);
args.GetReturnValue().Set(lr);//Uint8Arrayが返る(中身自体は期待通り)
2016/12/26(月) 17:34:43.32ID:TRnwbnfO
args.GetReturnValue().Set(buf);
2016/12/26(月) 18:03:53.64ID:YoRbV7Fw
自己解決 根本的な勘違いをしてた
global掴んでbuffer引っこ抜いきつつ、変換掛けたらとりあえず動いた
2016/12/28(水) 20:41:17.73ID:qA/oaz24
downloadRecの処理が終わったあとに処理をしたいのですが、何かいい方法ありますか?

var client = require('cheerio-httpcli');
var URL = require('url');
var target = "http://nodejs.jp/";

downloadRec(target, 2);

function downloadRec(url, l) {
if (l <= 0) return;
console.log(url);
client.fetch(url, {}, function(err, $, res) {
$("a").each(function(i) {
var next_url = $(this).attr('href');
next_url = URL.resolve(url, next_url);
downloadRec(next_url, l - 1);
});
});
}
2016/12/29(木) 15:54:09.62ID:qVUp/W0S
>>294
Promise使えばいいと思う
2016/12/29(木) 16:52:22.26ID:gZvvZQ+j
>>295
使って色々頑張ってみたんだがどうしてもできなかったので、どうすればいいか教えてください。
2016/12/29(木) 17:05:49.86ID:k+96c2nT
Promise直接使うみたいなアホな事する時代は終わったで
時代はasync/await
2016/12/30(金) 15:01:32.10ID:CLzRlwe+
>>294
function downloadRec(url, l) {
if (l <= 0) return 処理終わった後に実行する関数();
2016/12/30(金) 20:45:17.69ID:RIzfmHx0
>>298
それだと処理し終わった後に実行する関数が複数回実行されないか?
2016/12/30(金) 22:35:37.39ID:b7WBl9TI
>>297
いやいや。段階的に移行した方がいいと知った。
先ずはPromiseを使いこなしてからasync/awaitへ
じゃないと使いこなせないし
2016/12/31(土) 21:49:05.77ID:QjPQSkfd
>>299
確認不足だった
$("a")のlengthを使えばできるかも
302デフォルトの名無しさん
垢版 |
2017/01/11(水) 15:42:49.05ID:vH7dCRyh
すみません教えてください
node.jsでaccessのデータを扱うにはどうしたらいいでしょうか?
勉強を始めてみたもののこの部分がさっぱり分からなくて
2017/01/11(水) 16:32:33.71ID:gsuc1xOj
ole
304デフォルトの名無しさん
垢版 |
2017/01/31(火) 02:47:01.11ID:NZevozPS
foreverで嵌まっています。
環境はCentOS6.8+node.js v4.7.2+npm 2.15.11です。

通常なら起動すると、
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: ここにパス
が出るのが正常ですが、
最終行のinfoが出ずにコマンドが帰ってこない状態になっています。
肝心のnodeは起動しているのですが、コマンドが帰ってこないので仕方なくCtrl+Cで中断するとnodeのプロセスも止まってしまいます。
forever は-g付でグローバルインストールしており、何度か削除、再インストールを繰り返しましたがだめでした。

散々ぐぐっても解決できず数日立ち往生しています。
何か気付きがある方は知恵をお貸しください。
305デフォルトの名無しさん
垢版 |
2017/01/31(火) 03:00:34.59ID:NZevozPS
状況の追記です。
コマンドが帰ってこないと書きましたが、状況として、
node ここにスクリプト名
を打った時と同じ状態です。
console.logの内容がそのまま出てきます。
2017/02/07(火) 19:56:14.64ID:rnaKi3ZD
>>304
なんでcentosなんて使ってるの?
実環境がredhatで有料サポート受けるから開発ではcentos使ってるくち?
それならわかるけど、そうでないならcentos使うメリットなんて殆どないだろ。標準リポジトリのパッケージ少なくて結局サードパーティのリポジトリから持ってくるとか、ソースからビルドとかバカじゃないの?
2017/02/07(火) 21:18:13.77ID:sCX3nP78
リポジトリ追加なんてたいした手間じゃないし
ソースからビルドも愚行でもなけりゃ別に普通だろ
308デフォルトの名無しさん
垢版 |
2017/02/08(水) 14:42:02.74ID:man5IBG6
うちの会社はサードパーティリポジトリ認められてないな。
ソースからビルドするのはオーケーなので基本いつもビルド。
2017/02/08(水) 15:31:52.83ID:fGXhImwi
>>306
>標準リポジトリのパッケージ少なくて結局サードパーティのリポジトリから持ってくるとか、ソースからビルドとかバカじゃないの?

わろた
ほんそれ
2017/02/08(水) 15:51:35.85ID:6dEGRHzt
高能力なせいかビルドでハマったこととかない
本当に申し訳ない
2017/02/08(水) 16:06:35.04ID:h2xuxrYQ
世界的にはとっくにubuntuとかが主流なのに日本は未だにcentosのままってとこが多いよね
2017/02/08(水) 16:22:57.83ID:kddAP5Zw
で、いつ目障りなio.jsとかいうゴミグループは消えるの?こいつらのやった事はnode.jsの発展と普及をいたずらに遅らせただけでしたwww

いつものコンピュータだけがお友達な根暗馬鹿の自己満足でフォークするとか辞めていただきたいね。
2017/02/08(水) 16:25:08.80ID:+f0LmjaI
サーバには安全性、安定性が求められるから、
世界的に見てもエンジニアに好まれてるのはRHELクローンの方。
2017/02/08(水) 16:42:31.50ID:rVmGmxZl
io.jsはとっくにnode.jsって名前に変わった
2017/02/08(水) 16:46:43.32ID:QCQx6ash
>>312
うむ
2017/02/08(水) 17:13:34.47ID:Tas274F6
>>312
現在から2年後に書き込む方法を知っているなら教えて欲しい
2017/02/08(水) 18:58:19.46ID:uiFBRwjo
ソースからビルド、そんなに少数かな。
俺の知ってる環境も基本はそうだった。
2017/02/08(水) 20:33:43.02ID:z7CrxHSJ
>>311
用途が違うんじゃね
2017/02/08(水) 23:10:55.63ID:wsrFvMlT
>>313
ガラパゴスの住人さん乙

>>318
DBサーバーなら違うって話はあり得るがここはnode.jsスレだからな
nginxと同居することも多いんだからボリュームゾーンからそう外れないだろ
2017/02/09(木) 04:37:18.58ID:KfjJ3OGM
>>304の話もそうだけど、みんなforever大好き人間なの?

ってのも今日のTechCrunchの記事にあったKeymetricsってとこが出してるpm2ってプロセスマネージャがすんげー使いやすそうなんだけどと思ってさ。

ttp://jp.techcrunch.com/2017/02/08/20170207keymetrics-is-a-nodejs-monitoring-tool-for-your-server-infrastructure/
2017/02/09(木) 05:13:21.96ID:2qzHgTI5
普通にサービススクリプト書くかな俺は
どうせzabbix入れてるし
2017/02/09(木) 11:35:11.33ID:xprSmyqC
>>319
普通にcentにnginx入れてるが
つうかどのディストリ使おうがインストール作業なんてたいしたもんじゃない
面倒なのは設定だ
ubuntuなら特別設定が楽かといったらNOだろ
2017/02/09(木) 16:32:01.00ID:KfjJ3OGM
>>321
スクリプト書く労力も大して変わらないっってのもわかるんだけど、pm2だとプロセスのリスタートとかも簡単でさ。Node.jsにAPIをいくつもぶら下げるような環境だとこれ入れた方が楽そうだなって思って。
2017/02/13(月) 15:30:13.15ID:+69sTJr+
計算方式が複雑で専門知識も必要な超面倒なことで止まってて、npm無いかなと思ったらあったんですが、マイナーで開発も止まってるっぽいです。
installしてみたら、moduleの中にあるc++のところで何やらwarningがいろいろ吐かれてたのですが一応は動く… cは全然やったことないので何でダメなのかはぼんやり。
こんなとき。これをそのまま使うのと、改変出来るようにcも勉強するのと、専門知識と計算を自力で勉強して頑張るの、どれがベストですかね。
2017/02/13(月) 17:49:48.97ID:UyeCKZqE
warning出てるから信頼性無いとかいう盲信はヤメロ
2017/02/13(月) 19:42:59.45ID:+69sTJr+
>>325
レスありがとう。もうそのまま使っちゃうっ
2017/02/14(火) 11:43:04.67ID:o7NkWciL
警告の内容による

割とどうでも良い内容の場合オプションで黙らせてるオープンソースソフトウェアも多々ある

chromiumでビルドツールが吐いたファイルのコンパイルオプションを見ると
かなりの数の警告がデフォルトで無効化されてるはず
2017/02/14(火) 15:11:01.24ID:0FAFNiBf
初心者ですまんだけど、functionの中で使えるモジュールとそうじゃないのあるんだけどそれってどうしてなの?
エラーも出ずにただただ動かないやつあるんだよね。関数の外だと動かせるのに。
2017/02/14(火) 16:20:21.96ID:06xiI2rQ
>>328
具体的に何のモジュール?
どういう環境で動かして発生してる?
330デフォルトの名無しさん
垢版 |
2017/02/14(火) 21:50:07.73ID:MfKEp5BT
ただただその関数が呼ばれてないだけというオチに1票
2017/02/14(火) 22:21:25.87ID:W41n3HIS
呼んでないならエラー出るんじゃね?
関数の外だと動くとしたらexpressとかかな。router.getとかpostの中で走らないとかなら前にあった気もしなくない。どうしたか忘れたけどw
2017/02/15(水) 00:10:45.91ID:ZQplfFJ2
Rubyを使えば?
Chefのレシピは、どこにでもある

Chef → Vagrant → VirtualBox

CentOSは8〜10年と、サポート期間が長い。
Ubuntu Serverは5年だろ
2017/02/15(水) 00:54:49.40ID:EMySciej
Chefはオワコン
あんなものに時間を費やするとか
バカみたいだろう
2017/02/15(水) 03:20:36.44ID:ZQplfFJ2
%w{php mysql nginx}.each do |name|
package name do
action :install
end
end

%w{php-fpm mysql nginx}.each do |name|
service name do
action :start
end
end

Chefで、複数のパッケージをまとめて、インストール・起動できる
2017/02/15(水) 03:48:14.72ID:EMySciej
>>334
シェルスクリプトでいいやんw
2017/02/15(水) 05:14:07.85ID:ZQplfFJ2
Rubyでは中間言語にコンパイルする時に、エラーが分かるから、
途中まで実行されないから、中途半端な状態にならない

シェルスクリプトではエラー処理など、複雑なプログラミングはできない

Chefでは、action :install など、共通のコードで、
ディストリによって、CentOSのyum / Ubuntuのapt-get を自動的に切り替える

設定ファイルに書き込むとか、cron での定期実行とか、
Vagrant を削除すればすべて消えるから、何回でもテストできるし、
Test Kitchen というテストツールもある

こんな全工程をとても、シェルスクリプトでは書けない
2017/02/15(水) 07:49:09.63ID:gA9AwOPh
Rubyは宗教だからな
>>331
もしこれなら呼ぶ順番とかnextされてないとかそういうことちゃう?
2017/02/15(水) 12:50:14.06ID:ULOZzaq4
spookyjsでjsonをファイルから読み込むのってどうやるの?
2017/02/15(水) 21:49:05.06ID:EMySciej
>>336
> Rubyでは中間言語にコンパイルする時に、エラーが分かるから、
> 途中まで実行されないから、中途半端な状態にならない

まあ、誰に目にも間違いだと明らかにわかっていることだが、
ネタ的に面白いから言ってみて。

「他の言語だとこういう場合にこうなって、
Rubyだとそうならない」という形で例を言ってみて
2017/02/15(水) 22:02:17.92ID:MGTJrHMY
面白くないし言わせなくていいよ
元々スレ違いの話だし続けても荒らしにしかならん
2017/02/15(水) 22:03:49.19ID:EMySciej
逃げ出すなら今のうちだぞ?w


Rubyだとコンパイルされてもエラーがわからず
エラーで途中で中断されるまで実行されてしまって
中途半端な状態になる例

↓↓↓↓

f = File.new("out.txt", "w")
f.write("test")
f.close()
aaa()
File.delete("out.txt")


aaa()で途中で中断される。out.txtというファイルは消えずに残る
2017/02/15(水) 22:04:48.80ID:EMySciej
>>340
さーせんw

>>336がウソだってばらしてやったので
もう来ないと思うわーww
2017/02/16(木) 03:04:55.36ID:1M26REHO
Chefの冪等性を言語の機能だと思ってんのかな
あれは苦労してそうなるように実装してるんだよ
スッキリくん
2017/02/16(木) 11:50:45.61ID:1CyXSjc0
おまいらがいろいろめんどくさいこと言うから事の発端の初心者の子が出てこれなくなってるじゃないかw
2017/02/16(木) 13:30:50.42ID:1VBkG9E6
何を今更
いつものことだろ

それとも自演か
2017/02/16(木) 14:09:27.37ID:1CyXSjc0
ちょっと伸びててしかもなんで別言語の話になってるの?と思って追ってみただけだけど。
いつもということは常駐してんの?ひまだねえ
2017/02/16(木) 14:22:02.95ID:1VBkG9E6
いや
このスレに限ったことじゃなくて
2ちゃん全般だから

ひまなのは認める
2017/02/16(木) 14:42:37.07ID:squjHSRZ
>>336
そろそろJenkinsおじさんに次ぐChefおじさんと呼ばれる人たちがでてくるころかな。
今始めるなら、Ansibleがおすすめだよ。
2017/02/16(木) 22:07:51.85ID:jc3dpiuS
Chef(など)の冪等性の機能って本当に同じ状態にするわけじゃないからな

まず書いてないことの状態は、定まらない。例えばこういうファイルを作れや
ファイルを削除する。なら定義できるが、そこに書いたこと以外の
余計なファイルが有ったり足りなかったりしてた場合は違う状態になる。

それからパッケージとかライブラリとか、インターネット上から落としてくるようなやつは
同じになるとは限らない。バージョンを指定したら同じになるだろうが、今度は
そのバージョンが削除されたらエラーになってしまう

本当に同じ状態にするのであれば、最初に作ったものをイメージ化するしかない。
だがイメージ化したものを使って変更を入れないのならば冪等性なんかは不要になる。
これがイミュータブルインフラストラクチャーという考え方

必要なのは「最初に作るもの」を手順化したものだけ。
そこにChefが必要か?と言われれば当然必要ない。

なぜなら、Chef等が登場する以前、みんな端末から手動で構築していたろ?
端末っていうのは要するにbashだったりzshだったり。
つまりbashシェルスクリプトで全部できることでしかない。

インタラクティブな処理とファイル編集はbashシェルスクリプトでやりにくいように思うかもしれないけど
インタラクティブな処理は、シェルスクリプトでも実行する方法が用意されているものだし
ファイル編集は発想を変えて、ファイルそのものをコピーすればいい

そうすれば消して特定の状態から環境を作る処理なんざシェルスクリプトでなんの苦労もなくできる。
消さずに何度も設定を送り込んむような(クラウド的ではない)使い方をするのなら
冪等性があると便利だから使う意味があるが、それでもAnsibleで十分だし、Ansibleの方が簡単
2017/02/16(木) 22:12:01.74ID:jc3dpiuS
>>336
> Chefでは、action :install など、共通のコードで、
> ディストリによって、CentOSのyum / Ubuntuのapt-get を自動的に切り替える

一見便利そうに思うかもしれないけど、汎用的なChefレシピを作ってる人(誰かいんの?)以外は
CentOSとUbuntuを変更したいなんてことはまずない。

そもそもCentOSとUbuntuではパッケージ名が違う

だから自動的に切り替えることは完全にはできない。
それからバージョン番号とかどうする?完全に一致するわけじゃない。

結局CentOSはこの名前のパッケージで、Ubuntuだとこの名前のパッケージというように
切り替えるファイルが別に必要

誰かが用意してくれてるんだろうが、マイナーなパッケージまでそれをやってくれるのか?
頑張った所でCentOSとUbuntuで違うが生まれるというのに、誰が喜ぶんだという話
2017/02/16(木) 23:13:35.09ID:jc3dpiuS
https://www.ogis-ri.co.jp/otc/hiroba/technical/vagrant-chef/chap3.html

> どうやら Ubuntu と CentOS は git-daemon のパッケージ名が異なるため、
> 同じパッケージ名で両方の OS に対してパッケージをインストールできないようです。
> 以下のようにレシピ中でプラットフォームごとに適切なパッケージ名を使うように変更しましょう。
>
> package "git-daemon" do
> case node[:platform]
> when "centos"
> package_name "git-daemon"
> when "ubuntu"
> package_name "git-daemon-run"
> end
> action :install
> end

あははw あほくさ
本末転倒とはまさにこの事
352デフォルトの名無しさん
垢版 |
2017/02/17(金) 00:09:45.16ID:fTK4d/WW
cookbookは各社が公開している

Chef社のopscode、Railsを作っている Basecamp社、
Berkshelfを作っている Riot Games社、
Pivotal Trackerを作っている Pivotal Sprout社、
aws, engine yard

この本を参照。
Chef実践入門 - コードによるインフラ構成の自動化、2014
2017/02/17(金) 01:33:30.98ID:EzDq9nSn
> cookbookは各社が公開している

そうやって誰かが用意してくれなければ
使いづらいようなものを他人(各社以外=つまり俺ら)が
メンテ何するなんて苦行でしかない。

シェルスクリプトでみんなやれているのに
それをわざわざ別の形式で書く必要なんてないんだわ。

みんなが手動でパッケージ入れたりしているものを
単に記述しただけなんだぞ。
シェルスクリプトなら探す必要もないし、
難しさのかけらもない

2014年という終わコンになったChef soloを
使った手順しか書かれてない本も読まなくていい
2017/02/17(金) 03:01:13.25ID:avRI9kck
時代はAnsibleだからどうでもいい
2017/02/21(火) 19:28:09.02ID:hNSzp0Df
ansibleから漂う超光速通信感が格好いいからアンシブル好き何やってるのかは知らんけど
2017/02/22(水) 11:38:24.75ID:nFPUHBlJ
>>352
俺がchefをやめた理由:
・アーキテクチャがころころ変わる(最大の理由)
 → なので、ちょっと前の情報がもう全然駄目になる(書籍もネットの情報も)
・リモートにインストールが必要
・他人が作ったcookbookでなにやってるのかよくわからん
・さらに、そのカスタマイズポイントを調べるのが面倒
・自分で書く場合は、結局ディストロ意識するので、CentOS用に書いた奴はUbuntuでは使えない

まあ、Ansibleにもあてはまる項目あるけどね。
2017/02/22(水) 11:38:55.75ID:nFPUHBlJ
>>352
俺がchefをやめた理由:
・アーキテクチャがころころ変わる(最大の理由)
 → なので、ちょっと前の情報がもう全然駄目になる(書籍もネットの情報も)
・リモートにインストールが必要
・他人が作ったcookbookでなにやってるのかよくわからん
・さらに、そのカスタマイズポイントを調べるのが面倒
・自分で書く場合は、結局ディストロ意識するので、CentOS用に書いた奴はUbuntuでは使えない

まあ、Ansibleにもあてはまる項目あるけどね。
2017/02/22(水) 12:09:52.48ID:yaW/NUco
アーキテクチャがころころ変わるのは
オンプレ連中に楽させるかよ金払えって意図がある
2017/02/22(水) 20:56:44.68ID:TiP/fttU
>>357
そのAnsibleにもあてはまる項目だけど、
各アプリの設定ファイルを、わざわざAnsibleのyml形式で
書き直すっていうのがアホらしいと思う

あと、

Ansible公式でモジュールが用意されているとあるサーバーアプリがあるのだけど、
そのサーバーアプリの最新版がリリースされたら公式モジュールが動かなくなった

このように間に別の仕組みがはいって、その別の仕組はアプリごとに
用意しないといけないものというのは、公式で対応すべきじゃないと思う。
利用者が自分で書くか、アプリ自信に配布してもらうか

ちなみになAnsible Galaxy見てみたら、そのアプリに対応するモジュールが
50個以上あったわw 検証してられるか=それらはゴミ
2017/02/23(木) 10:44:15.73ID:5OVH7aZj
>>359
> 各アプリの設定ファイルを、わざわざAnsibleのyml形式で
> 書き直すっていうのがアホらしいと思う
うん、アホらしいね
だから、設定ファイル(ふつーのテキストファイル)に変数を埋め込む機能が準備されてるんだね

ゴミに関しては、chefのcookbookの方が多いんじゃないかな
さらに同じ目的なのに多数類似品が見つかるし、動かなくなってるのもあるし
2017/02/23(木) 10:50:09.51ID:5OVH7aZj
ただ、
> 各アプリの設定ファイルを、わざわざAnsibleのyml形式で
> 書き直すっていうのがアホらしいと思う
は書くのは大変だけど、多大なメリットがある

それは、デプロイするパッケージのバージョンを上げるときに、付属する設定ファイルが
結構変わったり、パッケージそのものが変わっても、設定をyamlで書いとけば変更なし
(あるいはちょっとした変更)でいけたりする
iptablesからfirewalldの変更とかね

設定アイル事前準備→内容書き換え→配布だと、それに対応できない場合がある
2017/02/23(木) 22:10:27.88ID:Ka1UMSVA
> それは、デプロイするパッケージのバージョンを上げるときに、付属する設定ファイルが
> 結構変わったり、パッケージそのものが変わっても、設定をyamlで書いとけば変更なし
> (あるいはちょっとした変更)でいけたりする

それは普通にアプリ標準の設定形式であっても同じ

もし、付属する設定ファイルが結構変わっていたりしたら
それにAnsibleが対応するまで、使えない。

実際、エラーが出て困ってる。
2017/02/23(木) 22:11:49.00ID:Ka1UMSVA
>>360
> 書き直すっていうのがアホらしいと思う
うん、アホらしいね

だから、設定ファイル(ふつーのテキストファイル)に変数を埋め込む機能が準備されてるんだね

そして、アホらしいから設定ファイルに変数を埋め込む方法を使えば
設定ファイルが大きく変わったとき困るよね?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況