Tag backendを表示しています。
2020.3.14 土
リモートホストからアクセスする redis-cli -h #{ホスト名} -p #{ポート番号} -n #{DB番号}
2020.3.4 水
KVMのイメージなどからVMインスタンスを立ち上げた際にeth1やeth2に割り振られてしまうときがあります。イメージが元々あったデータセンターでのNICが残ってしまっていて、新しいNICに新しいVMインスタンスが割り当てられてしまうようです。ip aで見てみてると何故かeth2に割り当てられている。 $ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet 192.168.60.20/32 brd 192.16...
2020.3.1 日
GCPのVMインスタンスは恒久的に25番ポートの利用ができない上に自身のVMで「注: ポート 25 は常にブロックされており、G Suite を使用した SMTP リレーを介したとしても利用できません。」となっております。AWSは申請制度でユーザーの審査が通れば25ポートを使うことができますがGCPは無理っぽい。 インスタンスからのメールの送信 じゃ、どうすればいいかというと、外部のSMTPサーバーにサブミッションポート587で送信を委譲するかたちにしないといけないということで結構面倒です。 ここではGmailアカウントでSMTPサーバーを使えるように設定してから、postfixの設定したVMインスタンスでGmailのSMTPを使って送信できるように設定します。 GoogleアカウントでSM...
2020.3.1 日
まずそもそもtcpdumpのコマンドがインストールされていないことが多いので、使えない場合はインストールから。 # which tcpdump /usr/bin/which: no tcpdump in (/sbin:/bin:/usr/sbin:/usr/bin) yum -y install tcpdump インストールできたら、とりあえず、 tcpdump とやってみます。目まぐるしいアクセスでバーっとログが出てくるんですが、これがtcpの通信をdumpしている状態です。この状態は量が多すぎて何もわからないので、ある程度フィルタリングしたりして使うのが普通です。 - インターフェイスを選ぶ - ホストを限定する ### インターフェイスを選ぶ `ip a`などでネットワークのインターフ...
2020.2.24 月
zsh: command not found: brew おーそういうことですか。 zshはbrewがデフォルトで使えなくなっているようです。というかそもそもインストールしていない場合は、これ。(そもそもインストールしてなかった!) /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 途中でrootのパスワードを求められるので入力。滞りなく終了します。 Macの開発環境をzshで良い感じにする
2020.2.22 土
LAN内でしか動かないWEBシステムを見るときには非常に便利。VPNなどが最も楽であるのは事実なのですが設備を導入すること自体が非常に敷居が高いし設定するまで手間がかかるので、SSHさえ接続できれば踏み台サーバーから中に入ってブラウザーで見ることができるっつうやつです。まずは踏み台サーバーがすでにあることを前提としているので踏み台サーバーにアクセスできるところから始めます。 正確にいうとPort Forwardとか言うのだけど、このあたりの説明は他のサイトでも図解で詳しく説明してくれているので割愛。 コマンドラインで行う場合は、 $ ssh -v -N -L localhost:8888:192.168.0.3:80 -i /SSHKEY/ -p 1206 user@123.456.789....
2020.2.12 水
ディスクの追加をしたあとにコマンドラインでマウントしないと使えません。 ゾーン永続ディスクの追加またはサイズ変更 コンソールまたはgcloudコマンドでディスクを追加した後に、該当VMインスタンスにログインしてrootユーザーにて以下のコマンドで、ディスクが正しく作られているか確認します。 # sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk └─sda1 8:1 0 10G 0 part / sdb 8:16 0 500G 0 disk ←これ /devの中にもいるので確認しておくとよいです。 # ls -al /dev ... brw-rw----. 1 root disk 8, 0 12月 2...
2020.1.27 月
現在のジョブを確認。何もない $ jobs -l 一度普通にSCPを実行する。 $ scp -p -P 22 /foo/bar.txt user@xxx.xxx.xxx.xxx:/tmp/foo/bar.txt [commnad]+[Z]でいったん止める。するとjob番号が出てくるので、 $ [1]+ Stopped scp -p -P 22 /foo/bar.txt user@xxx.xxx.xxx.xxx:/tmp/foo/bar.txt そのジョブ番号で、バックグラウンド実行を登録します。 $ bg 1 [1]+ scp -p -P 22 /foo/bar.txt user@xxx.xxx.xxx.xxx:/tmp/foo/bar.txt & 登録すると、バックグラウンドの実行...
2019.12.25 水
Cloud DNSはデフォルトでは外部のDNSの機能しかもっていなくて、内部、つまりGCPでいうところのVPC内の閉じたネットワークの名前解決はできないことになっています。自分でDNSサーバーを作成する際にはExternalとInternalでロケーションを分けて記述できるので、当然Cloude DNSでもできるだろうというのがあるのでいろいろ調べると「限定公開ゾーン」というやり方があるようです。 foo.example.comに対して、内部では192.168.0.5(ローカルIP)を引けるようにして、外部では123.456.789.xxx(グローバルIP)を引けるようにするということになります。基本的な外部の名前解決はすでにできるようになっていることが前提で解説します。 foo.examp...
2019.12.23 月
SSHでのscpコマンドの使い方である程度基本的なことを書いたので、その応用編です。 SSHの踏み台(ポートフォワード)を使ってSCPする ssh/scp多段接続〜踏み台サーバを越えて〜
2019.12.11 水
ファイルの数をカウントする(ファイルの数を数える) ./と../、Toatal行が出るので3行抜いた数で計算しないと合わなくなります。 # ls -al ./DIR | wc -l この数からマイナス3をした数がファイル数です。(が、中にディレクトリがある場合は、それも加算されちゃうので、findでやった方がいいかも。)
2019.11.4 月
静的外部IPアドレスの予約 リージョン指定しない場合は--globalでどこでも使える静的外部IPを指定します。 $ gcloud compute addresses create [name] --global --ip-version IPV4 リージョンが予め決まっていてリージョン指定する場合は、--regionでリージョンを指定します。Terraformで指定するときにあらかじめリージョンが決まっているときなどはこの方法で予約しないとリージョンがないと言われてエラーになります。 $ gcloud compute addresses create [name] --region asia-northeast1 静的内部IPアドレスの予約 $ gcloud compute address...
2019.10.20 日
GCPのVMインスタンスはIAMで登録したユーザーが自動的にVMインスタンスのユーザーとして登録されるようになっているのだけど、デフォルトでは誰でもsodo suできるようになっている。sudo suできるユーザーを限定するには、/etc/sudoers.d/google_sudoersを修正します。修正間違えるとログインできなくなるので注意。 #%google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL username ALL=(ALL) NOPASSWD: ALL 既存のgoogle-sudoersの行をコメントアウトして、許可するユーザーを個別に書いてあげればOKです。これでsudo suとsudo自体が使えなくなります。
2019.10.19 土
Ansibleをまだ使ったことがない人が基本的な使い方ができるようになるまで解説します。 SSHでホストに接続できるようにしておく Ansibleの実行ユーザーとSSHの実行ユーザーを同じにしておくことを前提に、対象hostにSSHで接続できるようにしておきます。いつものように.ssh/configに接続情報を書いておきます。その接続情報をAnsibleで使うことになります。 接続先のホスト情報はインベントリ(在庫リスト)と呼ばれていますが、これは、Ansibleが複数のhostに対して実行できるため、こういった呼び名になっています。Ansibleが各hostへ接続するためには常にこのインベントリを使います。 対象ホストが複数台あるときは複数のHost情報をconfigに設定しておいてくださ...
2019.10.17 木
やり方がものすごいたくさんあるので、あれなんですが、典型的な使い方のみここで紹介します。ここでは設定方法にGCP Consoleを利用します。Terraformやgcloudコマンドなどの設定方法はまた今度。 GCPの対象のプロジェクトにログインし[Strage]→[ブラウザ]とすすみます。 ACLを変更する対象のオブジェクトに移動します。公開アクセスの部分が非公開になっている場合は第三者から見ることができません。 × Close 第三者から見た場合は、401のエラーを返します。 (ただし、閲覧権限のあるオーナーなどでGoogleにログイン中は、URLにアクセスすると閲覧が可能になっています。一度ログアウトしてからURLアクセスしてみてください。) error errors 0 ...
2019.10.2 水
CentOS7にAnsibleをインストールする例です。 # yum install epel-release # cd ~ # yum -y install ansible バージョン確認。ansible 2.8.5が入りました。 # ansible --version ansible 2.8.5 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/s...
2019.9.21 土
source .bash_profileの実行し忘れというのではなく、起動するたびに設定が反映されていないときがありました。なんで? そもそもパスが通っていないのかもしれない。echo $HOMEとかで確認。 そもそもログインシェルが違うのかもしれない。 一度ログアウトしてからログインするとまた元に戻っていて設定が反映されていないという始末。再起動時も同じ。毎回source .bash_profileやsource .bashrcを実行するのは何か変。そもそもデーモン化したアプリとかはどうすんのよ。 ってのは、.bash_profileや.bashrcはログインシェルがbashのときに起動するということなので、ログインシェルとしてbashが起動していないという可能性が大きい。ログインシェルの...
2019.9.16 月
php artisan tinkerを実行すると以下のようなエラーで実行できないことがあります。 In Configuration.php line 363: [ErrorException] mkdir(): Permission denied -vvvvをつけて、デバックモードでコマンドを実行してみます。 $ php artisan tinker -vvvv In Configuration.php line 363: [ErrorException] mkdir(): Permission denied Exception trace: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() at n/a:n...
2019.9.16 月
CentOS7でapacheを動かしている環境です。PHPは7.2.17で動いています。 laravel5でtinkerを実行すると以下のようなエラー(Warning) $ php artisan tinker PHP Warning: Module 'ssh2' already loaded in Unknown on line 0 ssh2が二重に読み込まれているっぽいので、エクステンションの部分を検索してみる。/etcあたりを検索。 $ find ./etc -type f | xargs grep "ssh2.so" ./php.d/ssh2.ini:extension=ssh2.so ./php.d/20-ssh2.ini:extension=ssh2.so どっちかが無駄っぽい気...
2019.5.23 木
実行環境の確認 python2で動くAnsibleですが、python3でもサポートしているようです。何かとアップデートが早い時代なので、新しいものにしておいた方がよいかもしれません。 Python 3 Support Ansibleの基本概念 インベントリ(inventory) インベントリは構成管理をする対象ノードへの接続情報を記載したもの。 デフォルトでは /etc/ansible/hosts だが、環境変数 ANSIBLE_HOSTS を設定したり、-i オプションでhostsファイルへのパスを指定可能です。 モジュール(module) モジュールはユーザーを作成したり、ファイルをコピーしたりするもので、多くは冪等性が保たれたものとなります。基本モジュールをそのまま利用するだけで大抵...
2019.5.7 火
バージョン確認 select * from v$version Oracle Database 11g Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE 11.2.0.4.0 Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production テーブル一覧 select table_name from user_tables;
2019.4.19 金
ここではお名前.comで取得したexample.comというドメインであると仮定して説明しています。 まずは以下のドキュメントを読んでおきましょう。 Cloude DNS クイックスタート Cloude DNS 概要 Cloude DNSの構築手順 GCPにログインしてから、「ネットワークサービス -> CloudDNS」を開きます。以下のような初期画面が出てきます。
2019.4.3 水
よく使うcurlのコマンド curl -LI example.com -o /dev/null -w '%{http_code}\n' -s
2019.3.30 土
Dockerはすごい速いですね。かなりはやい。なので全然プロダクト環境でも使えるんじゃないかと思うのですが、私の周りはみんなテストするつもりがまるでないです。 構築した環境はGCPのCentOS Linux release 7.6.1810 (Core) です。yum info dockerで確認すると比較的古いものをインストールしようとしてくるので、ここではできるだけ新しいものをインストールするようにします。 Dockerのインストール Docker-composeのインストール niginx php myssqlの設定 Dockerのインストール 設定で面倒臭そうなものを止めておく systemctl stop firewalld systemctl disable firewalld ...
2019.3.28 木
maatwebsite/excelっていうパッケージがあってLaravelで開発するぶんには何もしなくてよいです。 https://github.com/Maatwebsite/Laravel-Excel https://packagist.org/packages/maatwebsite/excel インストール インストールします。(2019-03-28現在の最新版は3.1.10でした) php composer.phar require "maatwebsite/excel:~3.1.10" 後述しますが、3系のパッケージは読み込みの機能がなくなったようです。(前回の方々がなんで?って言ってます) ですので、エクセルの読み込み機能が必要なときは2系のパッケージをインストールしないと駄目...
2019.3.25 月
docker-compose.ymlで以下のように設定します。 .... phpmyadmin: image: phpmyadmin/phpmyadmin environment: - PMA_ARBITRARY=1 - PMA_HOST=mysql - PMA_USER=root - PMA_PASSWORD=SET_PASSWORD links: - mysql ports: - 8080:80 volumes: - /sessions 最終的にはこんなようなカタチになります。 version: '3' services: wordpress: image: wordpress:latest ports: - "3001:80" environment: WORDPRESS_DB_NAM...
2019.3.23 土
WordPressの環境はもう年間何回作ってるんだといった感じで、WEBのサービスとしてはかなりメジャーになってしまいました。 $ docker pull wordpress $ docker pull mariadb docker-compose.ymlを作成してプロジェクトディレクトリ直下においておく。 記述は以下のようにします。ちょっと解説すると、mysqlのデータベースとWordpressrをつなぐので、DB名とユーザー名とパスワードは同じものを設定します。同じものであれば任意の設定で構いません。 docker-compose.yml version: '2' services: wordpress: image: wordpress:latest ports: - "3001:80...
2019.3.23 土
GCPは永遠に無料で使える完全な無料枠があります。サンドボックス、勉強にはとてもよいです。 https://cloud.google.com/free/docs/always-free-usage-limits GCEで新しいVMインスタンスを作成する 設定は例として以下のようにします。留意点は、 リージョンの選択は北米のリージョン us central1(アイオワ)にすること。ゾーンはどこでもよいです。 マシンタイプはmicro(共有vCPU x1)と0.6GBを選択します。(つまり最低)$4.28 の月間予測と出ますがリージョンの選択時点で無料になるので気にしない。 HDDは標準タイプで30GBまで無料枠で利用できるので10から30に変更しておくとよい。 IPアドレスを固定IPにする 実...
2018.12.10 月
コマンドクラスの作成 コマンドのクラスを作成します。 php artisan make:command monitorAppStatus app/Console/Commands/monitorAppStatus.phpが作成されます。 このクラスをartisanで実行するためにはこのクラスファイルの$signatureを書き換えます。 protected $signature = 'command:name'; ↓ protected $signature = 'monitor:app'; これでphp artisan monitor:appで実行できるようになります。 コマンドの中身を作成 コマンドの実際の中身の作成は、このクラスファイルのhandle()部分に書きます。 public ...
2018.11.14 水
Python3.6.5をインストールします。現時点の最新は3.7ぐらいになっているはずなんですが、3.6はまあまあ安定版だと思うのでよいでしょう。 ここではPython3.6をpythonコマンドで使えるようにしてデフォルトで入っているPython2.7.5を(一応とっておいて)python2で叩けるようにしておきます。 Python 3.6.5インストール まずはリポジトリをインストールします。 # yum install -y https://centos7.iuscommunity.org/ius-release.rpm Pythonをインストール # yum install -y python36u python36u-devel python36u-libs これで終わりなので、バ...