hello foo bar Saba noteSSHのポートを変更する
Archive "2019年10月"を表示しています。
2019.10.28 月
SSHの接続はいろいろセキュリティー上面倒な部分なので、そこらの部分含めると結構テクニカルなことになってしまうので割愛。 ポートの変更 既存のsshd_configのバックアップとっておきます。 # cd /etc/ssh # cp -p sshd_config sshd_config.org ポートを変更します。コメントアウトしてある場合は、外してください。 #Port 22 ↓ Port 2222 保存してからsshd -tで構文チェックしてください。 再起動。既存ポートでは接続できなくなるので十分注意してください。 # systemctl restart sshd.service
2019.10.26 土
インストール brewで入れられるっぽいです。 $ brew -v Homebrew 2.1.15 Homebrew/homebrew-core (git revision 624d; last commit 2019-10-25) 微妙に古い場合はupdateします。 Docterもしておく。 $ brew update $ brew doctor PostgreSQLのインストール $ brew install postgres バージョン確認 $ postgres --version postgres (PostgreSQL) 11.5 PostgreSQLのディレクトリはここになります。 $ cd /usr/local/var/postgres イニシャライズ $ initdb /u...
2019.10.25 金
公式ドキュメントはこちら。 Cloud SQL にデータをインポートする
2019.10.25 金
ちょっとめずらしいのが出た。PHP5.2.17でPostgreSQLのscram-sha-256を認識できないってやつです。libpqを少なくとも10にバージョンアップしないとダメ。 exception 'PDOException' with message 'SQLSTATE[08006] [7] SCRAM authentication requires libpq version 10 or above' in ./hoge.php:xx 第 31章libpq – C ライブラリ これは面倒くさいのでmd5にするとかしたほうが早い。IP制限しておけばダイジョブ。 libpqのバージョンを強引に上げてしまってPHP5.2との連携がちゃんとできるかどうかについてはちょっとまだわ...
2019.10.25 金
基本的な使い方 インストール # yum -y install nmap 基本的な使い方は、ホスト名(またはIPアドレス)を指定するだけです。 $ nmap example.com オプション -sS ステルススキャン -O ターゲットのOSを特定してくれるオプション。 -A 一番よく使う。「OS検出・バージョン検出・スクリプトスキャン・トレースルート」全てこれだけで行う。 ステルススキャンは、相手先のサーバーに痕跡を残さないようにするオプションです。ハックツールですね。 利用するときは往々にして-Aオプションを使うと全部いけるのでいい具合になります。 $ nmap -A example.com 開いていいるポートだけ確認したい場合は、grep使うとか。 $ nmap -A example....
2019.10.24 木
PostgreSQLにリモートホストから接続する方法です。インストール時のデフォルトではlocalhostのみの接続ができるようになっていますが、リモートホスト側の設定はされていません。 リモートホストからDBサーバーへのネットワークの確認 まずはリモートホスト側からDBサーバーへアクセスしてみます。nmapなどで通信自体とポートの確認をしておきます。 PortチェックテストのようなWEBツールもあります。 $ nmap TARGET_HOST ... 5432/tcp open postgresql ... 疎通できない場合は複数の原因が考えられるので、Firewallの設定やPostgreSQLのサービスの起動などいろいろ確かめる必要があります。今回この部分は割愛。 postgresql...
2019.10.24 木
PostgreSQLに接続する postgresqlに接続するモジュールが入っているか確認してください。 # php -m | grep pg pdo_pgsql pgsql ここらが入っていたらOKです。通常デフォルトでインストールされているので問題ないでしょう。 もっともプレーンな方法で接続してみます。 <?php echo "try to connect postgresql.\n"; $DBHOST = "127.0.0.1"; $DBPORT = "5432"; $DBNAME = "voyager"; $DBUSER = "voyager"; $DBPASS = "LyrxXVB9"; try { $dbh = new PDO("pgsql:host=$DBHOST;por...
2019.10.24 木
再起動時のエラー systemctl restart postgresql-11実行時に出るエラー。通常rootで再起動したらできる。Root以外で(postgresユーザー)で再起動する場合はrootのパスワードが要求されます。rootにパスワードが設定されていない場合は、このユーザー権限での再起動はできません。 Failed to restart postgresql-11.service: Access denied See system logs and 'systemctl status postgresql-11.service' for details. pg_ctlで別のディレクトリ(別のバージョン)を指していたりすることがあります。 pg_ctl reload pg_ctl...
2019.10.23 水
PostgreSQLのダンプとリストアは比較的mysqlライクなので、そんなに戸惑うことはないのですが、多少違うところ含めての備忘録です。 pg_dumpコマンド pg_dumpは以下の二種類の方法でdumpができます。 スクリプト形式(デフォルト) リストアに必要なSQLをそのまま吐き出してくれるダンプ方法です。psqlコマンドでそのままリストアできます。いわゆる普通のダンプ方法なのでデバックはしやすいです。 アーカイブ形式 バイナリの形で出力されます。リストアはpsqlコマンドでなくpg_restoreコマンドで行います。アーカイブ形式のは、指定したtableのみを選択してリストアできるというのと、データベース(テーブル)自体が巨大なデータの場合は圧縮して出力できるという利点あり。ダンプ...
2019.10.20 日
Cloud SQLはVMインスタンスなどとちょっと勝手が違うので備忘録的なメモ。 TerraformのAPIのDocumentはこちら。 google_sql_database_instance 正しい書き方にも関わらず以下のようなエラーが出るときがあります。 Error: Error, failed to create instance master-instance: googleapi: Error 403: Cloud SQL Admin API has not been used in project xxxxxxxxxxxx before or it is disabled. Enable it by visiting https://console.developers.goo...
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.19 土
AnsibleでSSHの基本的な設定をします。ホストに接続できるようになっていることを前提としています。接続シていない場合は、対象のマシンに接続しておいてください。 Ansibleのインストールと基本的な使い方 SSHの設定 SSHの設定は、 チェック (ドライラン) $ ansible-playbook --check -i inventory/hosts sshd.yml 実行 ansible-playbook -i inventory/hosts sshd.yml Ansible でSSHのセキュリティ設定
2019.10.17 木
やり方がものすごいたくさんあるので、あれなんですが、典型的な使い方のみここで紹介します。ここでは設定方法にGCP Consoleを利用します。Terraformやgcloudコマンドなどの設定方法はまた今度。 GCPの対象のプロジェクトにログインし[Strage]→[ブラウザ]とすすみます。 ACLを変更する対象のオブジェクトに移動します。公開アクセスの部分が非公開になっている場合は第三者から見ることができません。 × Close 第三者から見た場合は、401のエラーを返します。 (ただし、閲覧権限のあるオーナーなどでGoogleにログイン中は、URLにアクセスすると閲覧が可能になっています。一度ログアウトしてからURLアクセスしてみてください。) error errors 0 ...
2019.10.17 木
Terraformでインフラを管理する場合、いわゆる冪等性を担保するためにステータスを共有する必要があります。このステータスを管理するためにTerraformのBackend機能というものがあります。Backend機能を使ってステータス情報を共有のストレージに格納し共有します。terraform applyを実行する際にはこの共有ステータスを見に行くことになるので、複数のリモート環境から実行するこが可能です。 今回はGCPのCloud storageを使ってみます。 仕組み 正直terraformのbackanedなるものがどこまでを指しているんだかわからないのですが、おそらくterraform.tfstateを指しているんだということでよいかと思います。このステータス管理しているterra...
2019.10.13 日
ひょんなことでpg_ctlが使えないことあります。 $ pg_ctl reload -bash: pg_ctl: コマンドが見つかりません 殆どの場合パスが通っていないだけ。 $ echo $PATH /usr/pgsql-12/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/var/lib/pgsql/bin:/usr/local/bin:/var/lib/pgsql/bin:/usr/local/bin ん?なんか通ってるくさい? # find / -name "pgsql" /etc/sysconfig/pgsql /var/lib/pgsql いや、全然違う。postgresのホームを指しているっぽい。なんか問題...
2019.10.11 金
インストール 2019-10-11現在の最新のPostgresは11系になるのかなと思っていたら、もう12が出てますね。 E.1. Release 12 ここでは最新入れると何かといろいろあるので11の方をインストールします。 古いバージョンの確認、アンインストール 現行でインストールされているものを確認します。 # yum list installed | grep postgresql 9系がインストールされているので、アンインストールします。何も出てこないときはPostgresqlがまだインストールされていないので、remove不要。 postgresql.x86_64 9.2.24-1.el7_5 @base postgresql-libs.x86_64 9.2.24-1.el7_5...
2019.10.10 木
TODO: あとで追加 FIXME: 既知の不具合があるコード HACK: あまりきれいじゃないコード XXX: 危険!動くけどなぜうごくかわからない。 REVIEW: 意図した通りに動くか見直す必要がある OPTIMIZE: 無駄が多い。 CHANGED: コードをどのように変更したか。 NOTE: 告知 WARNING: 注意
2019.10.8 火
Projectの進め方ということで、マネージメント側のお話なんですが、システム制作においてはシステムのことを知っている誰かが指揮をとらないといけないというのがあって、プログラマーにとっては非常に頭の痛い話です。 テストと調査がすなわち制作物になっちゃうことがある。→ 予定が立たない。 テストと調査がすなわち制作物になっちゃうことがある。→ 予定が立たない。 既存のシステムの中身を全部知っている人はたぶんいないです。知っている人がいるなんていう期待をしない方がいい。「仕様 as Code」といわれるように、すべての事実はCodeに書かれているという悲劇。書かれていることは確かではあるが、
2019.10.8 火
今どきこんな作業することになるとは。 # yum list | grep cvs cvs.x86_64 1.11.23-35.el7 @base なんかあるっぽい。安定版の最新が1.11.23。 # yum -y install cvs バージョン確認 # cvs --version Concurrent Versions System (CVS) 1.11.23 (client/server) 場所 # which cvs /usr/bin/cvs なるほど。 /home/cvsrootを使いたいので、対象ディレクトリで初期化。 私の場合は既存のcvsのファイルを別サーバーから移動してきて行いました。とくに問題なくinitできたようです。 # cvs -d /home/cvsroot in...
2019.10.4 金
テキストで図を管理できるので、仕様変更をGit管理できるというのがとてもよいです。 主にvs code上で使うことが多いですが、簡易的な場合はtyporaで使うのがいちばんいいです。vs codeはプラグイン的な扱いでmarmaidを導入しますが、typoraはそのままで使えます。 mermaidjs.github.io sequenceDiagramでこんなような書き方ができます。 sequenceDiagram foo->>bar: 数を増やしたいときは、それに連なるものをつなげてゆきます。 sequenceDiagram foo->>bar: bar->>baz: いくらでもつなげます。 sequenceDiagram foo->>bar...
2019.10.4 金
Python3でAnsibleが使えるようにします。以下、参考。 MacにPythonの開発環境を作る Ansileのインストールと設定 Pythonをバージョンによって使い分ける ここでやること Macへansibleをインストール リモートホストへの接続 userでのHello world. root(sudo)でのHello world. Install Macにインストールするには、brew使うのがいちばんいいと思います。brewを更新、またはアップデートしておきます。Doctorもやっておいてエラーなどを解消しておいた方がいいです。 $ brew update $ brew doctor $ brew upgrade 現行でインストールできるansibleを確認します。 $ bre...
2019.10.3 木
$ killall Dock killだけど自動的に再起動かかります。 または、アクティビティーマネージャーから強制的に停止します。(自動的に起動するので再起動ってことになります。) × Close
2019.10.2 水
Xcodeのインストール Xcode Mac App Storeでダウンロードします。(無料) かなりの容量のソフトなのでダウンロードには結構時間がかかります。 Command line toolをhttps://developer.apple.com/download/more/ダウンロード。アップルIDが必要です。dmgファイルでインストール。インストーラがあるので楽。 インストールができたら、以下でライセンス確認します。 $ sudo xcodebuild -license パスを確認 $ xcode-select --print-path これでインストールは完了。 pyenvのインストール pythonはバージョン管理したいのでpyenvを入れて、python3とpython2を切...
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.10.2 水
python2とpythin3の過渡期と言われて、まだまだ過渡期が続いていったい何年続くんや?ということで、結局2も3も使わないといけないわけなので、結局エブリデー過渡期のPythonです。 特に私の場合はAnsibleをどっちのバージョンでやるべきかという検討でかなり迷ったので、結局Pythonはバージョンを複数使わないとダメだなという結論でした。その他のアプリでも言語のバージョンを複数使いこなさないといけない場合があると思います。 Python 3サポート AnsibleはPythonバージョン3.5以降のみをサポートします。なのでCentOS7などではデフォルトでPython 2.7.5がインストールされているので、Python3をインストールする必要があります。 Ansibleの環境...
2019.10.1 火
GCPはやれること多すぎて知見がないと、すべてただのトラブルです。 SSHが接続できない チェック項目 メタデータにそもそも公開鍵を登録していない。またそのユーザー名も確認しましょう。 「プロジェクト全体の SSH 認証鍵をブロック」という項目にチェックが入っている。(チェックを外して保存しても、また元に戻ってしまって外せないことがある)