サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「かわいい」
tsunokawa.hatenablog.com
概要 下記記事にありますとおり、Docker Compose to ECS pluginを用いることで これまでDocker Composeで起動していたコンテナ群をECSへデプロイすることが可能となります。 Docker Compose と Amazon ECS を利用したソフトウェアデリバリの自動化 サンプルアプリケーション 動作確認をおこなうため公式のサンプルアプリケーションを利用させてもらいます。 サンプルアプリケーション 下準備 Contextの確認 以下コマンドで現在のContextを確認します。 docker context list 表示結果例 $ docker context list NAME TYPE DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR default * moby Current
概要 Dockerイメージを手元でrunさせる際にそのまま動かさず、試しにbashを実行してコンテナの中身を見たいときがあります。 Dockerビルドの際、entrypointが指定されているとCMDと違いbashを指定するとコマンドが上書きされず引数(オプション)扱いとなるためエラーとなってしまいます。 エラー例 $ docker run -it --rm aerospike/aerospike-tools bash error: Unknown command: bash entrypointを指定して上書き $ docker run -it --rm --entrypoint "bash" aerospike/aerospike-tools 参考 Docker run リファレンス
概要 Linuxサーバーを再起動した場合fsckが自動で走りなかなか起動しないときがあります。 fsckは重要ですが早く起動したいときに困ることがあります。 そんなときに使えるTIPSです。 方法その1. カーネルパラメータにfastbootを指定 以下のように起動時にgrubのカーネルパラメータの最後にfastbootをつけることでfsckをスキップして起動することが出来ます。 kernel /boot/vmlinuz-2.6.32-754.10.1.el6.x86_64 ro root=LABEL=/ LANG=en_US.UTF-8 console=tty0 console=ttyS0,115200n8 fastboot 方法その2. ファイルシステムチェック無しで直ちに再起動 shutdownコマンドを使って再起動する際に小文字のfオプションをつけることでfsckをスキップして再起
概要 1台のPCで仕事用、個人用それぞれのGitリポジトリに接続する場合、 git configの設定を都度行うのは面倒です。 そこで~/.gitconfigにディレクトリ毎に仕事用、個人用の設定を行うことで、 ~/work/以下にcloneしたリポジトリなら仕事用の設定 ~/personal/以下にcloneしたリポジトリなら個人用の設定 と自動で行うことが出来ます。 メールアドレス ディレクトリ 仕事 tsunokawa@example.com ~/work/以下 個人 tsunokawa@example.net ~/personal/以下 ~/.gitconfig ここで全体の設定を行います。 # グローバル設定 [user] name = Kenichi Tsunokawa email = tsunokawa@example.com # ~/work/以下の場合仕事用に設定を行う。
概要 Macで/etc/hostsを書き換えて開発環境をブラウザで開くことが多々あります。 毎回Vimなどで書き換えるのが面倒だなと思っていたところGasMaskという便利なソフトウェアがありました。 事前にhostsファイルを登録しておくと数クリックでhostsを切り替えることが出来ます。 インストール GasMask こちらからソフトウェアをダウンロードしてインストール出来ます。 使い方 インストール後、メニューバーに常駐します。 [Show Editor Window] を開くとエディタが開きhostsファイルを編集することが出来ます。 編集画面 [+]から[Local]を選択すると新規hostsファイルを作成出来ます。 編集後、[Save]で保存、[Activate]で有効化出来ます。 メニューバーからもhostsファイル名をクリックすることでhostsの切り替えを行うことが出来ま
IPv4 IPv6 運営元 8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844 Google 1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001 Cloudflare 64.6.64.6 64.6.65.6 2620:74:1b::1:1 2620:74:1c::2:2 Verisign 208.67.222.222 208.67.220.220 2620:0:ccc::2 2620:0:ccd::2 OpenDNS 101.101.101.101 101.102.103.104 2001:de4::101 2001:de4::102 TWNIC 9.9.9.9 149.112.112.112 2620:fe::fe 2620:fe::9 Quad9
概要 PostgreSQLでレプリケーションを組んでいるときマスター/スレーブを確認する方法 以下のSQLで判断可能 SELECT pg_is_in_recovery(); マスターの場合 postgres=# SELECT pg_is_in_recovery(); pg_is_in_recovery ------------------- f (1 row) postgres=#fが返る。 スレーブの場合 postgres=# SELECT pg_is_in_recovery(); pg_is_in_recovery ------------------- t (1 row) postgres=#tが返る。
trickle 帯域制限をおこないたいコマンドの前にこのコマンドをつけて実行すると帯域制限がかけられる。 インストール apt-get install trickle 実行 trickle -s -d 128 -u 128 curl -L -O http://ftp.riken.jp/Linux/ubuntu-releases/16.04/ubuntu-16.04.3-server-amd64.iso -sスタンドアロンモードで実行コマンドのみに適用したいときに使用する。 -dダウンロードの帯域を指定(単位はKB/s) -uアップロードの帯域を指定(単位はKB/s) 上記だと128KB/sなので 128KB/s * 8bit = 1024Kb/s となり1Mb/sの制限になる。 以下のようにダウンロード・アップロードのそれぞれの帯域だけを指定することも可能 ダウンロードのみ trickle
環境 Ubuntu 16.04.3 LTS 概要 /etc/network/interfacesでネットワークの設定を行ってIPアドレス10.0.0.1で稼働させた後、 10.0.0.2へIPアドレスを変更したがIPが変わらなかった。 設定を変更してnetworkingデーモンを再起動してもIPアドレスが変わらなかった。 ifdown eth1 && ifup eth1や systemctl restart networkingをやってみてもダメ 対処法 ip addr flush dev eth1を実行後、 systemctl restart networkingとしたところ無事変わった。
概要 Dockerイメージなどミニマルな環境だといつものコマンドが使えないときがある。 イメージ容量を考えると不要なパッケージが入っていないほうが良いのだが困るときもある。 そんなとき用のメモ 対応表 コマンド パッケージ名(CentOS) パッケージ名(Ubuntu) ps procps procps ping iputils iputils-ping ip iproute iproute ss iproute iproute ifconfig net-tools net-tools arp net-tools net-tools netstat net-tools net-tools route net-tools net-tools traceroute traceroute inetutils-traceroute dig bind-utils dnsutils nslookup
概要 Dockerコンテナの/etc/resolv.confはDockerホストのファイルがそのまま引き継がれる。 DockerホストとDockerコンテナで名前解決の設定を変更したい場合はdocker runのときに--dnsオプションを指定することで個別に変更が出来る。 とはいえ毎回docker runの度にオプション指定は面倒、しかしDockerホストの/etc/resolv.confは変更したくない。。。 そういった場合は/etc/docker/daemon.jsonに事前に設定を入れておくことで Dockerホストの/etc/resolv.confを変更することなくそして--dnsオプションを指定する必要がなくなる。 設定 /etc/docker/daemon.json { "dns": [ "10.0.0.1", "10.0.0.2", "10.0.0.3" ], "dns-o
LDAP上の「backup」というユーザ名の一般ユーザで各CentOSサーバーにログインして回りデータをリモートバックアップしていた。 ところがUbuntuサーバーに対して同様のリモートバックアップを行おうと思ったところLDAPの「backup」ユーザでログインできなかった。 「backup」ユーザでsshでログインしようとすると This account is currently not available.こういったメッセージが表示されてしまう。 調べたところUbuntuはデフォルトでローカルにbackupユーザが存在する。 そしてログインシェルがnologinだった。 CentOSはデフォルトでローカルにbackupユーザがいないので問題なかった。 # id backup uid=34(backup) gid=34(backup) groups=34(backup) # /etc/p
概要 Redisのスローログ出力方法と設定のメモ slowlogを5件出力する SLOWLOG GET 5 表示例 [tsunokawa@test ~]$ redis-cli 127.0.0.1:6379> SLOWLOG GET 5 1) 1) (integer) 18284101 2) (integer) 1471441352 3) (integer) 56080 4) 1) "GET" 2) "testkey1" 2) 1) (integer) 18284100 2) (integer) 1471441352 3) (integer) 55133 4) 1) "GET" 2) "testkey1" 3) 1) (integer) 18284099 2) (integer) 1471441352 3) (integer) 43424 4) 1) "GET" 2) "testkey1"
概要 Dockerのイメージを削除する際、イメージ名を変更しているとエラーが出て一発で消せない時があります。 [root@test ~]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hoge/centos latest 2064fc6b29af 8 weeks ago 214.5 MB fuga/centos latest 2064fc6b29af 8 weeks ago 214.5 MB [root@test ~]#上記のイメージを削除する例です。 docker rmi `docker images -q`で消そうとすると Error response from daemon: Conflict, cannot delete image 2064fc6b29af because it is tagged in m
概要 Markdownでこういった目次を作るメモです。 github.com こちらを利用させていただきました。 Markdownファイルを指定して実行すると簡単に指定の場所に目次を作ることが出来ます。 インストール npm install -g doctoc 表示例 npm WARN engine deep-extend@0.4.1: wanted: {"node":">=0.12.0","iojs":">=1.0.0"} (current: {"node":"0.10.33","npm":"2.13.1"}) /usr/local/bin/doctoc -> /usr/local/lib/node_modules/doctoc/doctoc.js doctoc@1.0.0 /usr/local/lib/node_modules/doctoc ├── underscore@1.8.3 ├
概要 CentOS7のyum自動アップデート手順です。 yum-cronパッケージをインストールして設定をおこなう必要があります。 インストール yum install yum-cron.noarch 設定 自動アップデートを有効化 /etc/yum/yum-cron.conf以下のように編集することで自動アップデートが有効になります。 apply_updates = no↓ apply_updates = yes アップデート対象を指定 デフォルトでは全てのパッケージが自動アップデート対象となっています。 # What kind of update to use: # default = yum upgrade # security = yum --security upgrade # security-severity:Critical = yum --sec-severity=Cri
概要 無線LANにLDAP接続出来ないかと試した備忘録です。 結果FreeRADIUS+OpenLDAPの組み合わせで実現出来ました。 無線LANパスワードの問題点と課題 無線LANのパスワード運用は以下の問題や課題があるなーと思っています。 パスワードは変更しないまま放置 パスワード定期変更後パスワードが分からなくてネットワークに繋がらなくてイライラ アクセスポイント機器が増えるとパスワード変更を行う度に台数分行わなければいけない などなど 解決策 そこで上記図のように FreeRadius OpenLDAP YAMAHA WLX302(無線LAN AP) これらを組み合わせて無線LANアクセスを共有パスワードではなく 個別のLDAPユーザとパスワードで無線LANに接続出来るように認証基盤を整えました。 環境 RADIUSサーバー OS CentOS 7.0.1406 RADIUSバージ
概要 HashiCorpが提供しているVaultというツールを使ってみました。 Vault by HashiCorp VaultはパスワードやAPIキーなど機密情報を安全に読み出したり保存出来るツールです。 今回機密情報をMySQLに保存する方法を試してみました。 データをMySQLに保存することによってデータのレプリケーションなどRDBMSの恩恵を受けることが出来ます。 環境 Vault v0.2.0 MySQL 5.6.23-1 Vaultサーバー まずはVaultサーバーを起動します。 起動する前に設定ファイル(vault.json)を用意します。 設定ファイルはjson形式で記述します。 vault.json MySQLの情報、待ち受けるIPアドレスとポート番号が書いてあります。 backend "mysql" { username = "dbadmin" password = "
設定反映 /etc/sysctl.d/*.confといった/etc/sysctl.d/以下のカーネルパラメータを手動で反映させるには -pオプションではなく sysctl --systemというオプションを使う必要があります。 /etc/sysctl.conf の変更の手動適用は CentOS6以前と同じ sysctl -pで反映可能です。 参考 sysctl - ArchWiki
概要 SSL証明書と秘密鍵がたくさんあったり更新の時期や担当者の変更などでSSL証明書と秘密鍵のペアが分からなくなるときがあります。 証明書ファイル example.com.crt 秘密鍵ファイル example.com.key 上記のファイル名の証明書ファイルと秘密鍵ファイルがペアかどうか確認する手順です。 確認用コマンド 以下コマンドの出力結果を比較して結果が同じであればペアです。 証明書確認コマンド openssl x509 -in example.com.crt -noout -modulus 秘密鍵確認コマンド openssl rsa -in example.com.key -noout -modulus 確認用シェルスクリプト 上記コマンドでも確認出来ますがスクリプトにしておくと便利です。 使い方 ssl-cert-key-paircheck.sh -c example.com
概要 ミドルウェアの検証でサーバーを複数台用意することがよくあります。 これまでVagrantで仮想マシンを複数台起動させたりしていたのですがPCのスペックが低いため快適に検証が出来ていませんでした。 そこでTerraformとDigitalOceanを使うことでその問題を解消できることを知りました。 Terraformとは Terraformはテンプレートファイルに起動させたいサーバーの状態を 記述しておくと指定どおりのプランと台数を起動してくれるものです。 その逆でサーバーを停止削除する機能もあるので必要な時に指定台数起動・停止が出来ます。 DigitalOceanとは DigitalOceanは全プラン初期費用が発生しないVPSサービスです。 月額プランに加えて利用時間単位の課金のため使った分だけ支払うプランもあるので検証で使うにはぴったりです。 Terraformインストール Te
事象 Apache2.4系でZabbix2.2を動かそうとすると、 /var/log/httpd/error_log に [authz_core:error] [pid 2140] [client 10.0.0.1:57188] AH01630: client denied by serこんなエラーログが出ていました。 ブラウザからアクセスしても こんな感じで403が表示されます。 原因 これはApache2.4でアクセス制御の書き方が変わっている為でした。 対応 以下のように変更してやると良さそうです。 変更その1 Order allow,deny Allow from all↓ Require all granted 変更その2 Order deny,allow Deny from all↓ Require all denied /etc/httpd/conf.d/zabbix.con
概要 RedisはDB名というものがなく番号で管理されます。 このDB番号はデフォルトで0〜15を使用できます。 DB番号16以降を使用したい場合どうすればいいのかなーと思ったら 設定ファイルを修正してデーモン再起動すれば増やせるみたいでした 設定 DB番号16を使用可能にする例です。 設定ファイルを以下のように修正します。 /etc/redis.conf databases 16↓ databases 17修正後はRedisデーモンを再起動します。 結果 設定変更前 127.0.0.1:6379> SELECT 16 (error) ERR invalid DB index 127.0.0.1:6379> 設定変更後 127.0.0.1:6379> SELECT 16 OK 127.0.0.1:6379[16]> 参考 設定ファイル — redis 2.0.3 documentation
概要 LDAP連携しているJenkinsでは匿名ユーザ(ログインしていない)はリモートからジョブが実行出来ません。 このように匿名ユーザにBuildとReadのチェックを入れると実行出来るようになりますが ログインしていないユーザが実行出来たりジョブ一覧やトップ画面にジョブが表示されてしまったり都合良くありません。 そこで匿名ユーザでもリモートからジョブを叩けるようにプラグインがありました。 Build Token Root Plugin 特別な設定はなくリモートからビルドにチェックを入れトークンの設定を行えばOKです。 以下のようにURLが変更になります。 パラメータ無し ジョブ名 test トークン test のURL例 http://example.com:8080/buildByToken/build?job=test&token=test パラメータ有り ジョブ名 test トー
概要 MySQLのDBダンプのスクリプトなどパスワードをベタ書きしている場合があります。 例えば mysqldump -u dbdump --password=dbdump testdb (オプション略)こんな感じでパスワードを書いてしまっています。 そこでmysql_config_editor(MySQL5.6以上)を使ってパスワードをベタ書きしないようにする方法がありましたのでそのメモです。 ユーザ作成 LinuxユーザとMySQLユーザを両方作っておきます。 ここではMySQLダンプを想定しているのでユーザ名は『dbdump』にします。 設定 dbdumpユーザにスイッチします。 スイッチ後、以下コマンドで設定出来ます。 パスワードを聞かれますのでMySQLのdbdumpユーザのパスワードを入力します。 [root@test ~]# su - dbdump [dbdump@test
概要 CentOS7はシングルユーザーモードに入るときにカーネルパラメータに追加する値がCentOS7以前のOSとちょっと違ったのでそのメモです。 この手順はrootのパスワードが必要なのでrootパスワードリセットには使えません。 環境 CentOS 7.1.1503(KVM) 3.10.0-229.1.2.el7.x86_64 grub編集 CentOS Linux (3.10.0-229.1.2.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-123.20.1.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-123.13.2.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-123.13.1.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-12
ファイルディスクリプタの設定可能最大値のメモ 1048576 ulimit -Hn 1048576 ulimit -Sn 1048576 上記以上の数値を設定しようとするとエラーになる。 [root@test ~]# ulimit -Hn 1048577 -bash: ulimit: open files: cannot modify limit: Operation not permitted
概要 Jenkinsは認証設定を行っていないと誰でも全ての操作が出来ます。 1人で使う分には全く問題ないのですが、 会社やチームなど複数人で使う共用Jenkinsサーバーの場合、 ジョブを間違って実行してしまったり消してしまったりなど操作ミスが起きてしまう可能性が出てきます。 そこでJenkinsとLDAPサーバーを連携させて所属チーム毎&ジョブ毎に認証・権限設定を行いたいと思います。 やりたいこと Jenkinsサーバー管理者グループに所属するユーザは全権限を持つ 各チームメンバーはジョブの作成が自由に出来、作成したジョブは参照・実行・削除などなんでも出来るようにする 他チームのジョブは実行・削除どころか参照すら出来ない 今回の例では Jenkinsサーバー管理者グループ名 jenkinsadmin チーム名(グループ名) developers としています。 LDAP設定 ユーザ及びグ
Hubot ってなんて発音するんだろうかわかってなかったのだけど、ヒューボットで正解だった https://t.co/rTQQkKtlVq— Sotaro KARASAWA© (@sotarok) 2014, 4月 30 有名なボットプログラムHubot 自分はずっとGithubが開発したボットだから 「ギットハブ」と「ボット」で「ハボット」と呼んでましたが、 正式には上記の通り「ヒューボット」らしいです。 このHubotをHipChatのボットとして稼働させてみました。 環境 Hubotを動かすサーバー OS CentOS6.5 redis 2.4.10-1 npm 1.3.6-5 nodejs 0.10.26-1 今回検証したHubotバージョン Hubot 2.7.2 事前準備 redisインストール yum install redis.x86_64 redisの起動と自動起動設定
次のページ
このページを最初にブックマークしてみませんか?
『tsunokawaのはてなダイアリー』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く