ソフトウェア

Git

個人プロジェクトのGitについて 一人しか操作する人間がおらず、複数端末でPushするユースケースがほとんどのため、以下のことに留意する。 修正したファイルがあれば、こまめにコミットする。 ローカルにある程度コミットが溜まってきたら、git rebase -iでコミットをまとめる。RemoteにPushしたコミットでも、まとめたほうが良いものがあればrebaseして綺麗にしておく。 履歴をまとめる際、一般的にgit fetch; git merge --squashの方が安全だが、どうせ個人でしか使わないので昔の履歴を追いやすい形にしておきたい。 rebaseされたコミットがRemoteにあった場合、ローカルの変更履歴をstashするなりしてからgit checkout -B master origin/masterのようにリモートブランチと同期を取る。 参考: How do I reset ‘master’ to ‘origin/master’? localのmasterブランチに既にコミットしていて、git pullでリモートから取り込んだ時に余計なmergeコミットが発生した時 git reset --hard ORIG_HEADでマージ前に戻す git fetch git rebase --iで確認しながら操作する git push origin master Git Submoduleで管理していたリポジトリ名が変更されたとき 下記の通りに一旦削除して、git submodule addしてあげればOK。 0. mv a/submodule a/submodule_tmp 1. git submodule deinit -f -- a/submodule 2. rm -rf .git/modules/a/submodule 3. git rm -f a/submodule # Note: a/submodule (no trailing slash) # or, if you want to leave it in your working tree and have done step 0 3. »

Ansible

/var/log/intstance_1, /var/log/instance_2 のようなシーケンシャルなパスを変数に格納したいとき - name: Set fatcs hosts: localhost sudo: no connection: local vars: instance_number: 4 tasks: - name: Register instance's sequential path set_fact: instance_path: /var/log/instance_{{ item }}/log with_sequence: start=1 end={{ instance_number }} register: sequential_path - name: Register instance's sequential path list set_fact: instance_path_list: "{{ sequential_path.results | map(attribute='ansible_facts.instance_path') | list }}" - name: debug debug: var: instance_path_list 実行結果結果 TASK [debug] ************************************************************************************************************************************************************************************************************************************************************************************************** ok: [localhost] => { "instance_path_list": [ "/var/log/instance_1/log", "/var/log/instance_2/log", "/var/log/instance_3/log", "/var/log/instance_4/log" ] } Ansibleのコーディング規約について 変数名 OpenShift, edXのコーディング規約を参考にして、以下のとおりに変数名を設定することにした。 »

Docker

はじめに 公式ドキュメントを最初に読むこと。 https://docs.docker.com/ 学べること 1. Dockerコンテナの基本的な使い方 2. Docker Serviceの使い方 3. Docker Swarmの使い方 各種確認コマンド docker ps … 現在動いているコンテナ情報を確認できる $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c2725ccd7681 nikuyoshi/ssh:centos7 "/usr/sbin/sshd -D" 6 minutes ago Up 6 minutes 0.0.0.0:32768->22/tcp elated_hoover docker exec … 対象のコンテナに対してコマンド実行 $ docker exec -u 0 -it [contair id] bash [root@[container id] /]# docker build docker build をする際、Dockerfileの場所を明示的に書く。 »