nodeのバージョン管理にnaveを使おうと思ったら上手くいかなかったのでメモ

basherからnaveをインストールしたあと、

$ nave use latest

を実行したところ、nodeのインストールに失敗した。

$ nave cache clear

したら直った

環境

AWS EC2 OS Debian Jessie AMI ami-dbc0bcbc

問題が発生した手順

  1. basherインストール
  2. naveインストール
  3. nodeインストール

basherのインストール

basherのInstallation手順に沿ってインストールした github.com

$ git clone https://github.com/basherpm/basher.git ~/.basher
$ echo 'export PATH="$HOME/.basher/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(basher init -)"' >> ~/.bash_profile
$ bash
$ basher update

naveインストール

naveのInstallation手順に従ってインストールした github.com

$ basher install isaacs/nave

nodeインストール(問題が起きたところ)

最新版のnodeを使おうと思い下記コマンドを実行した

$ nave use latest

コマンド結果

What version of node?
lts, lts/<name>, latest, x.y, or x.y.z >

ここで latest と入力してもnodeのインストールは実行されませんでした。

下記の通りキャッシュをクリアしたらインストールできました。

$ nave cache clear
$ nave use latest

MacにVisualStudio for Mac を入れてみたけど、dotnet coreが動かなかった

Macに VisualStudio for Mac を入れて、プロジェクトの作成から Console Application を選びました。

プロジェクトは作成されたのですが、リストア・ビルドが成功しませんでした。

$ which dotnet
dotnet not found

となり、どうやらdotnetコマンドが使えません。

SDKを入れ直してもダメでした。

調べてみると、シンボリックリンクが上手く晴れていないようなので

$ ln -s /usr/local/share/dotnet/dotnet /usr/local/bin/

とすることで無事解決しました。

参考

github.com

AWS CloudFormationでインフラを構築するときに CAPABILITY_NAMED_IAM というエラーが出た

AWS CodePipeline + CloudFormation でインフラをソースコードで管理しようと思い、cfn-ci-cd-demo というRepositoryをベースにいろいろ試してみました。

github.com

IAM Role を作るときに、

Requires capabilities : [CAPABILITY_NAMED_IAM] 

というエラーが出ました。

エラーが出たときの手順

  1. src配下で、 IAM Role (RoleName指定有り)を作成するテンプレートを作成する
  2. git push してインフラ構築をする
  3. 1.で作成したテンプレートの構築時にエラーが出る

という流れで試していたので、1.の該当ファイルだけをCloudFormationのテンプレートに指定して動かしてみたところエラーも無く IAM Role の作成に成功しました。

cfn-ci-cd-demo では、

  1. ソースコード取得
  2. テスト
  3. ビルド
  4. 認証許可
  5. デプロイ

の手順で、デプロイ時に失敗するのでココに原因があるものだと思い、追加したファイルをいろいろ変更して試してみたのですがCodePipelineからのデプロイは成功しませんでした。

解決方法

ビルド時の Capabilities: CAPABILITY_IAM という設定が原因でした。

この部分です。

- Name: Build
  Actions:
    Configuration:
      Capabilities: CAPABILITY_IAM

IAM や IAM Role に名前を付けたい場合は CAPABILITY_NAMED_IAM にしないといけないようです。

公式のドキュメントにも書いてあることでした。

docs.aws.amazon.com

esaの任意ページを素早く表示するesajump公開しました。

Chrome Extensionで esajump というものを公開しました。 chrome.google.com

esajumpはドキュメント共有ツールにesaで、任意の番号のページを素早く表示することを目的としています。 esa.io

たまに、口頭で「esaの何番です」といった形で共有されるケースがあります。 そのときに

  1. esaのトップページを開く
  2. チーム名を指定する
  3. 適当なドキュメントを開く
  4. URLの番号を口頭で伝えられたものに書き換える

という感じで表示するまでが結構めんどくさかったりします。

esajumpは あらかじめチーム名を登録しておくことで、番号を入れるだけで該当のドキュメントを表示できるようになります。

使い方

ここでチーム名を入力し、Enterもしくは右にある + ボタンを押して登録します。
f:id:naught00:20170620222213p:plain
f:id:naught00:20170620222228p:plain

チーム名(hoge)が登録されました。
f:id:naught00:20170620222241p:plain

チーム名をクリックしたあとに表示される画面です。
ここで、背景グレーのテキストボックスに番号を入力しEnterを押すことで、新規タブで該当のドキュメントが表示されます。
チーム名をクリックした場合は、チームのREADMEが表示されます。
f:id:naught00:20170620222328p:plain

上図にある レンチマークのボタンを押したときに表示される画面です。
チーム名を誤って登録した場合はここから削除することができます。
f:id:naught00:20170620222343p:plain

AWSのCloudFormationでs3バケット名変更

CloudFormationからs3バケット名を変更しようとした時の注意メモ

CloudFormationのテンプレートでs3を構築/管理しているときにバケット名を変更しようとします。
変更時の動作は

  1. 新しく名前のバケットを作成する
  2. 古い名前のバケットを削除する

の流れのようなので、バケットの中身が消えてしまいました。

また、名前を変えたいバケットの中身が空でない場合、CloudFormationのイベントタブでイベントを見たときに、下記の様なエラーが出ていることがありました。

状態 タイプ 状況の理由
DELETE_FAILED AWS::S3::Bucket The bucket you tried to delete is not empty. You must delete all versions in the bucket.

windows10 + docker for windows + intellij idea

windows環境のintelliJ IDEAでdocker integrationを使おうとしたときに、接続できなかった。
docker for windows 側の設定を直すことで解決できたのでメモしておく。

前提条件

解決方法

docker for windows のsettingsを開く

f:id:naught00:20170523120813p:plain

一番下の Expose daemon on tcp://localhost:2375 without TLS にチェックを入れる

docker for windows で docker pull に失敗する場合の対処方法

docker for windows にて docker pull に失敗する場合の対象方法について

dockerイメージを取得しようとすると下記のエラーが出た

$ docker pull debian
Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

docker for windows バージョン情報

f:id:naught00:20170519160606p:plain

dockerのバージョン

$ docker -v
Docker version 17.03.1-ce, build c6d412e

対処方法

Settings > Network の項目にて DNS Server の項目で Fixed にチェックを入れ、値を 8.8.8.8 にする

参考

github.com