ksaitoの日記

日々試したことの覚え書き

2017-01-01から1年間の記事一覧

AWS Cloud9

AWS Cloud9をsshでインストールする場合に必要なパッケージです。 $ apt-get install nodejs-legacy

bashのretry

下記のコードを$HOME/.bashrcに追加するとコマンドが失敗した場合に、一定時間待って、指定した回数リトライするretry関数を追加できます。 オリジナルは、ここのソースを参考に改良しました。(コメントしようと思いましたが、50以上の評価がないとコメン…

concourseを使ったビルド

concourse.ioは、日本語情報とても少ないです。 とてもクールなCIツールです。 パイプライン、ジョブ、リソース、タスクといった考え方があり、CI/CDのパイプラインを構築できますが、実装しようと思うと意外と手が止まります。 パイプラインの起点は、S3やg…

macOS High Sierraのアップグレードに失敗

MacBook ProにmacOS High Sierraのアップグレード通知がきたのでアップグレードしたところ、見事に失敗しました。 1時間ほどアップグレード処理が続いた後にWi-Fiを選択する画面が表示されました。Wi-Fiを選択したところ、しばらくして画面がブラックアウト…

Jenkins-cli

Jenkinsをコマンドラインから操作することでコード化することができます。 Jenkinsをコマンドで操作するには、Jenkins-cliに付属しているjenkins-cli.jarを使います。 Jenkins-cliの設定 最初にjenkins-cli.jarファイルのダウンロードとAPIトークンを作成す…

JenkinsfileとMakefileの統合

Jenkinsfileをメンテナンスし続ける自信がないので、Jenkinsfileをパイプラインの定義のみで使うようにしました。 定義したパイプラインの各ステップは、Makefileのターゲットに対応させるとメンテナンスし易くなります。 パイプラインの定義 パイプラインは…

Docker for macでコンテナの中からMacのIPを知る方法

I WANT TO CONNECT FROM A CONTAINER TO A SERVICE ON THE HOSTに書かれているdocker.for.mac.localhostで、下記のようにコンテナの中からMacのIPアドレスを引くことができます。 $ nmap -Pn -p 8080 docker.for.mac.localhost Starting Nmap 7.40 ( https:/…

githubの二要素認証を設定するとpush時に認証エラーになる

githubで二要素認証を設定するとpush時に認証エラーになります。 $ git push origin develop Username for 'https://github.com': *** Password for 'https://***@github.com': remote: Invalid username or password. fatal: Authentication failed for 'ht…

ファイルの作成と削除を待つ

シェルでファイルの作成と削除を待つのにinotify-toolsを使います。 インストール aptでインストールします。 $ sudo apt install -y inotify-tools ファイルの作成と削除を待つ waitfile.shに指定した引数のファイルが作成されるのをfilewaitで待ちます。 …

Raspberry pi 3

Raspberry pi 3のOSイメージをSDカードに約手順です。 環境 MacBook Pro 2015 OS X EI Capitan 10.11.6 Raspberry pi 3 Model B TOSHIBA microSDHCカード 16GB Class10 UHS-I対応 (最大転送速度40MB/s) 5年保証 (国内正規品) MSDAR40N16G出版社/メーカー: 東…

コンテナとファイルのやりとり

docker cpコマンドでも良いのですが、ディレクトリごと出し入れしたい場合には、tarコマンドを使った方が便利です。 tarの-Cオプオションは、tarを実行する前に指定されたディレクトリに移動します。 tar -C /tmp -cf - logは、(cd /tmp; tar cf - log)と同…

Dockerfileでexitステータスが0以外を返す処理を扱う

Dockerfileで外部のシェルを実行する場合に、そのシェルが正常終了したのに終了ステータスが0以外を返すことがあります。 dockerは、0以外のステータスが返されるとビルドが失敗したと判断して処理を中断してしまいます。 Dockerfileを下記のように記載する…

su: cannot open session: Permission denied

Oracle 12cをOracle Linuxにインストールする際に、事前準備をするパッケージがあります。 これを設定すると、oracleユーザのsuできません。 設定 インストールマニュアルに従って下記のように設定します。 $ cd /etc/yum.repos.d $ curl -O http://public-y…

dockerコンテナからkeychainを使ってgithubに接続する際に困ったこと

かなり前のブログに、sshの秘密鍵にパスフレーズを設定し、keychainを使って毎回パスフレーズを入力しなくて良い方法を書きました。 ksaitoの日記: keychain この方法をdockerコンテナに応用した場合、ちょっと厄介です。 例えば、こんな風にgithubに接続済…

ECSにELBやAutoScaleを設定するときに必要な設定

ECSにサービスを登録する際に、ELBとAutoScaleを設定すると下記のエラーが表示されました。 これは、認証情報-アカウント設定の「Security Token Service リージョン」が無効担っているためで、同メニューからECSが稼働しているリージョンを有効化することで…

ネットワーク遅延

ネットワーク遅延について理解が曖昧だったのでおさらいしました。 調べ方 測定したいサーバのいずれかからpingコマンドを使って調べます。 gceのインスタンスからヤフージャパンとyahooを測定します。 $ ping -c 2 www.yahoo.co.jp PING ***.jp (***.***.**…

gitで過去のコミットを書き換える

gitの最初のcommitにパスワードを書き込んでpushしたとします。さらに、しばらくcommit/pushを繰り返したとします。 下記の手順でパスワードを全てマスクした文字に書き換える事ができますが、cloneして作業している人すべてに影響がでるので作業前には関係…

pythonの開発環境その2

以前にdirenvとvirtualenvでpythonの開発環境を作る手順を書きました。 ksaito11.hatenablog.com pythonzを使うとpythonのバージョンも選択できるようになります。 前提パッケージ ubuntu17.04に下記の前提パッケー時をインストールします。 $ apt-get insta…

プロキシの設定する

プロキシ環境下では、プロキシサーバを設定しないとインターネットに接続できません。 環境変数に設定する場所は、/etc/environmentや/etc/profile.dだったり、$HOMEの各種シェルの.profileと、いろいろな場所で設定できます。 yumやaptといったコマンド毎に…

systemdのサービスをansible-playbookのhandlersでうまく記述する方法

ansible-playbookのhandlersでserviceを使ってサービスをリスタート出来ますが、systemdのサービスを再起動しようとしてもエラーになります。 systemdは、設定変更時にsystemctl daemin-reloadを実行してからサービスを再起動する必要があるためです。 下記…

docker runすると/bin/bash: /bin/bash: cannot execute binary fileが出る場合の対処

コンテナのデバッグで下記のコマンドをよく使います。 $ docker run -it --rm <イメージ> /bin/sh zabbixのオフシャルイメージの幾つかで下記のようなエラーがでてしばらく悩みました。 $ docker run -it --rm zabbix/zabbix-agent:alpine-3.2-latest /bin/s…

s3cmd syncでシンボリックリンクのコピー

s3cmd syncで下記のようなシンボリックリンクをコピーすると無限に深いディレクトリを作り続けます。(何れどこかでエラーになると思いますが…) $ ls -l .fcpcache lrwxr-xr-x@ 1 user staff 1 3 11 16:40 .fcpcache -> . $