kubeadm でインストールした Kubernetes に Ingress をインストールする - mikoto2000 の日記 の作業内容分を、 Ansible で自動化を行った。
インスタンス起動後に数ステップで Kubernetes に Ingress をインストールするところまでが可能になった。うれしい。
kubeadm でインストールした Kubernetes に Ingress をインストールする - mikoto2000 の日記 の作業内容分を、 Ansible で自動化を行った。
インスタンス起動後に数ステップで Kubernetes に Ingress をインストールするところまでが可能になった。うれしい。
Oracle Cloud Free Tier の Ampere A1 VM(ARM VM) に Kubernetes をインストールする - mikoto2000 の日記 の作業内容を、インスタンスを作り直すたびに手作業するのは厳しいので、 Ansible で自動化を行った。
以下のように、インスタンス起動後に数ステップで Kubernetes のデプロイが可能になった。うれしい。
apt-mark hold
and apt-mark unhold with ansible modules - Stack
OverflowいまからはじめるAnsible 第1回 – インフラ勉強会 イベント共有ポータル を聞いている裏で「実際に触ってみよう」のための環境構築をしていたら、途中で PC が落ちてしまいました。
docker for windows が起動しなくて、しかたなく Hyper-V をオフにして VirtualBox 起動したんです。そしたらブルースクリーンですよ。つらい、とてもつらい。
— 大雪 命 (@mikoto2000) 2018年1月28日
後半ほとんど話を聞けていないし実際に触れてもいないので、勉強会ログ・チャットログを見ながら独習しました。
その作業記録を残していきます。
$ # アップグレード
$ sudo apt-get update
$ sudo apt-get upgrade
$ # 必要パッケージのインストール
$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
$ # Docker リポジトリの鍵を登録
$ curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
$ # 登録した鍵の確認
$ sudo apt-key fingerprint 0EBFCD88
$ # apt にリポジトリを登録
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable"
$ # アップデート
$ sudo apt-get update
$ # Docker, Docker Compose のインストール
$ sudo apt-get docker-ce docker-compose
$ # 今使っているユーザーで実行できるように docker グループに追加
$ sudo gpasswd -a $USER docker※ docker サービス再起動しても認識してくれなかったのでログインしなおしました。ログインしなおすと sudo 無しで実行できるようになっているはず。
$ sudo apt-get install ansibleホスト 2 つに、 httpd をインストールする演習。
※ Ansible, Docker のインストールは終わっているので、「inventory を書いてみよう」から始める。docker コンテナの起動は playbook を実行する直前に行うように順番を変えました。
$ mkdir -p ~/project/ansible-101
$ cd ~/project/ansible-101./hosts を作る[testservers]
test01
test02
./site.yml を作る---
- name: install httpd
hosts: testservers
connection: docker
tasks:
- name: Install httpd
yum:
name: httpd
state: present
- name: Start httpd
systemd:
name: httpd
state: started
enabled: yes$ docker run --privileged --rm --name test01 -i -d centos /sbin/init
$ docker run --privileged --rm --name test02 -i -d centos /sbin/init※ --rm は私が勝手につけました。残ってほしくないコンテナ作るときは便利。
ドライランなので最後の httpd 実行で失敗するらしい。
$ ansible-playbook -i hosts site.yml --check
PLAY [install httpd] ***********************************************************
TASK [setup] *******************************************************************
ok: [test02]
ok: [test01]
TASK [Install httpd] ***********************************************************
changed: [test02]
changed: [test01]
TASK [Start httpd] *************************************************************
fatal: [test02]: FAILED! => {"changed": false, "failed": true, "msg": "Could not find the requested service httpd: cannot enable"}
fatal: [test01]: FAILED! => {"changed": false, "failed": true, "msg": "Could not find the requested service httpd: cannot enable"}
to retry, use: --limit @/home/mikoto/project/ansible-101/site.retry
PLAY RECAP *********************************************************************
test01 : ok=2 changed=1 unreachable=0 failed=1
test02 : ok=2 changed=1 unreachable=0 failed=1実際に動かすので、最後の httpd 実行も成功する。
$ ansible-playbook -i hosts site.yml
PLAY [install httpd] ***********************************************************
TASK [setup] *******************************************************************
ok: [test01]
ok: [test02]
TASK [Install httpd] ***********************************************************
changed: [test02]
changed: [test01]
TASK [Start httpd] *************************************************************
changed: [test01]
changed: [test02]
PLAY RECAP *********************************************************************
test01 : ok=3 changed=2 unreachable=0 failed=0
test02 : ok=3 changed=2 unreachable=0 failed=0 あとは、それぞれのファイルの書き方を勉強しながら試行錯誤していけば Ansible を使えるようになるのではないでしょうかね?
そんな感じでやっていきましょう。
以上。