エンジニア見習いの覚え書き

エンジニア見習いの@tanakaxaが気になること書いたりいろいろ

Ansibleもくもく会 (サーバ編 & NW編)2019.08に参加した

明日も仕事なので簡単に…

ansible-users.connpass.com

やったこと

github.com

Section1の演習1.1~1.5途中まで

新たに理解できたこと

  • Ad-hocコマンド+Pingモジュールで簡単に疎通確認ができること

  • モジュール一覧を公式ドキュメントに行かずとも、ansible-docコマンドでコマンドライン上で調査できること

  • 特定タスクが実行された時の追加タスク実行はハンドラーを利用すること Intro to Playbooks — Ansible Documentation

    • 条件分岐だからwhen…?でもタスクがSuccessだった時ってどう書けばいいの…って1か月ぐらい悩んでました。

感想

  • 環境が整った状態でハンズオン形式でもくもくできるので、短い時間で理解がしやすい
  • 質問コーナーがGoogleドキュメントで複数人で書き込めるから、いろんな人の経験談が記載されたりしてためになる

Next

  • 自分のローカル環境で教材の続きを進めたい
  • 各社の活用事例とか参考にしつつ仕事で提案とか導入していって楽していきたい、運用ミスを少なくしたい

「インフラCI 実践ガイド」うまく動かないところメモ書き

本当は著者のサンプルプログラムにプルリクエストすればよいのだけれど、ちょっと自信が無いので読み終わってから再確認する。

新しく見つかったものがあれば随時追加する。

書籍

www.shoeisha.co.jp

演習環境

# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

Chapter 3

3.5.4 GitLab/GitLab Runnerのインストールと設定

事象

PlaybookのInstall GitLab Runnerタスクが失敗する

原因

Package gitlab-runner-10.5.0-1.x86_64.rpm is not signed

対応

Install GitLab Runner タスクで失敗する · Issue #5 · infra-ci-book/gitlab-vagrant-ansible · GitHub

上記IssueどおりにPlaybookを書き換えればOK。

対象ゲストにログインし、--nogpgcheckオプション付きでインストールする。

# cd ~/vagrant/infraci/
# vagrant ssh gitlab-runner
Last login: Wed May  1 06:01:53 2019 from 10.0.2.2
[vagrant@gitlab-runner ~]$ sudo su -
Last login: Wed May  1 06:03:17 UTC 2019 on pts/0
[root@gitlab-runner ~]# yum install --nogpgcheck gitlab-runner-10.5.0-1
[root@gitlab-runner ~]# exit
logout
[vagrant@gitlab-runner ~]$ exit
logout
Connection to 127.0.0.1 closed.

その後、Playbookを再実行することで構築完了。

Chapter 4

4.1.2 パイプラインの実行

事象

パイプラインUnit_Package# docker build . -t ${CONTAINER_IMAGE_PATH}が失敗する。

$ docker build . -t ${CONTAINER_IMAGE_PATH}
Sending build context to Docker daemon  715.8kB

Step 1/7 : FROM centos:7
 ---> 9f38484d220f
Step 2/7 : ENV container docker
 ---> Using cache
 ---> acc8b01632ab
Step 3/7 : ENV ANSIBLE_VERSION 2.4.2.0
 ---> Using cache
 ---> 702982ebf92d
Step 4/7 : ENV ANSIBLE_LINT_VERSION 3.4.21
 ---> Using cache
 ---> a81864d9a447
Step 5/7 : COPY ./ ./
 ---> 2c24a9e9b7b0
