開発に仮想環境やコンテナを使う機会が多くなってきたので、みんなで情報交換しませう
よろしこ
探検
仮想環境コンテナ総合スレ Docker、Vagrant等 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/02/16(木) 18:01:04.48ID:rGWDv0Eb289デフォルトの名無しさん
2017/10/22(日) 02:00:51.58ID:sDdgCD4Q >>286
リモートコマンドランチャーはシェルスクリプトも実行できるから
メインの処理はシェルスクリプトで書くといいだろうね。
そうするとDockerfileでも使えるし、Vagrantでも使える
クラウド上にVMインスタンスを立てるときも
スタートアップスクリプトを設定できて
シェルスクリプトが実行できる。
シェルスクリプトだと応用範囲が広い
リモートコマンドランチャーはシェルスクリプトも実行できるから
メインの処理はシェルスクリプトで書くといいだろうね。
そうするとDockerfileでも使えるし、Vagrantでも使える
クラウド上にVMインスタンスを立てるときも
スタートアップスクリプトを設定できて
シェルスクリプトが実行できる。
シェルスクリプトだと応用範囲が広い
290デフォルトの名無しさん
2017/10/22(日) 02:00:53.35ID:oq9fIgmy >>287
まぁシェルスクリプトでかけと言われれば書けるよ
それこそ逆翻訳だから面倒ってだけ
それを踏まえて最初の質問に対する答えだが、どっちにもメリットもデメリットもないよ
できることは同じだから好きな方で書けば良い
まぁシェルスクリプトでかけと言われれば書けるよ
それこそ逆翻訳だから面倒ってだけ
それを踏まえて最初の質問に対する答えだが、どっちにもメリットもデメリットもないよ
できることは同じだから好きな方で書けば良い
291デフォルトの名無しさん
2017/10/22(日) 02:04:02.78ID:oq9fIgmy >>289
いやメインの処理だけスクリプト化ってのはわけわからんから、なるたけどっちかに寄せたほうがいいよ
君の開発環境がわからないのでなんともいえないが、ansibleのモジュールが対応してない複雑なことをすることが多いなら
技術選択としてansibleを選ばないほうがいい
ansibleだとできることが増えるとかじゃないから、気にしないほうがいいんじゃね?
世の中に流される必要もあるまい
いやメインの処理だけスクリプト化ってのはわけわからんから、なるたけどっちかに寄せたほうがいいよ
君の開発環境がわからないのでなんともいえないが、ansibleのモジュールが対応してない複雑なことをすることが多いなら
技術選択としてansibleを選ばないほうがいい
ansibleだとできることが増えるとかじゃないから、気にしないほうがいいんじゃね?
世の中に流される必要もあるまい
292デフォルトの名無しさん
2017/10/22(日) 02:15:02.98ID:sDdgCD4Q >>288
> ローカルでdockerとかだったら、コンテナが起動済みかどうかしらべてとかするでしょ
> それをawkとif文とかを使って書くよりは、state: presentのほうが楽だろ
いや別に? それってstate: presentを誰かが作ってくださってるから
簡単にできますってだけだろ?そこで対応してないのはお手上げだろ。
そういう用意されてるものを使う、自分では作れないっていう精神がだめなんだよ。
awkなんかいらん。docker ps や docker inspect 使えばできるだろ。
そんなコマンド使えませんとか言うのなら話は別だがw
よく使うのであれば、自分で新たなコマンドを作れる。
コンテナが起動済みか調べて起動するコマンドだって作れる
普段使ってる言葉で簡単にね。
> ローカルでdockerとかだったら、コンテナが起動済みかどうかしらべてとかするでしょ
> それをawkとif文とかを使って書くよりは、state: presentのほうが楽だろ
いや別に? それってstate: presentを誰かが作ってくださってるから
簡単にできますってだけだろ?そこで対応してないのはお手上げだろ。
そういう用意されてるものを使う、自分では作れないっていう精神がだめなんだよ。
awkなんかいらん。docker ps や docker inspect 使えばできるだろ。
そんなコマンド使えませんとか言うのなら話は別だがw
よく使うのであれば、自分で新たなコマンドを作れる。
コンテナが起動済みか調べて起動するコマンドだって作れる
普段使ってる言葉で簡単にね。
293デフォルトの名無しさん
2017/10/22(日) 02:15:46.33ID:sDdgCD4Q294デフォルトの名無しさん
2017/10/22(日) 02:21:35.35ID:oq9fIgmy お前人にモノ聞く態度と違うぞ
いらんなら使わなきゃいいだけだろ
物議を醸したいのなら質問の体を取るな紛らわしい
夜中に一生懸命説明して損したわ
いらんなら使わなきゃいいだけだろ
物議を醸したいのなら質問の体を取るな紛らわしい
夜中に一生懸命説明して損したわ
295デフォルトの名無しさん
2017/10/22(日) 02:22:31.17ID:sDdgCD4Q >>291
> ansibleだとできることが増えるとかじゃないから、気にしないほうがいいんじゃね?
逆にできることが減るしねw
1. CLIコマンド(普段使用してる)
↑
2. ansibleモジュール(YAMLからCLIコマンドへの変換レイヤー)
↑
3. YAMLファイル(新たに覚える必要があるもの)
3.で無駄な努力をして、2.の機能不足やバグでトラブルにあって、
やっと普段使用してる1.にたどり着く。ムダ以外の何物でもない
> ansibleだとできることが増えるとかじゃないから、気にしないほうがいいんじゃね?
逆にできることが減るしねw
1. CLIコマンド(普段使用してる)
↑
2. ansibleモジュール(YAMLからCLIコマンドへの変換レイヤー)
↑
3. YAMLファイル(新たに覚える必要があるもの)
3.で無駄な努力をして、2.の機能不足やバグでトラブルにあって、
やっと普段使用してる1.にたどり着く。ムダ以外の何物でもない
296デフォルトの名無しさん
2017/10/22(日) 02:23:28.20ID:sDdgCD4Q297デフォルトの名無しさん
2017/10/22(日) 02:27:12.80ID:oq9fIgmy 結構スレの前半からいる変わった人なのか
何を教えてるつもりやねん…怖すぎ
2ちゃんで久々に書き込んでつかれた…
何を教えてるつもりやねん…怖すぎ
2ちゃんで久々に書き込んでつかれた…
298デフォルトの名無しさん
2017/10/22(日) 02:34:15.72ID:sDdgCD4Q 5ちゃんねるな。
間違えんな
間違えんな
299デフォルトの名無しさん
2017/10/22(日) 04:16:07.34ID:Qk9RzJFk Dockerはコンフィグの体じゃなくて
スクリプト化して、プロビジョン機能をもたせるべき
言語はGoがいい。
そしてジョブ管理機能をサポートして、Jenkinsとの親和性
を良くするべき。
つまり、コンテナだけじゃなくてプロビジョン、CI, ジョブ制御
全部Docker基盤でサポートできるようなれば超便利。
JenkinsはそのUI窓口を担当する。
スクリプト化して、プロビジョン機能をもたせるべき
言語はGoがいい。
そしてジョブ管理機能をサポートして、Jenkinsとの親和性
を良くするべき。
つまり、コンテナだけじゃなくてプロビジョン、CI, ジョブ制御
全部Docker基盤でサポートできるようなれば超便利。
JenkinsはそのUI窓口を担当する。
2017/10/22(日) 09:20:56.40ID:HAzBzhoi
2017/10/22(日) 09:46:37.52ID:3qPJcamy
オープンソースのパッケージはリスクがある(npm left-pad)
2017/10/22(日) 09:58:24.68ID:3qPJcamy
AnsibleはWindowsにインストールできない
Linux仮想環境にAnsibleを乗せて実行など
やりたいことに対して迂遠すぎる
Linux仮想環境にAnsibleを乗せて実行など
やりたいことに対して迂遠すぎる
2017/10/22(日) 10:37:36.90ID:JYWPd5df
windowsなんてだいぶ前に使うのやめたけど、そもそもpythonまともに使えるようになったのけ?
pyenvすら使えないと聞いて震えた記憶があるが
pyenvすら使えないと聞いて震えた記憶があるが
2017/10/22(日) 12:02:17.34ID:sDdgCD4Q
2017/10/22(日) 12:05:05.65ID:sDdgCD4Q
2017/10/22(日) 12:05:10.25ID:3qPJcamy
なんていうかね茶碗で飯食うのに箸を使うべきなんだけどブルドーザーで食おうとしてる
Ansibleってそんな感じ
Ansibleってそんな感じ
2017/10/22(日) 12:27:30.62ID:HAzBzhoi
>>304
言うことがころころ変わると会話にならんなぁ。
>いや別に? それってstate: presentを誰かが作ってくださってるから
>簡単にできますってだけだろ?そこで対応してないのはお手上げだろ。
>そういう用意されてるものを使う、自分では作れないっていう精神がだめなんだよ。
とりあえず、 ID:sDdgCD4Q はansibleよりshell scriptの方が簡単だと思っているからansibleを使わないわけだな。
で、ansibleを使う人はansibleの方が簡単だと考えているからそれを使うんだと思うよ。
それを「いや違う」と言ってみたところで、その人にとってshell scriptの方が簡単になるわけでもあるまい。
言うことがころころ変わると会話にならんなぁ。
>いや別に? それってstate: presentを誰かが作ってくださってるから
>簡単にできますってだけだろ?そこで対応してないのはお手上げだろ。
>そういう用意されてるものを使う、自分では作れないっていう精神がだめなんだよ。
とりあえず、 ID:sDdgCD4Q はansibleよりshell scriptの方が簡単だと思っているからansibleを使わないわけだな。
で、ansibleを使う人はansibleの方が簡単だと考えているからそれを使うんだと思うよ。
それを「いや違う」と言ってみたところで、その人にとってshell scriptの方が簡単になるわけでもあるまい。
2017/10/22(日) 12:32:39.03ID:sDdgCD4Q
>>307
文章を途中だけぶち切って
俺の言いたいことを改変するなって
俺が簡単になってないというのは
シェルスクリプトをYAMLに翻訳しても簡単にはならないという話だ。
誰かが作った「機能」はそりゃ簡単になるだろ。
state: present相当の機能をシェルスクリプトで書けばいい。
それをYAMLに翻訳しても簡単にならないって話だ。
文章を途中だけぶち切って
俺の言いたいことを改変するなって
俺が簡単になってないというのは
シェルスクリプトをYAMLに翻訳しても簡単にはならないという話だ。
誰かが作った「機能」はそりゃ簡単になるだろ。
state: present相当の機能をシェルスクリプトで書けばいい。
それをYAMLに翻訳しても簡単にならないって話だ。
2017/10/22(日) 12:36:44.25ID:sDdgCD4Q
>>307
> とりあえず、 ID:sDdgCD4Q はansibleよりshell scriptの方が簡単だと思っているからansibleを使わないわけだな。
違う。シェルスクリプト語をYAML語に翻訳する作業が"無駄"だと言ってるんだよ。
誰しもシェルでコマンドうってやってる作業なんだから、
それを羅列してシェルスクリプトにしたほうが楽
わざわざYAML語に翻訳して、その結果、モジュールが対応してない機能が
使えなくなってモジュールのバージョンアップやバグに翻弄され、
最終的に対応してない機能はcommand moduleを使って
シェルで打ってるコマンドを書くことになる。
無駄な作業以外のなにものでもないよ
> とりあえず、 ID:sDdgCD4Q はansibleよりshell scriptの方が簡単だと思っているからansibleを使わないわけだな。
違う。シェルスクリプト語をYAML語に翻訳する作業が"無駄"だと言ってるんだよ。
誰しもシェルでコマンドうってやってる作業なんだから、
それを羅列してシェルスクリプトにしたほうが楽
わざわざYAML語に翻訳して、その結果、モジュールが対応してない機能が
使えなくなってモジュールのバージョンアップやバグに翻弄され、
最終的に対応してない機能はcommand moduleを使って
シェルで打ってるコマンドを書くことになる。
無駄な作業以外のなにものでもないよ
2017/10/22(日) 13:11:45.52ID:WUuR/hH5
shellの方が簡単っていうけどインベントリの管理とか出力の整形とかめんどくさいこと結構あるだろ
その辺shellでどうやって解決してんのかね
その辺shellでどうやって解決してんのかね
2017/10/22(日) 13:18:05.46ID:sDdgCD4Q
>>310
ここに書いてあるとおり
274 名前:デフォルトの名無しさん[sage] 投稿日:2017/10/22(日) 01:30:08.38 ID:sDdgCD4Q [5/21]
もちろんansibleにもメリットは有るよ。
今となってはさほど意味がなくなったが冪等性や
複数台のマシンに対して同じ/異なる 設定を送り込むとか
でもさ、コマンド実行部分をYAMLで書けるようにする
そのためのラッパー(モジュール)が大量に必要。
これは失敗だったね。
ここに書いてあるとおり
274 名前:デフォルトの名無しさん[sage] 投稿日:2017/10/22(日) 01:30:08.38 ID:sDdgCD4Q [5/21]
もちろんansibleにもメリットは有るよ。
今となってはさほど意味がなくなったが冪等性や
複数台のマシンに対して同じ/異なる 設定を送り込むとか
でもさ、コマンド実行部分をYAMLで書けるようにする
そのためのラッパー(モジュール)が大量に必要。
これは失敗だったね。
2017/10/22(日) 13:32:14.70ID:WUuR/hH5
>>311
うんだからshellでやるときはどうやってるの?
うんだからshellでやるときはどうやってるの?
2017/10/22(日) 13:33:20.73ID:sDdgCD4Q
2017/10/22(日) 13:34:06.07ID:WUuR/hH5
2017/10/22(日) 13:42:05.98ID:sDdgCD4Q
2017/10/22(日) 13:59:07.78ID:WUuR/hH5
2017/10/22(日) 14:38:57.87ID:sDdgCD4Q
>>316
反論が有るなら、何がダメか言えよw
反論が有るなら、何がダメか言えよw
2017/10/22(日) 15:06:15.12ID:JYWPd5df
インベントリとfor文ぐるぐるは全然違うだろ
2017/10/22(日) 15:09:45.98ID:sDdgCD4Q
>>318
その程度の認識なら話にならんなwww
その程度の認識なら話にならんなwww
2017/10/22(日) 15:10:57.95ID:sDdgCD4Q
お前の言った言葉が何の反論にもなってないのがわかったか?
違うなら何が違うのか言えと何度言わせる気だ?
違うなら何が違うのか言えと何度言わせる気だ?
2017/10/22(日) 15:18:53.39ID:WUuR/hH5
幼稚
2017/10/22(日) 15:20:22.95ID:sDdgCD4Q
なんで答えてくれないのかな?
できないの?
できないの?
2017/10/22(日) 15:21:55.05ID:JYWPd5df
違いすぎて何を書けばいいのか
インベントリはデータベースに近い構造で、配列とは全然違う
あえてかんたんに言うなら配列の要素に複数の属性をもたせたものだから、表現力が全く違う
インベントリはデータベースに近い構造で、配列とは全然違う
あえてかんたんに言うなら配列の要素に複数の属性をもたせたものだから、表現力が全く違う
2017/10/22(日) 15:24:27.36ID:sDdgCD4Q
2017/10/22(日) 15:26:10.75ID:sDdgCD4Q
当たり前だが、
ホスト名の一覧にオプションをつけることなんざ
シェルスクリプトでも簡単にできる。
hostname1 -a 1 -b 2 -c 3
hostname2 -a 11 -b 22 -c 33
というファイル形式でもそれ以外でもどうにでもなる。
ホスト名の一覧にオプションをつけることなんざ
シェルスクリプトでも簡単にできる。
hostname1 -a 1 -b 2 -c 3
hostname2 -a 11 -b 22 -c 33
というファイル形式でもそれ以外でもどうにでもなる。
2017/10/22(日) 16:02:34.59ID:JxzBgWl2
グループ分けもしたい
パラメータは外部ファイルで整理したい
スイッチは読みにくい
ホストが増えてきたら動的にホスト情報をスクリプトで取得したい
静的な情報からスクリプトへの移行も手間無しでスムーズに行いたい
セキュリティ情報を扱うので暗号化もサポートしたい
テンプレートエンジンも欲しい
…
あげてくとキリがないな
シェルだけでやってるならたいしたものだよ
実際には要求が簡素なだけなんだろうけど
パラメータは外部ファイルで整理したい
スイッチは読みにくい
ホストが増えてきたら動的にホスト情報をスクリプトで取得したい
静的な情報からスクリプトへの移行も手間無しでスムーズに行いたい
セキュリティ情報を扱うので暗号化もサポートしたい
テンプレートエンジンも欲しい
…
あげてくとキリがないな
シェルだけでやってるならたいしたものだよ
実際には要求が簡素なだけなんだろうけど
2017/10/22(日) 16:25:26.00ID:sDdgCD4Q
> グループ分けもしたい
ファイル、ディレクトリごとに分ければいい
> パラメータは外部ファイルで整理したい
外部ファイルから読み込めばいいだけ
> スイッチは読みにくい
読みやすい形式に変更すれば良い
> ホストが増えてきたら動的にホスト情報をスクリプトで取得したい
標準入出力で別スクリプトの出力結果を使用すればいいだけ
> 静的な情報からスクリプトへの移行も手間無しでスムーズに行いたい
script.sh hostname1 hostname2 hostname3
↓
script.sh $(dynamic.sh)
> セキュリティ情報を扱うので暗号化もサポートしたい
openssl コマンドと openssh のid_rsa で暗号化と復号化
http://takuya-1st.hatenablog.jp/entry/2015/08/12/002349
> テンプレートエンジンも欲しい
envsubstを使ってShellでテンプレートエンジン的なことをする、
http://blue1st-tech.hateblo.jp/entry/2016/07/25/001123
Bashでテンプレートエンジン{{Mustache}}を使ってみる
https://qiita.com/laqiiz/items/baa87183838351e4778c
他ERBでもなんでも好きなのを使え
ファイル、ディレクトリごとに分ければいい
> パラメータは外部ファイルで整理したい
外部ファイルから読み込めばいいだけ
> スイッチは読みにくい
読みやすい形式に変更すれば良い
> ホストが増えてきたら動的にホスト情報をスクリプトで取得したい
標準入出力で別スクリプトの出力結果を使用すればいいだけ
> 静的な情報からスクリプトへの移行も手間無しでスムーズに行いたい
script.sh hostname1 hostname2 hostname3
↓
script.sh $(dynamic.sh)
> セキュリティ情報を扱うので暗号化もサポートしたい
openssl コマンドと openssh のid_rsa で暗号化と復号化
http://takuya-1st.hatenablog.jp/entry/2015/08/12/002349
> テンプレートエンジンも欲しい
envsubstを使ってShellでテンプレートエンジン的なことをする、
http://blue1st-tech.hateblo.jp/entry/2016/07/25/001123
Bashでテンプレートエンジン{{Mustache}}を使ってみる
https://qiita.com/laqiiz/items/baa87183838351e4778c
他ERBでもなんでも好きなのを使え
2017/10/22(日) 16:27:19.06ID:JYWPd5df
そこまでいくと逆にシェルにこだわりすぎて、生産性落ちてるだろwww
2017/10/22(日) 16:27:50.70ID:sDdgCD4Q
別に? それぞれ1行〜数行で書ける程度
2017/10/22(日) 16:29:07.05ID:JYWPd5df
しかもテンプレートエンジン使うのに他ツール使っちゃだめでしょ?
できることの幅が狭まるし、そのツールの学習コストがあるんだからwww
ぜんぶ自分で書いたシェルでやりなさい!www
できることの幅が狭まるし、そのツールの学習コストがあるんだからwww
ぜんぶ自分で書いたシェルでやりなさい!www
2017/10/22(日) 16:33:25.41ID:sDdgCD4Q
> しかもテンプレートエンジン使うのに他ツール使っちゃだめでしょ?
シェルスクリプトにこだわるなら普通に
ヒアドキュメントの文字列展開を使えばいいと思うけど?
普段使ってるテンプレートエンジンを使えば良いんやで?
普段やってることをAnsible語に置き換えるのが無駄だって話なんだから
シェルスクリプトにこだわるなら普通に
ヒアドキュメントの文字列展開を使えばいいと思うけど?
普段使ってるテンプレートエンジンを使えば良いんやで?
普段やってることをAnsible語に置き換えるのが無駄だって話なんだから
2017/10/22(日) 16:35:45.41ID:JxzBgWl2
ってやるとめんどくさいじゃん
ファイル管理ディレクトリ管理を作らなきゃならない
外部ファイル読みこみも書かなきゃいけない
読みやすい形式を考えて書き換えなきゃいけない
標準出力をパースしなきゃいけない
$(...)にいちいち置き換えなきゃいけない
opensshに明に依存しなきゃいけない(シェルだけでやるんじゃなかったの?)
神社以外の新しいテンプレートエンジンに依存しなきゃならない(シェルだけでやるんじゃなかったの?)
シェルだけでできるって話だったのに
いきなり依存するものが出てきて困惑
シェルだけでできてないじゃん
そんなの覚えるのめんどくさいよね
Ansibleを覚えるのと何が違うんだ?
ファイル管理ディレクトリ管理を作らなきゃならない
外部ファイル読みこみも書かなきゃいけない
読みやすい形式を考えて書き換えなきゃいけない
標準出力をパースしなきゃいけない
$(...)にいちいち置き換えなきゃいけない
opensshに明に依存しなきゃいけない(シェルだけでやるんじゃなかったの?)
神社以外の新しいテンプレートエンジンに依存しなきゃならない(シェルだけでやるんじゃなかったの?)
シェルだけでできるって話だったのに
いきなり依存するものが出てきて困惑
シェルだけでできてないじゃん
そんなの覚えるのめんどくさいよね
Ansibleを覚えるのと何が違うんだ?
2017/10/22(日) 16:36:45.98ID:sDdgCD4Q
> しかもテンプレートエンジン使うのに他ツール使っちゃだめでしょ?
あとこれは考え方が間違ってる。
シェルスクリプトを使うということは、普段使ってるコマンドを使うということ
他のツールというか普段使ってるツールを使うってことだよ。
シェルスクリプトという言語は外部コマンド呼び出しとその連携に特化した言語なんだか
外部コマンドを使わないのは本末転倒
Ansibleという専用で応用範囲が狭いツールに置き換えるのをやめましょうという話
あとこれは考え方が間違ってる。
シェルスクリプトを使うということは、普段使ってるコマンドを使うということ
他のツールというか普段使ってるツールを使うってことだよ。
シェルスクリプトという言語は外部コマンド呼び出しとその連携に特化した言語なんだか
外部コマンドを使わないのは本末転倒
Ansibleという専用で応用範囲が狭いツールに置き換えるのをやめましょうという話
2017/10/22(日) 16:40:24.57ID:JYWPd5df
テンプレートエンジンはansibleが解決してくれるから、独自のツール導入したらもはやそれは普段打ってるコマンドでもなんでもないんですがそれは…
2017/10/22(日) 16:41:04.63ID:sDdgCD4Q
>>332
> ファイル管理ディレクトリ管理を作らなきゃならない
ディレクトリ作るコマンドはmkdir、ファイル作るコマンドは
適当なテキストエディタでも使えば終わりでしょw
普段やってないの?
> 外部ファイル読みこみも書かなきゃいけない
. ./file
一行w
> 読みやすい形式を考えて書き換えなきゃいけない
普通にオプションでいいし、環境変数設定のやり方(AAA=123)で十分だろ
ちょっとしたことにブルドーザーを用意しようとするかなw
> 標準出力をパースしなきゃいけない
え? Linux(Unix)っていうのはリダイレクトなどの機能で
ファイルも標準入出力も同じように扱えるんだよ
> $(...)にいちいち置き換えなきゃいけない
3文字のタイピングに何時間かかるのさw
> opensshに明に依存しなきゃいけない(シェルだけでやるんじゃなかったの?)
違いますね。普段シェルでやってることをそのまま使うってことですよ?
言いましたよね。Ansible語に置き換えるのが無駄だと。(何回目だろw)
> 神社以外の新しいテンプレートエンジンに依存しなきゃならない(シェルだけでやるんじゃなかったの?)
普段使ってるテンプレートエンジンをどれでも自由に簡単に使える。
Ansible語に置き換えるのが無駄
> ファイル管理ディレクトリ管理を作らなきゃならない
ディレクトリ作るコマンドはmkdir、ファイル作るコマンドは
適当なテキストエディタでも使えば終わりでしょw
普段やってないの?
> 外部ファイル読みこみも書かなきゃいけない
. ./file
一行w
> 読みやすい形式を考えて書き換えなきゃいけない
普通にオプションでいいし、環境変数設定のやり方(AAA=123)で十分だろ
ちょっとしたことにブルドーザーを用意しようとするかなw
> 標準出力をパースしなきゃいけない
え? Linux(Unix)っていうのはリダイレクトなどの機能で
ファイルも標準入出力も同じように扱えるんだよ
> $(...)にいちいち置き換えなきゃいけない
3文字のタイピングに何時間かかるのさw
> opensshに明に依存しなきゃいけない(シェルだけでやるんじゃなかったの?)
違いますね。普段シェルでやってることをそのまま使うってことですよ?
言いましたよね。Ansible語に置き換えるのが無駄だと。(何回目だろw)
> 神社以外の新しいテンプレートエンジンに依存しなきゃならない(シェルだけでやるんじゃなかったの?)
普段使ってるテンプレートエンジンをどれでも自由に簡単に使える。
Ansible語に置き換えるのが無駄
2017/10/22(日) 16:41:22.04ID:JxzBgWl2
結局ちょっと難しいことしようとするとシェルじゃ太刀打ちできないってことか
シェルで全部やるというかシェルでお気に入りのツールを組み合わせるってだけなのね
んでそれを学習コストなしとみなすいわば屁理屈
少し期待してたけどガッカリ
シェルで全部やるというかシェルでお気に入りのツールを組み合わせるってだけなのね
んでそれを学習コストなしとみなすいわば屁理屈
少し期待してたけどガッカリ
2017/10/22(日) 16:42:13.48ID:sDdgCD4Q
>>332
> シェルだけでできるって話だったのに
普段シェルで叩いてるコマンドをそのまま使えるって話だって
何度も言ってる。
な? シェルはCLIコマンドなんでも使えるんやで?
Ansibleはモジュールで提供されている機能だけや。
YAMLに置き換えて、普段やってることができなくなるんだよ。
無駄以外のなにものでもない
> シェルだけでできるって話だったのに
普段シェルで叩いてるコマンドをそのまま使えるって話だって
何度も言ってる。
な? シェルはCLIコマンドなんでも使えるんやで?
Ansibleはモジュールで提供されている機能だけや。
YAMLに置き換えて、普段やってることができなくなるんだよ。
無駄以外のなにものでもない
2017/10/22(日) 16:44:19.17ID:sDdgCD4Q
>>336
> んでそれを学習コストなしとみなすいわば屁理屈
そりゃそうだろw
シェルは普通誰でも使ってるだろ。
プロビジョン相当のことを、手動(シェルから)でやらないのか?
普段やってることを、単純にYAMLに置き換えるだけだから
無駄な学習コストだよ。それでいてシェルからやってることに比べ
できることが減るんだからな。減るだけじゃない
モジュールの対応してる機能やバグでトラブルが増えてるだけ
何度もその姿見てるわ。無駄なことやってんなーって思ってる。
> んでそれを学習コストなしとみなすいわば屁理屈
そりゃそうだろw
シェルは普通誰でも使ってるだろ。
プロビジョン相当のことを、手動(シェルから)でやらないのか?
普段やってることを、単純にYAMLに置き換えるだけだから
無駄な学習コストだよ。それでいてシェルからやってることに比べ
できることが減るんだからな。減るだけじゃない
モジュールの対応してる機能やバグでトラブルが増えてるだけ
何度もその姿見てるわ。無駄なことやってんなーって思ってる。
2017/10/22(日) 16:45:00.82ID:JYWPd5df
2017/10/22(日) 16:45:40.96ID:sDdgCD4Q
2017/10/22(日) 16:47:41.88ID:sDdgCD4Q
>>339
> ansibleでできることがシェルでできないことはあるけど逆はない
できるできないじゃなくて、YAMLに置き換えるのが
無駄だって話だからね。何度も言うよ?w
ansibleでできるならそれ相当の機能を作るか持ってくればいいので
シェルでできないことは何もないよ。
それにansibleで "できないこと" はshellモジュール使うんでしょ?w
> ansibleでできることがシェルでできないことはあるけど逆はない
できるできないじゃなくて、YAMLに置き換えるのが
無駄だって話だからね。何度も言うよ?w
ansibleでできるならそれ相当の機能を作るか持ってくればいいので
シェルでできないことは何もないよ。
それにansibleで "できないこと" はshellモジュール使うんでしょ?w
2017/10/22(日) 16:48:03.31ID:JYWPd5df
>>338
お前はお前で、ansibleでできることをつらつらshellで書いてることを無駄だと思われてるよwww
mkdirひとつとっても、そのディレクトリの存在確認いちいちするのなんて手でコマンド打つときはlsで目で確認だけど、
スクリプト化したらifディレクティブ書かなきゃいけない
普段やってることをシェルスクリプトに翻訳する作業のコストは完全無視なのが笑える
そのままスクリプトにすりゃ動くだろって動かねーっつのwww
むしろシェルスクリプトの勉強からやり直しなさい
お前はお前で、ansibleでできることをつらつらshellで書いてることを無駄だと思われてるよwww
mkdirひとつとっても、そのディレクトリの存在確認いちいちするのなんて手でコマンド打つときはlsで目で確認だけど、
スクリプト化したらifディレクティブ書かなきゃいけない
普段やってることをシェルスクリプトに翻訳する作業のコストは完全無視なのが笑える
そのままスクリプトにすりゃ動くだろって動かねーっつのwww
むしろシェルスクリプトの勉強からやり直しなさい
2017/10/22(日) 16:50:11.92ID:sDdgCD4Q
> mkdirひとつとっても、そのディレクトリの存在確認いちいちするのなんて手でコマンド打つときはlsで目で確認だけど、
え?
mkdir -p /foo/bar/baz って書けばいいだけじゃん。
なんでいちいち存在確認なんかしてんのwww
え?
mkdir -p /foo/bar/baz って書けばいいだけじゃん。
なんでいちいち存在確認なんかしてんのwww
2017/10/22(日) 16:51:57.39ID:JYWPd5df
そのディレクトリがもう存在してたら?
エラー吐くけど無視するってこと?
どんだけー
エラー吐くけど無視するってこと?
どんだけー
2017/10/22(日) 16:54:00.10ID:sDdgCD4Q
$ mkdir -p /tmp/foo
$ mkdir -p /tmp/foo
$ mkdir -p /tmp/foo
$ mkdir -p /tmp/foo
$ mkdir -p /tmp/foo
何度やってもエラーなんて出ませんねぇw 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
$ mkdir -p /tmp/foo
$ mkdir -p /tmp/foo
$ mkdir -p /tmp/foo
$ mkdir -p /tmp/foo
何度やってもエラーなんて出ませんねぇw 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
2017/10/22(日) 16:55:08.53ID:JYWPd5df
ぴゃー!今まで確認してたー!必要なかったんか
2017/10/22(日) 16:57:38.59ID:JYWPd5df
さすがshell王子やで
これからもシェルで頑張ってくれ!
これからもシェルで頑張ってくれ!
2017/10/22(日) 16:58:06.58ID:sDdgCD4Q
結局シェルスクリプトを過小評価して、簡単にできることをできないと思いこんで
より面倒なAnsibleに置き換えてただけか
より面倒なAnsibleに置き換えてただけか
2017/10/22(日) 17:00:00.38ID:JYWPd5df
その思い込みが今この瞬間に消え去ることはないので、これからもansibleで書きます
本当にありがとうございました
本当にありがとうございました
2017/10/22(日) 17:00:13.97ID:sDdgCD4Q
Ansibleに学習時間が取られるだけじゃなく
シェルの学習時間が減るのも問題だよな。
シェルは応用範囲が広いから(逆の言い方をすると)
デプロイだけじゃなく普段の作業でも使える。
つまりシェルに慣れておくと普段の作業も効率化できるわけだ
シェルの学習時間が減るのも問題だよな。
シェルは応用範囲が広いから(逆の言い方をすると)
デプロイだけじゃなく普段の作業でも使える。
つまりシェルに慣れておくと普段の作業も効率化できるわけだ
2017/10/22(日) 17:02:29.22ID:+55RNfTl
シェルでツールを組み合わせる
作る方からすると簡単だし柔軟性が高いのは事実だけどとにかくメンテナンスしにくい
シェルスクリプト自体がルーズすぎてメンテナンスしにくいってのもあるけど
それ以上に様々なツールを組み合わせること自体がメンテナンス性の悪化を爆発的に加速させる
普段から使ってるツールセットが関係者全員で同じになるってことはまずない
誰かが普段使ってるツールを使って書いたオレオレスクリプトは他の人からすると学習コストが非常に高い厄介な代物でしかない
それぞれが好き勝手に好きなツールを使うことを許してしまうと人数が増えた時に総学習コストは際限なく増えていく
Web系のルーズな人たちはこの辺に無頓着だよね
そうならないために普通の開発現場では使えるツールを限定する
限定するならアレコレ使うよりAnsibleのような目的に沿った全部入りが良い
その方が最終的に学習コストは低くなる
作る方からすると簡単だし柔軟性が高いのは事実だけどとにかくメンテナンスしにくい
シェルスクリプト自体がルーズすぎてメンテナンスしにくいってのもあるけど
それ以上に様々なツールを組み合わせること自体がメンテナンス性の悪化を爆発的に加速させる
普段から使ってるツールセットが関係者全員で同じになるってことはまずない
誰かが普段使ってるツールを使って書いたオレオレスクリプトは他の人からすると学習コストが非常に高い厄介な代物でしかない
それぞれが好き勝手に好きなツールを使うことを許してしまうと人数が増えた時に総学習コストは際限なく増えていく
Web系のルーズな人たちはこの辺に無頓着だよね
そうならないために普通の開発現場では使えるツールを限定する
限定するならアレコレ使うよりAnsibleのような目的に沿った全部入りが良い
その方が最終的に学習コストは低くなる
2017/10/22(日) 17:07:01.08ID:sDdgCD4Q
>>351
> 作る方からすると簡単だし柔軟性が高いのは事実だけどとにかくメンテナンスしにくい
ようやく話が戻ってきたかw
そのメンテナンス作業でやることがDockerを使うことで殆どなくなってきたんだよ。
デプロイで大変なのは実は構成管理ではなくて、アプリのデプロイ
アプリを動かすための環境づくり(言語やライブラリのインストールなど)が大変だった。
でもそれがDockerを使ってDockerイメージに全部入れ込むことで、
あとはDockerコンテナの機動スをする1行(ないし数行)で完結するようになった。
デプロイでやることが大幅に減ったから、もうシェルスクリプトで十分な時代になってるんだよ。
> 作る方からすると簡単だし柔軟性が高いのは事実だけどとにかくメンテナンスしにくい
ようやく話が戻ってきたかw
そのメンテナンス作業でやることがDockerを使うことで殆どなくなってきたんだよ。
デプロイで大変なのは実は構成管理ではなくて、アプリのデプロイ
アプリを動かすための環境づくり(言語やライブラリのインストールなど)が大変だった。
でもそれがDockerを使ってDockerイメージに全部入れ込むことで、
あとはDockerコンテナの機動スをする1行(ないし数行)で完結するようになった。
デプロイでやることが大幅に減ったから、もうシェルスクリプトで十分な時代になってるんだよ。
2017/10/22(日) 17:16:55.75ID:JYWPd5df
その1行ってのを試しに書いてみて
2017/10/22(日) 17:22:13.75ID:sDdgCD4Q
Dockerコンテナを起動する命令?
docker run --restart=always -d myapp
とかそんな感じ
docker run --restart=always -d myapp
とかそんな感じ
2017/10/22(日) 17:28:37.91ID:mU/kanzH
>>352
残念だけど、そんな時代はまだ来てない
Dockerを禁止にしてり現場なんていくらでもある
Dockerを使うって発想すらない現場もまだまだ多い
自分のデスクトップが世界標準と考えてしまう視野の狭い若者は少なくないけど
君もそのひとりということだね
今の君のデスクトップが多くの現場で当たり前になる頃には、さらに進んだ技術が君のデスクトップに導入されているんだろう
そりゃ簡単だよな
残念だけど、そんな時代はまだ来てない
Dockerを禁止にしてり現場なんていくらでもある
Dockerを使うって発想すらない現場もまだまだ多い
自分のデスクトップが世界標準と考えてしまう視野の狭い若者は少なくないけど
君もそのひとりということだね
今の君のデスクトップが多くの現場で当たり前になる頃には、さらに進んだ技術が君のデスクトップに導入されているんだろう
そりゃ簡単だよな
2017/10/22(日) 17:30:01.29ID:sDdgCD4Q
シェルスクリプトで十分ということは否定しないが、
まだ時代が来ていないという話にすり替わったw
まだ時代が来ていないという話にすり替わったw
2017/10/22(日) 17:30:54.61ID:sDdgCD4Q
次は仮想環境の時代は来てないとか
クラウドの時代は来てないとか言うのかな?
単に遅れているだけだと思うけどww
クラウドの時代は来てないとか言うのかな?
単に遅れているだけだと思うけどww
2017/10/22(日) 17:30:55.70ID:mU/kanzH
2017/10/22(日) 17:34:19.94ID:mU/kanzH
本当にあきれるほどに視野狭窄だね
よほど恵まれた環境で飼われているのか
あるいは、もしかして、IT業界の人間じゃない?
よほど恵まれた環境で飼われているのか
あるいは、もしかして、IT業界の人間じゃない?
2017/10/22(日) 17:34:46.23ID:sDdgCD4Q
>>358
いまDockerの時代が来ているかどうかって
話はしてないのでね
Ansibleはいらない。シェルスクリプトで十分って話。
お前が言ったのは
Ansibleはいらない。シェルスクリプトで十分だけど
俺の会社にはDocker導入されとらんのじゃー!
ってこと
それは技術じゃなくてお前の会社の問題
いまDockerの時代が来ているかどうかって
話はしてないのでね
Ansibleはいらない。シェルスクリプトで十分って話。
お前が言ったのは
Ansibleはいらない。シェルスクリプトで十分だけど
俺の会社にはDocker導入されとらんのじゃー!
ってこと
それは技術じゃなくてお前の会社の問題
2017/10/22(日) 17:38:08.26ID:sDdgCD4Q
docker使うだけで恵まれた環境のなのかw
まさか嫉妬されるとは思わなかった。
まさか嫉妬されるとは思わなかった。
2017/10/22(日) 17:42:02.16ID:sDdgCD4Q
ついこの間読んだ記事
Rocro株式会社の導入事例:GAE + GKE をフル活用し、高品質な開発者向け SaaS サービスをソニーグループである Rocro株式会社が少数精鋭で開発・運用
https://cloudplatform-jp.googleblog.com/2017/10/GoogleCloudPlatform-Rocro-GAE-GKE-SaaS.html
GKEっていうのはdockerを使うのが前提となってるんだけど
こういうのどうするのさ?
Rocro株式会社の導入事例:GAE + GKE をフル活用し、高品質な開発者向け SaaS サービスをソニーグループである Rocro株式会社が少数精鋭で開発・運用
https://cloudplatform-jp.googleblog.com/2017/10/GoogleCloudPlatform-Rocro-GAE-GKE-SaaS.html
GKEっていうのはdockerを使うのが前提となってるんだけど
こういうのどうするのさ?
2017/10/22(日) 17:56:15.83ID:mU/kanzH
364デフォルトの名無しさん
2017/10/22(日) 20:15:57.81ID:sDdgCD4Q >>363
> 君の言う「シェルで十分」はdockerに依存してるんだろ?
依存はしてない。dockerを使わないシステムは有る
例えばAmazon RDSやGoogle Cloud SQLというデータベースサーバーとか
こういうのはすでにシステムが用意されてるのでそれを使うだけ
なのですでにAnsibleでデータベースサーバーを作るなんてのはやっていない
シェルどころか何も使わない
> 君の知らない世界が無限に広がってる
COBOLみたいなお仕事でしょ。
知ってるw
> でもそれは未だ来ていない
うちの会社ではすでに自社サーバーがほぼゼロ状態で
サーバーはクラウド化されてるのですでに来ている。
君の知らない世界に俺はいるようだ(笑)
> 君の言う「シェルで十分」はdockerに依存してるんだろ?
依存はしてない。dockerを使わないシステムは有る
例えばAmazon RDSやGoogle Cloud SQLというデータベースサーバーとか
こういうのはすでにシステムが用意されてるのでそれを使うだけ
なのですでにAnsibleでデータベースサーバーを作るなんてのはやっていない
シェルどころか何も使わない
> 君の知らない世界が無限に広がってる
COBOLみたいなお仕事でしょ。
知ってるw
> でもそれは未だ来ていない
うちの会社ではすでに自社サーバーがほぼゼロ状態で
サーバーはクラウド化されてるのですでに来ている。
君の知らない世界に俺はいるようだ(笑)
365デフォルトの名無しさん
2017/10/22(日) 20:19:24.14ID:sDdgCD4Q これからじわじわ増えて来て当たり前のように使われる時代くるんだろう
そのときに備えてシェルスクリプトは使えるようになるべきだし、
Ansibleは次第に廃止されていく。
それは未来に生きてる俺が証明している
そのときに備えてシェルスクリプトは使えるようになるべきだし、
Ansibleは次第に廃止されていく。
それは未来に生きてる俺が証明している
366デフォルトの名無しさん
2017/10/22(日) 20:38:19.65ID:1Ll1E+vW てかansibleの到来でシェルスクリプトが駆逐され、クラウドのAPI充実によってansibleが駆逐されていく感じだろ
俺からすればどっちも糞の山だわ
俺からすればどっちも糞の山だわ
367デフォルトの名無しさん
2017/10/22(日) 20:43:45.97ID:sDdgCD4Q それはないんだわ。なぜならansibleはPythonがリモートに
インストールされていないといけないから。
通常コンテナには必要最小限のものしか入れないので
Python用コンテナでない限りPythonは入っていない。
必然的にシェルスクリプトしか使えない。
またdockerイメージの特徴はローカルでも動かせるという所だから
クラウドのAPIなんてのは意味がない。
インストールされていないといけないから。
通常コンテナには必要最小限のものしか入れないので
Python用コンテナでない限りPythonは入っていない。
必然的にシェルスクリプトしか使えない。
またdockerイメージの特徴はローカルでも動かせるという所だから
クラウドのAPIなんてのは意味がない。
368デフォルトの名無しさん
2017/10/22(日) 20:51:08.10ID:GMFIfZ60 >>367
うちはサーバーは全部ubuntuだからそこらへんはクリアしてんのかな?
てかpython入ってないサーバーなんて今時あんの?
てかDockerだのシェルだのansibleだのインフラ屋も大変だね
うちは、ビジネスサイドと開発選択して、ユニットテスト書いてコード書いて、pushすればステージ環境に勝手にデプロイされて、
POがステージ環境さわってマージされたら本番に勝手にデプロイされてって感じ
こっちからしたら、それができれば何使ってくれても構わんわ
インフラ屋って地味なイメージあるけど、やっぱ宗教論争があるんだな笑
うちはサーバーは全部ubuntuだからそこらへんはクリアしてんのかな?
てかpython入ってないサーバーなんて今時あんの?
てかDockerだのシェルだのansibleだのインフラ屋も大変だね
うちは、ビジネスサイドと開発選択して、ユニットテスト書いてコード書いて、pushすればステージ環境に勝手にデプロイされて、
POがステージ環境さわってマージされたら本番に勝手にデプロイされてって感じ
こっちからしたら、それができれば何使ってくれても構わんわ
インフラ屋って地味なイメージあるけど、やっぱ宗教論争があるんだな笑
369デフォルトの名無しさん
2017/10/22(日) 20:54:43.66ID:sDdgCD4Q あとAnsibleを死滅させる原因の1つにKubernetesがある。
Kubernetesが事実上の標準の座を手に入れるまでは
Ansibleを使ってオーケストレーションを行おうという動きがあった。
Kubernetesを使うことで簡単にDockerコンテナを実行できるわけだけど、
その方法としてコマンドラインのkubectlとREST APIがある。
Ansibleはまたコマンドランチャーとしての立場として
せっせとラッパーモジュールの開発を行っている
Kubernetesが事実上の標準の座を手に入れるまでは
Ansibleを使ってオーケストレーションを行おうという動きがあった。
Kubernetesを使うことで簡単にDockerコンテナを実行できるわけだけど、
その方法としてコマンドラインのkubectlとREST APIがある。
Ansibleはまたコマンドランチャーとしての立場として
せっせとラッパーモジュールの開発を行っている
370デフォルトの名無しさん
2017/10/22(日) 20:57:36.95ID:sDdgCD4Q371デフォルトの名無しさん
2017/10/22(日) 21:00:16.24ID:sDdgCD4Q >>368
> てかDockerだのシェルだのansibleだのインフラ屋も大変だね
勘違いしている人も多いが、Dockerはインフラ屋の道具じゃない。
アプリ開発側が、アプリのイメージ(=Dockerイメージ)を作って
インフラ屋に「これ起動して」って渡すもの
インフラ屋にいちいち動作するサーバー構成とか
必要な言語、バージョン、ミドルウェア等伝えるの面倒でしょ?
> てかDockerだのシェルだのansibleだのインフラ屋も大変だね
勘違いしている人も多いが、Dockerはインフラ屋の道具じゃない。
アプリ開発側が、アプリのイメージ(=Dockerイメージ)を作って
インフラ屋に「これ起動して」って渡すもの
インフラ屋にいちいち動作するサーバー構成とか
必要な言語、バージョン、ミドルウェア等伝えるの面倒でしょ?
372デフォルトの名無しさん
2017/10/23(月) 00:50:40.93ID:JrZmYN5x sDdgCD4Q
シェルスクリプトは普通に面倒だよ
まず「コマンドベース」なのが可読性が汚くなる。
クォーテーション、オプション、セミコロン、各種コマンド展開
パイプ、リダイレクト記号
さらに「オプション」っていうのはテストコマンド中のオプション
とか普通のコマンドのオプションとか1文字だけで意味を理解するには
「シェルの仕様を暗記」していることが前提になる。
もちろん「シェルを散々やっている人」からすればそんなの身について
当たり前、って思うかもしれないけど、Ruby, Python, YAMLなんかに
比べれば「意味の通りやすさ」が段違い。
自分では当たり前のように書いてるシェルのコードが別の人から見たら
「わけわかんない秘伝のタレ」にしか見えないかもしれない、って
考えたことある?
DockerとかAnsibleみたいなツールは何も「既存で熟練した技術者」
のためにあるわけじゃないんだよ。
難解なコードは技術者が自分の立場を守るための参入障壁でしかない。
古参技術者のATフィールドみたいなもんだよ、そんなものはOSSによって
容易に破られる時代ってこと。
シェルスクリプトは普通に面倒だよ
まず「コマンドベース」なのが可読性が汚くなる。
クォーテーション、オプション、セミコロン、各種コマンド展開
パイプ、リダイレクト記号
さらに「オプション」っていうのはテストコマンド中のオプション
とか普通のコマンドのオプションとか1文字だけで意味を理解するには
「シェルの仕様を暗記」していることが前提になる。
もちろん「シェルを散々やっている人」からすればそんなの身について
当たり前、って思うかもしれないけど、Ruby, Python, YAMLなんかに
比べれば「意味の通りやすさ」が段違い。
自分では当たり前のように書いてるシェルのコードが別の人から見たら
「わけわかんない秘伝のタレ」にしか見えないかもしれない、って
考えたことある?
DockerとかAnsibleみたいなツールは何も「既存で熟練した技術者」
のためにあるわけじゃないんだよ。
難解なコードは技術者が自分の立場を守るための参入障壁でしかない。
古参技術者のATフィールドみたいなもんだよ、そんなものはOSSによって
容易に破られる時代ってこと。
373デフォルトの名無しさん
2017/10/23(月) 01:04:48.03ID:JrZmYN5x あとあれだ、Docker要らない、シェルで十分って言ってる
やつは「コンテナ化」について全く言及してないだろ。
シェルで制御できるのはせいぜい「プロセス」「ジョブ」単位。
Dockerで制御できる「コンテナ」は「沢山のプロセス」をカプセル化
した「マシン」と「プロセス」の粒度の中間にある「サーバ(=コンテナ)」
という粒度が必要になってきたからDockerができたんだよ。
あとGitリポジトリと同じで「過去の状態に復帰できる」
コンテナの設定を「1ファイルとして外部に外出しできる」のも
シェルの守備範囲外。
シェルはどうやっても依存関係が生じてなかなか「1ファイル」とはいかない
だろ?
やつは「コンテナ化」について全く言及してないだろ。
シェルで制御できるのはせいぜい「プロセス」「ジョブ」単位。
Dockerで制御できる「コンテナ」は「沢山のプロセス」をカプセル化
した「マシン」と「プロセス」の粒度の中間にある「サーバ(=コンテナ)」
という粒度が必要になってきたからDockerができたんだよ。
あとGitリポジトリと同じで「過去の状態に復帰できる」
コンテナの設定を「1ファイルとして外部に外出しできる」のも
シェルの守備範囲外。
シェルはどうやっても依存関係が生じてなかなか「1ファイル」とはいかない
だろ?
374デフォルトの名無しさん
2017/10/23(月) 01:07:56.87ID:IfXz4gcp > まず「コマンドベース」なのが可読性が汚くなる。
理由は?
> クォーテーション、オプション、セミコロン、各種コマンド展開
> パイプ、リダイレクト記号
何が問題なのか分からん。やりたいことが実現できれば十分だろ
> さらに「オプション」っていうのはテストコマンド中のオプション
> とか普通のコマンドのオプションとか1文字だけで意味を理解するには
> 「シェルの仕様を暗記」していることが前提になる。
シェルの仕様じゃなくて、普段自分で打ってるコマンドのオプションな。
あまり使わないものは俺はlong optionで書くようにしてるよ?一文字にこだわる必要はない。
> もちろん「シェルを散々やっている人」からすればそんなの身について
> 当たり前、って思うかもしれないけど、Ruby, Python, YAMLなんかに
> 比べれば「意味の通りやすさ」が段違い。
YAMLは形式、そこで使うオプションは結局覚えなきゃいけない。その分手間がかかる。
ってか本気のプログラミングをしないんだから、SQLでプログラムするのは
大変って言ってるようなもんだよ。シェルスクリプトは汎用言語じゃなくて
DSLに近いものなんだから、限られた用途で最高のパフォーマンスを出せばそれで十分
> 自分では当たり前のように書いてるシェルのコードが別の人から見たら
> 「わけわかんない秘伝のタレ」にしか見えないかもしれない、って
> 考えたことある?
それはansibleも一緒。使い込んでいくと結局機能が足りなくて自分でモジュールとか作って
自分で作ったものは冪等性が実現できてなくて〜みたいになって苦しんでる姿を見てる。
> DockerとかAnsibleみたいなツールは何も「既存で熟練した技術者」
> のためにあるわけじゃないんだよ。
シェルスクリプトも「既存で熟練した技術者」のためにあるわけじゃないんだよ。
普段シェルで使ってるコマンドそのまま使えるから知識が応用できる
理由は?
> クォーテーション、オプション、セミコロン、各種コマンド展開
> パイプ、リダイレクト記号
何が問題なのか分からん。やりたいことが実現できれば十分だろ
> さらに「オプション」っていうのはテストコマンド中のオプション
> とか普通のコマンドのオプションとか1文字だけで意味を理解するには
> 「シェルの仕様を暗記」していることが前提になる。
シェルの仕様じゃなくて、普段自分で打ってるコマンドのオプションな。
あまり使わないものは俺はlong optionで書くようにしてるよ?一文字にこだわる必要はない。
> もちろん「シェルを散々やっている人」からすればそんなの身について
> 当たり前、って思うかもしれないけど、Ruby, Python, YAMLなんかに
> 比べれば「意味の通りやすさ」が段違い。
YAMLは形式、そこで使うオプションは結局覚えなきゃいけない。その分手間がかかる。
ってか本気のプログラミングをしないんだから、SQLでプログラムするのは
大変って言ってるようなもんだよ。シェルスクリプトは汎用言語じゃなくて
DSLに近いものなんだから、限られた用途で最高のパフォーマンスを出せばそれで十分
> 自分では当たり前のように書いてるシェルのコードが別の人から見たら
> 「わけわかんない秘伝のタレ」にしか見えないかもしれない、って
> 考えたことある?
それはansibleも一緒。使い込んでいくと結局機能が足りなくて自分でモジュールとか作って
自分で作ったものは冪等性が実現できてなくて〜みたいになって苦しんでる姿を見てる。
> DockerとかAnsibleみたいなツールは何も「既存で熟練した技術者」
> のためにあるわけじゃないんだよ。
シェルスクリプトも「既存で熟練した技術者」のためにあるわけじゃないんだよ。
普段シェルで使ってるコマンドそのまま使えるから知識が応用できる
375デフォルトの名無しさん
2017/10/23(月) 01:18:21.36ID:IfXz4gcp >>373
> という粒度が必要になってきたからDockerができたんだよ。
ぜんぜん違うわw お前Docker分かってないじゃないかw
https://www.docker.com/what-container
ここよめ 面倒だからGoogleで日本語に翻訳したよ
> 開発、出荷、展開のための標準化されたユニットにソフトウェアをパッケージ化する
> コンテナイメージは、実行に必要なすべてのもの(コード、ランタイム、システムツール、
> システムライブラリ、設定)を含む軽量でスタンドアロンの実行可能なパッケージです。
「軽量でスタンドアロンの実行可能なパッケージです。」
ソースコードをコンパイルしてビルドすしたビルド生成物にさらにコード、ランタイム、
システムツール、システムライブラリ、設定をパッケージ化したものだ
複数のプロセスをパッケージ化したものじゃない。
静的リンクをさらに発展させてシステムライブラリまでをもリンクしたようなものだ。
> あとGitリポジトリと同じで「過去の状態に復帰できる」
いや?過去の状態に復帰するために使うことはまれ。
Dockerfileが同じでも全く同じイメージは作れない。
その時点で最新のディストリのパッケージが使われるから。
Makefileと同じで手順が残っていて1コマンド(ないし数コマンド)でビルドできるのが特徴
> コンテナの設定を「1ファイルとして外部に外出しできる」のも
> シェルの守備範囲外。
当たり前だろ・・・コンテナの設定を外出できるのはコンテナの機能だろ
なんでシェルの話とコンテナの話をごっちゃにしてるんだよw
> シェルはどうやっても依存関係が生じてなかなか「1ファイル」とはいかない
シェルが1ファイルとか誰も言ってないんだが?
> という粒度が必要になってきたからDockerができたんだよ。
ぜんぜん違うわw お前Docker分かってないじゃないかw
https://www.docker.com/what-container
ここよめ 面倒だからGoogleで日本語に翻訳したよ
> 開発、出荷、展開のための標準化されたユニットにソフトウェアをパッケージ化する
> コンテナイメージは、実行に必要なすべてのもの(コード、ランタイム、システムツール、
> システムライブラリ、設定)を含む軽量でスタンドアロンの実行可能なパッケージです。
「軽量でスタンドアロンの実行可能なパッケージです。」
ソースコードをコンパイルしてビルドすしたビルド生成物にさらにコード、ランタイム、
システムツール、システムライブラリ、設定をパッケージ化したものだ
複数のプロセスをパッケージ化したものじゃない。
静的リンクをさらに発展させてシステムライブラリまでをもリンクしたようなものだ。
> あとGitリポジトリと同じで「過去の状態に復帰できる」
いや?過去の状態に復帰するために使うことはまれ。
Dockerfileが同じでも全く同じイメージは作れない。
その時点で最新のディストリのパッケージが使われるから。
Makefileと同じで手順が残っていて1コマンド(ないし数コマンド)でビルドできるのが特徴
> コンテナの設定を「1ファイルとして外部に外出しできる」のも
> シェルの守備範囲外。
当たり前だろ・・・コンテナの設定を外出できるのはコンテナの機能だろ
なんでシェルの話とコンテナの話をごっちゃにしてるんだよw
> シェルはどうやっても依存関係が生じてなかなか「1ファイル」とはいかない
シェルが1ファイルとか誰も言ってないんだが?
376デフォルトの名無しさん
2017/10/23(月) 01:28:14.42ID:IfXz4gcp > した「マシン」と「プロセス」の粒度の中間にある「サーバ(=コンテナ)」
って言ってる時点で、
システムコンテナ(OpenVZなど) と アプリケーションコンテナ(Dockerなど)の
違いが分かってないとわかるんだよな。
コンテナ上で複数のプロセスを動かすとかさぁw
http://tokyodebian.alioth.debian.org/html/debianmeetingresume200912se8.html
> コンテナ型の仮想化技術というと有名なのは、 Solaris Containers や FreeBSD jail がありますが、
> Linux では Linux-VServer, OpenVZ*7 な どがあります。 いずれも既に使ったことがある方が多いのではないのでしょうか。
> lxc で提供されるサービスは、 大きく分類してシステムコンテナと、 アプリケーションコンテナの
> 2 つがあります。 前者は、 いわゆる OS まるごとの仮想化です。 init から起動して、 仮想 OS の空間を提供します。
> 後者は、 chroot によるアプリ ケーションの分離に近いです。
> 単一アプリケーションを分離するだけなので、 とても軽くシンプルなのが特徴 です。
って言ってる時点で、
システムコンテナ(OpenVZなど) と アプリケーションコンテナ(Dockerなど)の
違いが分かってないとわかるんだよな。
コンテナ上で複数のプロセスを動かすとかさぁw
http://tokyodebian.alioth.debian.org/html/debianmeetingresume200912se8.html
> コンテナ型の仮想化技術というと有名なのは、 Solaris Containers や FreeBSD jail がありますが、
> Linux では Linux-VServer, OpenVZ*7 な どがあります。 いずれも既に使ったことがある方が多いのではないのでしょうか。
> lxc で提供されるサービスは、 大きく分類してシステムコンテナと、 アプリケーションコンテナの
> 2 つがあります。 前者は、 いわゆる OS まるごとの仮想化です。 init から起動して、 仮想 OS の空間を提供します。
> 後者は、 chroot によるアプリ ケーションの分離に近いです。
> 単一アプリケーションを分離するだけなので、 とても軽くシンプルなのが特徴 です。
377デフォルトの名無しさん
2017/10/23(月) 01:32:54.85ID:JrZmYN5x >>375
成果物として生成したものから起動する
コンテナは「仮想マシン」みたいなものだから、
そのなかで稼働するプロセスをカプセル化しているって言う
表現は間違っていない。
視野がせまいのはドキュメントの表面的な字面だけを捉えている
お前の方。
使うのが稀だとしても「過去の状態に復帰できる」が担保されているのと
上手く行かないかもしれないというのでは差が大きい。
それに差分抽出、差分吸収もできる。
「1ファイル」であるということは移植性が高いということ。
シェルは内部に多数の外部スクリプト、コマンドなどを読み込むから
1ファイルではなかなか他のマシンに移植しにくい。
因みにシェルが役に立たないとは言っていない。
だけどDockerやプロビジョンツールを否定するのは無理がある。
成果物として生成したものから起動する
コンテナは「仮想マシン」みたいなものだから、
そのなかで稼働するプロセスをカプセル化しているって言う
表現は間違っていない。
視野がせまいのはドキュメントの表面的な字面だけを捉えている
お前の方。
使うのが稀だとしても「過去の状態に復帰できる」が担保されているのと
上手く行かないかもしれないというのでは差が大きい。
それに差分抽出、差分吸収もできる。
「1ファイル」であるということは移植性が高いということ。
シェルは内部に多数の外部スクリプト、コマンドなどを読み込むから
1ファイルではなかなか他のマシンに移植しにくい。
因みにシェルが役に立たないとは言っていない。
だけどDockerやプロビジョンツールを否定するのは無理がある。
378デフォルトの名無しさん
2017/10/23(月) 02:24:34.18ID:IfXz4gcp >>377
> コンテナは「仮想マシン」みたいなものだから、
だからそれが間違いだってーのw
仮想マシンって何かわかってるか?(物理)マシン、ハードウェアを
ソフトウェアで実装することで仮想的なハードウェアを作り出すものだよ。
コンテナはハードウェアをソフトウェアで実現している
わけじゃないので仮想マシンとは全く違うもの
(アプリケーション)コンテナがやってる仮想化っていうのは
カーネル部分だ。コンテナごとにカーネル部分を仮想的に作り出すことで
アプリケーションごとに独立したユーザーランドを提供することができる
アプリケーション専用に独立した実行環境を持てるんだよ。
同じ「仮想」という言葉が入っているから勘違いしてるのだろうが
コンテナは仮想マシンとは全く違う。「仮想」ではあるが「マシン」じゃない。
仮想メモリと仮想マシンに両方共「仮想」が入っているから
同じようなものだと勘違いしているのと同じレベルの間違いをしてる。
> 表現は間違っていない。
間違っている所は仮想マシンみたいなものと言う所と
複数のプロセスをまとめるというものだ。
やろうと思えばできなくはないが、アプリケーションコンテナであるDockerは
複数のプロセスをまとめたりしない。複数のプロセスを動かすのは
物理・仮想マシンの役目だ。
物理・仮想マシンで複数のプロセスを起動する
Dockerコンテナ1つはその複数のプロセスの1つにすぎない
> コンテナは「仮想マシン」みたいなものだから、
だからそれが間違いだってーのw
仮想マシンって何かわかってるか?(物理)マシン、ハードウェアを
ソフトウェアで実装することで仮想的なハードウェアを作り出すものだよ。
コンテナはハードウェアをソフトウェアで実現している
わけじゃないので仮想マシンとは全く違うもの
(アプリケーション)コンテナがやってる仮想化っていうのは
カーネル部分だ。コンテナごとにカーネル部分を仮想的に作り出すことで
アプリケーションごとに独立したユーザーランドを提供することができる
アプリケーション専用に独立した実行環境を持てるんだよ。
同じ「仮想」という言葉が入っているから勘違いしてるのだろうが
コンテナは仮想マシンとは全く違う。「仮想」ではあるが「マシン」じゃない。
仮想メモリと仮想マシンに両方共「仮想」が入っているから
同じようなものだと勘違いしているのと同じレベルの間違いをしてる。
> 表現は間違っていない。
間違っている所は仮想マシンみたいなものと言う所と
複数のプロセスをまとめるというものだ。
やろうと思えばできなくはないが、アプリケーションコンテナであるDockerは
複数のプロセスをまとめたりしない。複数のプロセスを動かすのは
物理・仮想マシンの役目だ。
物理・仮想マシンで複数のプロセスを起動する
Dockerコンテナ1つはその複数のプロセスの1つにすぎない
379デフォルトの名無しさん
2017/10/23(月) 02:33:28.78ID:IfXz4gcp >>377
> 使うのが稀だとしても「過去の状態に復帰できる」が担保されているのと
担保されていない。イメージを消してしまったら二度と同じものは作れない。
> 「1ファイル」であるということは移植性が高いということ。
俺は「1ファイル」なんかにこだわってないが、
なんでお前はそれにこだわってるんだ?
別に「1ファイル」であることは移植性は高くない。
何を根拠にそんなこと言ってるんだろうか?
移植性がないC言語のソースコードを1ファイルにすると
移植性が高くなるとでも? 意味がわからない。
> シェルは内部に多数の外部スクリプト、コマンドなどを読み込むから
> 1ファイルではなかなか他のマシンに移植しにくい。
移植しにくいのは他の「マシン」ではなくて他のOS(ディストリ)
コンテナはその部分を仮想化して、カーネル以外の部分を
全部アプリケーションにくっつけてしまう。
結局のところ別の実行環境に移植するっていうのは理論上は
互換性があっても完璧とはいえないんだよ。
だからコンテナを使うことで、カーネル以外の部分に同じものを使うことで
移植そのものをなくしてしまった。
DockerコンテナはLinuxカーネルでしか動かないって知ってるか?
使うOSは全部Linuxだ。だから移植しなくて良いんだよ。
なおAnsible使っても移植作業は大変だ。DebianとCentOSでapt-get、yum違いも有るし
パッケージ名の違いも有る。パッケージの中に入っているものも違う。それぞれ用意しないといけない。
Dockerイメージににはカーネルを除いた「Debian」部分も含まれるから
CentOSで、Debianベースのイメージが動かせる。移植作業が不要とはこういうこと
> 使うのが稀だとしても「過去の状態に復帰できる」が担保されているのと
担保されていない。イメージを消してしまったら二度と同じものは作れない。
> 「1ファイル」であるということは移植性が高いということ。
俺は「1ファイル」なんかにこだわってないが、
なんでお前はそれにこだわってるんだ?
別に「1ファイル」であることは移植性は高くない。
何を根拠にそんなこと言ってるんだろうか?
移植性がないC言語のソースコードを1ファイルにすると
移植性が高くなるとでも? 意味がわからない。
> シェルは内部に多数の外部スクリプト、コマンドなどを読み込むから
> 1ファイルではなかなか他のマシンに移植しにくい。
移植しにくいのは他の「マシン」ではなくて他のOS(ディストリ)
コンテナはその部分を仮想化して、カーネル以外の部分を
全部アプリケーションにくっつけてしまう。
結局のところ別の実行環境に移植するっていうのは理論上は
互換性があっても完璧とはいえないんだよ。
だからコンテナを使うことで、カーネル以外の部分に同じものを使うことで
移植そのものをなくしてしまった。
DockerコンテナはLinuxカーネルでしか動かないって知ってるか?
使うOSは全部Linuxだ。だから移植しなくて良いんだよ。
なおAnsible使っても移植作業は大変だ。DebianとCentOSでapt-get、yum違いも有るし
パッケージ名の違いも有る。パッケージの中に入っているものも違う。それぞれ用意しないといけない。
Dockerイメージににはカーネルを除いた「Debian」部分も含まれるから
CentOSで、Debianベースのイメージが動かせる。移植作業が不要とはこういうこと
380デフォルトの名無しさん
2017/10/23(月) 02:34:50.00ID:JrZmYN5x >>378
お前は国語が理解できないんだと思う。
「犬は狼みたいなもんだ」といったら
それの違いを生息地帯とか餌の内容とかごちゃごちゃ並べて
批判するタイプ。
つまり、抽象表現とかメタファーを一切受け入れられない。
その証拠に、使っている言葉がどっかのドキュメントに書いてある
文言そのまんまコピってきたような文章書いてるな。
学力テストでは高得点取れそうだが、物事を設計するのは苦手そう
違うかい?
お前は国語が理解できないんだと思う。
「犬は狼みたいなもんだ」といったら
それの違いを生息地帯とか餌の内容とかごちゃごちゃ並べて
批判するタイプ。
つまり、抽象表現とかメタファーを一切受け入れられない。
その証拠に、使っている言葉がどっかのドキュメントに書いてある
文言そのまんまコピってきたような文章書いてるな。
学力テストでは高得点取れそうだが、物事を設計するのは苦手そう
違うかい?
381デフォルトの名無しさん
2017/10/23(月) 02:38:08.54ID:IfXz4gcp382デフォルトの名無しさん
2017/10/23(月) 02:44:12.55ID:IfXz4gcp っていうか言い返したいのはわかるが、
レスの内容に言及しないのは何なんだろうなw
レスの内容に言及しないのは何なんだろうなw
383デフォルトの名無しさん
2017/10/23(月) 02:46:41.07ID:IfXz4gcp > 違うかい?
あぁ、そうだ、これ、関係ないくだらない質問ををしてそれに答えなかったら、
否定しなかったから認めたんだ。おまえは認めたんだー。わーって
言うための布石だこれ。見たこと有るw
くだらない質問だけど違うって言っておくよ。おまえを黙らせるために。
でも関係ない話だからそれ以外何も言うつもりはないよ。
このスレに関係ある話をしような?
あぁ、そうだ、これ、関係ないくだらない質問ををしてそれに答えなかったら、
否定しなかったから認めたんだ。おまえは認めたんだー。わーって
言うための布石だこれ。見たこと有るw
くだらない質問だけど違うって言っておくよ。おまえを黙らせるために。
でも関係ない話だからそれ以外何も言うつもりはないよ。
このスレに関係ある話をしような?
384デフォルトの名無しさん
2017/10/24(火) 00:32:13.24ID:jO+jDbIG ...お、おう。
久々に来たら面白い事になってんな。
久々に来たら面白い事になってんな。
385デフォルトの名無しさん
2017/10/24(火) 03:30:56.57ID:DfsEXCLh Docker、2016、オライリー
Chef実践入門 - コードによるインフラ構成の自動化、2014
Chef実践入門 - コードによるインフラ構成の自動化、2014
386デフォルトの名無しさん
2017/10/24(火) 23:00:17.34ID:zYnBGUyD 殆ど同じ内容のDockerfileなんだけどちょっとだけ変えたい場合ってどう書けばいいの?
FROM me/hoge:debug
COPY . /hoge
WORKDIR /hoge
RUN ./setup.sh --debug
ENTRYPOINT ["run.sh"]
FROM me/hoge:release
COPY . /hoge
WORKDIR /hoge
RUN ./setup.sh
ENTRYPOINT ["run.sh"]
似たようなのが沢山ある
FROM me/hoge:debug
COPY . /hoge
WORKDIR /hoge
RUN ./setup.sh --debug
ENTRYPOINT ["run.sh"]
FROM me/hoge:release
COPY . /hoge
WORKDIR /hoge
RUN ./setup.sh
ENTRYPOINT ["run.sh"]
似たようなのが沢山ある
387デフォルトの名無しさん
2017/10/24(火) 23:03:45.53ID:hjkLVxi7 >>386
build-argつかえ
build-argつかえ
388デフォルトの名無しさん
2017/10/24(火) 23:18:00.24ID:zYnBGUyD >>387
👍
👍
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【芸能】デパートで見つけたランドセルが衝撃価格! つまみ枝豆「どこかで規制しないと」に共感の声殺到 「全て同感」「高すぎますね」 [冬月記者★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★2 [Hitzeschleier★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず [七波羅探題★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず★2 [七波羅探題★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は [蚤の市★]
- 自ら「パンセクシュアル」だと明かし、東由貴・東京都議(立憲民主)が「パートナーシップ」施策の充実求める:東京新聞 [少考さん★]
- VIP過疎りすぎて9人くらいの同じメンバーがローテーションして書き込んでるだけじゃね?
- サンリオのピューロランドの着ぐるみがキャラによってはなんか草 何点?
- おぱんちゅうさぎ、つまらないのに売れる [279254606]
- 【悲報】ボスニア紛争の「人間狩りツアー」、日本人も参加していたことが判明し世界大激怒wwwww高市 [535650357]
- 富裕層中国人、トランプが全員日本から奪うwwwwwwww1億5000万円でアメリカ永住権、申し込み開始し中国人殺到 [271912485]
- 高市を支持する日本人さんはなにが理由なの?円安進行、国債金利爆上げ、最大貿易国との摩擦とたった1ヶ月で国益を棄損してるのに [472617201]
