Archive "2019年10月"を表示しています。
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.x86_64 9.2.24-1.el7_5 @base postgresql-libs.x86_64 9.2.24-1.el7_5 @base postgresql-server.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はそのままで使えます。 sequenceDiagramでこんなような書き方ができます。 sequenceDiagram foo->>bar: 数を増やしたいときは、それに連なるものをつなげてゆきます。 sequenceDiagram foo->>bar: bar->>baz: いくらでもつなげます。 sequenceDiagram foo->>bar: bar->>baz: b...
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 認証鍵をブロック」という項目にチェックが入っている。(チェックを外して保存しても、また元に戻ってしまって外せないことがある)