Step 6/7 : RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i ==      systemd-tmpfiles-setup.service ] || rm -f $i; done);     rm -f /lib/systemd/system/multi-user.target.wants/*;    rm -f /etc/systemd/system/*.wants/*;    rm -f /lib/systemd/system/local-fs.target.wants/*;     rm -f /lib/systemd/system/sockets.target.wants/*udev*;     rm -f /lib/systemd/system/sockets.target.wants/*initctl*;     rm -f /lib/systemd/system/basic.target.wants/*;    rm -f /lib/systemd/system/anaconda.target.wants/*;    yum install -y epel-release &&     yum install -y git &&     yum install -y ansible-${ANSIBLE_VERSION:?} &&     yum install -y ansible-lint-${ANSIBLE_LINT_VERSION:?} &&     yum clean all
 ---> Running in ace833a25437

(中略)

Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: ty1.mirror.newmediaexpress.com
 * epel: www.ftp.ne.jp
 * extras: ty1.mirror.newmediaexpress.com
 * updates: ty1.mirror.newmediaexpress.com
No package ansible-lint-3.4.21 available.
Error: Nothing to do
The command '/bin/sh -c (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i ==      systemd-tmpfiles-setup.service ] || rm -f $i; done);     rm -f /lib/systemd/system/multi-user.target.wants/*;    rm -f /etc/systemd/system/*.wants/*;    rm -f /lib/systemd/system/local-fs.target.wants/*;     rm -f /lib/systemd/system/sockets.target.wants/*udev*;     rm -f /lib/systemd/system/sockets.target.wants/*initctl*;     rm -f /lib/systemd/system/basic.target.wants/*;    rm -f /lib/systemd/system/anaconda.target.wants/*;    yum install -y epel-release &&     yum install -y git &&     yum install -y ansible-${ANSIBLE_VERSION:?} &&     yum install -y ansible-lint-${ANSIBLE_LINT_VERSION:?} &&     yum clean all' returned a non-zero code: 1
ERROR: Job failed: exit code 1

原因

No package ansible-lint-3.4.21 available.

対応

有効なansible-lintパッケージバージョンを探し、Dockerfileを書き換える。

# yum --showduplicates search ansible-lint
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ty1.mirror.newmediaexpress.com
 * epel: www.ftp.ne.jp
 * extras: ty1.mirror.newmediaexpress.com
 * updates: ty1.mirror.newmediaexpress.com
========================================================== N/S matched: ansible-lint ===========================================================
ansible-lint-3.5.1-1.el7.noarch : Best practices checker for Ansible

  Name and summary matches only, use "search all" for everything.

現時点では3.5.1が有効なので、下記2ファイルの変数を3.4.21から書き換える。

  • ketchup-vagrant-ansible/Dockerfile
  • ketchup-vagrant-ansible/flexible_artifacts/locust/Dockerfile
- ENV ANSIBLE_LINT_VERSION 3.4.21
+ ENV ANSIBLE_LINT_VERSION 3.5.1

更新日

2019/5/1 Chapter 3 / Chapter 4を追加

1024

この記事は岩手県立大学 Advent Calendar 2018の11日目の記事です。

qiita.com

今日は書けない…と嘆かれてるのを見たため、仕事終わりの電車の中で書いてます。

1024

1024 は 210 です。

2進数では 0100 0000 0000

16進数では 0x0400 です。

皆さんご存知のように、コンピュータ界隈では大変きりの良い美しい数字です。

1GB と 1GiB

一般的に、

1GB は 109 = 1,000,000,000 B

1GiB は 230 = 1,073,741,824 B

を指しますが、世の中これらを区別せずに、1GBという表記する製品があります。

500GiBのボリュームをストレージから切り出したいとき、ストレージの管理ツールではGB指定となっていて、ついうっかり500GBで切り出ししまうと、約465GiBしか利用できず35GiBぐらい足りないという事象が発生します。

さらにややこしいことに、500GBで切り出した465GiBの領域をマウントすると、465GBと表示するOSが存在します。

これらのことから、各製品の仕様を十分に確認してからボリュームに設定する値を決定してあげないといけません…。

ただ、パブリッククラウドの利用が広がる昨今、パブリッククラウドではダウンタイム無しでディスク領域を拡張させる機能が備わっており、足りなけりゃ足せば良かったりするので、そんなこまけぇこたぁいいんだよ!って感じではあります。

そもそも普通のストレージも、作成済みのボリュームサイズを後から拡張する機能も備わっているものがあるため、こまけぇこたぁ(

本題

さて、前置きはここまでで、この記事は結婚エントリだったりするわけです。

既に各所で報告しているように、私は10月24日に大学時代からお付き合いしている一般女性の方と結婚しました。

www.instagram.com

入籍当日、最終的に39度の熱暴走をしながら役所に行くなどアクシデントもありましたが、無事提出できホッとしてます。

入籍から早1ヶ月半たっていますが、1年以上同棲していたので大きく変化があったとは感じてません。 お金に対する意識は少し変わったぐらい。

また、多くの方からたくさんのお祝いをいただきました。 妻も大変喜んでおります。 まだまだ受け付けておりますので、皆さんの熱いプレゼント、お待ちしております。

https://www.amazon.jp/gp/registry/wishlist/3B5DDM62LR3JN

昨年以上に勢いが無く寂しいIPUアドベントカレンダー、明日はだれが書くのでしょうか。

LinuC level1も2日ずつ勉強すれば取れた

CCNA(ICND2)は3日勉強すれば取れる※ - エンジニア見習いの覚え書き

から1か月… Ping-tの有料課金期間が余っていたので、もう一本取ろうとLinuC level1を勉強しました。 CCNAの時と同様、週末をつぶして週明けに受験するスタイル。 問題なく合格したのでその話を書きます。

※例のごとくLinuxチョット触ったことあるエンジニアなので、受験前に少しだけ下地があります。

続きを読む

CCNA(ICND2)は3日勉強すれば取れる※

※ただし下地は必要

先日ICND1とICND2に合格する形で、CCNAを取得しました。

これで無資格エンジニアを卒業し、自分のスキルを一つ証明できるようになりました。

今回、どうしても2月中に合格したくて、ICND1とICND2をそれぞれ3日間だけで集中的に勉強して受験しました。 本当は8月頃から段階的に勉強していく計画だったんだけど気付いたら2月に

その合格体験記を書きたいと思います。

続きを読む

何もできなかったSECCONオンライン予選

つまり力不足・努力不足でろくに解けなかったってこと.

※この記事は岩手県立大学AdventCalender12日目の記事です.
qiita.com

続きを読む

Hyper-V Server 2016の構築

cloud.watch.impress.co.jp

Windows Server 2016と同時に、Hyper-V Server 2016が降ってきた。

世の中の誤家庭にはESXi派が多いようだが、RealtekNICを認識してくれなくてインストールに苦労するので、Realtekな我が子にはHyper-V Serverを導入する。

(まぁHyper-V Server 2012だと、ESXi同様にそのままだとインストールできないんだけど…)

www.microsoft.com

続きを読む