ITインフラエンジニアのおつむの整理

ITインフラエンジニア(現ニート)の頭の整理場所。ほぼ日記になる予定。

脳死のyumインストールはundoでやり直せたのか

概要

  • WordPressphpが必要だったので脳死yum install phpを実行したが要件とは違うバージョンだった
  • yum eraseコマンドでアンインストールしたが依存関係とかで一緒にインストールされたパケージを調べていちいち指定するのが凄く面倒
  • yum history undo <id>を使用すれば依存関係含めてアンインストールしてくれることを初めて知った

背景

WordPressの要件でphpが必要とあったので脳死でインストールを実行した。 ただ特にリポジトリの追加とかしていなかったのでインストールしてみると、WordPressの要件ではphp7.4以上が必要だが5.4がインストールされていた。 要件満たしていないし、アンインストールするかと思ったが自分が知っているアンインストール方法がyum erase phpだったので実行しようと思ったがどうやら依存関係も一緒にアンインストールしてくれないらしい。

[root@centos ~]# yum erase php
読み込んだプラグイン:fastestmirror
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php.x86_64 0:5.4.16-48.el7 を 削除
--> 依存性解決を終了しました。

依存性を解決しました

=============================================================================================
 Package          アーキテクチャー    バージョン                    リポジトリー        容量
=============================================================================================
削除中:
 php              x86_64              5.4.16-48.el7                 @base              4.4 M

トランザクションの要約
=============================================================================================
削除  1 パッケージ

インストール容量: 4.4 M
上記の処理を行います。よろしいでしょうか? [y/N]

なので面倒だがyum history package-list phpphpをインストールしたyumのidを確認し、yum info <id>でインストールしたパッケージ名を確認してerase実行の際に面倒だが全部指定してアンインストールした。

[root@centos ~]# yum history package-list php
読み込んだプラグイン:fastestmirror
ID     | 操作           | Package
-------------------------------------------------------------------------------
     2 | インストール   | php-5.4.16-48.el7.x86_64

[root@centos ~]# yum history info 2
読み込んだプラグイン:fastestmirror
トランザクション ID : 2
開始時間            : Wed Jun 23 23:24:23 2021
開始 rpmdb          : 311:5a9b6def48d577ce4831358c73b5a31a376127d0
終了時間            :            23:24:25 2021 (2)
終了 rpmdb          : 320:d9c4f12805f236f194710b521d3834dd4a52744f
ユーザー            : root <root>
終了コード          : 成功
コマンドライン      : install php
トランザクションの実行:
    インストール rpm-4.11.3-25.el7.x86_64                      @anaconda
    インストール yum-3.4.3-154.el7.centos.noarch               @anaconda
    インストール yum-plugin-fastestmirror-1.1.31-42.el7.noarch @anaconda
切り替えたパッケージ:
    依存インストール apr-1.4.8-7.el7.x86_64                 @base
    依存インストール apr-util-1.5.2-6.el7.x86_64            @base
    依存インストール httpd-2.4.6-97.el7.centos.x86_64       @updates
    依存インストール httpd-tools-2.4.6-97.el7.centos.x86_64 @updates
    依存インストール libzip-0.10.1-8.el7.x86_64             @base
    依存インストール mailcap-2.1.41-2.el7.noarch            @base
    インストール php-5.4.16-48.el7.x86_64               @base
    依存インストール php-cli-5.4.16-48.el7.x86_64           @base
    依存インストール php-common-5.4.16-48.el7.x86_64        @base

で、そのままインストールを続けてたのですが、また別のパッケージをアンインストールする必要が出てきて(何度脳死インストールするんだと)、さすがにちゃんと調べたらyumでインストールしたやつ一括でアンインストールするコマンドあるんじゃね?と思い調べた。 ありましたわ。

[root@centos ~]# yum history undo 2
読み込んだプラグイン:fastestmirror
Undoing transaction 2, from Wed Jun 23 23:24:23 2021
    依存インストール apr-1.4.8-7.el7.x86_64                 @base
    依存インストール apr-util-1.5.2-6.el7.x86_64            @base
    依存インストール httpd-2.4.6-97.el7.centos.x86_64       @updates
    依存インストール httpd-tools-2.4.6-97.el7.centos.x86_64 @updates
    依存インストール libzip-0.10.1-8.el7.x86_64             @base
    依存インストール mailcap-2.1.41-2.el7.noarch            @base
    インストール php-5.4.16-48.el7.x86_64               @base
    依存インストール php-cli-5.4.16-48.el7.x86_64           @base
    依存インストール php-common-5.4.16-48.el7.x86_64        @base
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ apr.x86_64 0:1.4.8-7.el7 を 削除
---> パッケージ apr-util.x86_64 0:1.5.2-6.el7 を 削除
---> パッケージ httpd.x86_64 0:2.4.6-97.el7.centos を 削除
---> パッケージ httpd-tools.x86_64 0:2.4.6-97.el7.centos を 削除
---> パッケージ libzip.x86_64 0:0.10.1-8.el7 を 削除
---> パッケージ mailcap.noarch 0:2.1.41-2.el7 を 削除
---> パッケージ php.x86_64 0:5.4.16-48.el7 を 削除
---> パッケージ php-cli.x86_64 0:5.4.16-48.el7 を 削除
---> パッケージ php-common.x86_64 0:5.4.16-48.el7 を 削除
--> 依存性解決を終了しました。

依存性を解決しました

=============================================================================================
 Package              アーキテクチャー
                                      バージョン                     リポジトリー       容量
=============================================================================================
削除中:
 apr                  x86_64          1.4.8-7.el7                    @base             221 k
 apr-util             x86_64          1.5.2-6.el7                    @base             194 k
 httpd                x86_64          2.4.6-97.el7.centos            @updates          9.4 M
 httpd-tools          x86_64          2.4.6-97.el7.centos            @updates          168 k
 libzip               x86_64          0.10.1-8.el7                   @base             104 k
 mailcap              noarch          2.1.41-2.el7                   @base              62 k
 php                  x86_64          5.4.16-48.el7                  @base             4.4 M
 php-cli              x86_64          5.4.16-48.el7                  @base             8.8 M
 php-common           x86_64          5.4.16-48.el7                  @base             3.8 M

トランザクションの要約
=============================================================================================
削除  9 パッケージ

インストール容量: 27 M
上記の処理を行います。よろしいでしょうか? [y/N]

所感

  • undo指定があったの初めて知った。今までeraseやってたのばかみたい。
  • さすがに更新されたパッケージはundo出来ないっぽい
  • 脳死インストールはしないようにと思ったが、undoがあるならもういいかなって気がしてきた。できる幅が良くも悪くも広がった。

httpdインストールでいつもポート開放忘れる

概要

  • CentOS7.4でhttpdインストールして直ぐにブラウザでアクセスできると思ったらアクセスできなかった
  • 原因はサーバ側のポート開放忘れ
  • firewall-cmdコマンドで80番ポート(http)を開けて解決

背景

WordPressを構築しようと思い、下記で要件を確認するとhttpdが必要とあるのでとりあえずインストールしてみた。サービスもちゃんと起動。 https://ja.wordpress.org/about/requirements/

yum -y install httpd
systemctl status httpd
systemctl start httpd

そこで直ぐにapacheのテストページが見れると思ったら見れなかったので原因切り分け。 まずはpingで確認をするか、、、と思ったがそもそもsshでアクセスして操作しているのでIPやネットワークの経路とかは大丈夫そう。 なのでポートが開いているかコマンドプロンプトから確認。(この時点でそういえばポート開放必要だったのをうっすら思い出していたが念のため)

telnet <ip> 80

しかし接続中から画面が進まず、ほぼポートで確定と判断。 そのためサーバで下記コマンド実施。

firewall-cmd --list-all --zone=public --permanent
# services, portsにhttpや80が設定されていないことを確認
firewall-cmd --add-service=http --zone=public --permanent
systemctl restart firewalld
# 設定の反映

これで再度ブラウザからアクセスしてちゃんとテストページが表示されることを確認。

所感

  • 久しぶりにhttpdをインストールするといつも忘れてるのに今回も引っかかった感じ。てかどこかのCentOSバージョンかRHELとかポート開放しなくてもアクセスできなかったっけ・・・?記憶がごちゃごちゃしてる
  • firewall-cmdはサービス指定、ポート指定で設定できる程度の知識。ゾーンとかちゃんと理解しきれていないのでいつかちゃんと勉強したい
  • ブログ投稿のリハビリ。こんくらいのちょっとした躓きでも分割して投稿しようと思ってる

ふと思いついたので書き出す

結局ほとんど記事書かず放置になってたけど、最近なんとなくWordPressを構築しようと思い色々試してた際、躓いたことがちらほらったのをどこにもアウトプットしないのはもったいないと思いここを思い出した。 せっかくだしここに色々躓いたことを書こうと。 もともとそういう躓きを書こうと思って始めたのに全然更新してなかった。。。 AWX構築とか他にも色々ネタあったのにな。。。

なので久しぶりに書こうと思いまーす。 明日から。とりあえず宣誓だけ。

whoisじゃなくrdapなんてのもあるのね

AWS上に練習として個人的にサーバを立ててるんですが、色んなIPアドレスからアクセスされてました。 なのでどこからアクセスされてるのかな~、と思いwhois情報を自動で取得するスクリプトを作成してみた。 備忘として置いておきます。※ほぼshellスクリプトほぼ初心者なのでだいぶひどいと思いますが、、、 ちなみに情報取得するのにすごく時間かかります。1分間に5件くらい

#!/bin/bash

iFile=iplist.log
oFile=whois.log
count=0

date >> $oFile
echo "whois.sh is now start" >> $oFile

DATA=`cat $iFile`
ipCount=`wc -l $iFile`

while read line
do
  count=`expr $count + 1`
  echo $count "/" $ipCount >> $oFile
  echo "###########################" >> $oFile
  echo "ipaddress : $line" >> $oFile
  echo "###########################" >> $oFile
  whois $line >> $oFile
done << FILE
$DATA
FILE

date >> $oFile
echo "whois.sh has end" >> $oFile

会社でもこれ使えないかなと思ったんだけど、FWで43ポートは使用できないようになってるようで困ったな~と思ってたら、whoisに代わる次世代プロトコルとしてRDAPなんてのがあるらしい。 これならcurlで利用でき、またjson形式で取得されるのでいろいろと捗りそう。まだ仕組みが分かってないので、もう少し調べる必要はありそうですが。。。

次世代WHOISプロトコル「RDAP」のご紹介 - JPNIC

ARA(Ansible Report Analysis)をインストールしたい

sky-joker.tech

上記記事を拝見し、仕事でもAnsibleを使用する機会が増えてきたため、araができたら面白いかなと思い、最初はDockerのコンテナで入れて遊んでみていた。

ただ試していたコンテナでは、ansibleでリモートのサーバを操作する際、paramikoをインストールしろと怒られ、paramikoをコンテナにインストールしてみるもなぜか引き続きインストールしろと怒られる。。。

なのでコンテナに頼らず、自分でインストールして試してみるかと思い、下記githubを参考に(Quickstartも簡単そうだし)インストールしてみると、sqliteを3.8.3までバージョンアップしろと怒られる。

じゃあsqliteyumでアップデートすればいいのかなと思い、アップデートしてみると3.7.17までしか上がらない。

調べてみると、どうやら自分でペッケージを持ってきて、ビルドするところから必要らしい。

ここでめげて、備忘含めちゃんと記事を投稿しようと思い立ち(現実逃避)、初投稿。

最近ansibleにはまってます。

初回記事投稿および今後のルール

TL;DL

  • 初回の記事投稿テストです
  • 今後は技術的な記事を中心に投稿してみたいです
  • 知識ついたらGithubやQiitaにも投稿してみたい
  • プログラム知識は浅いので頑張る

ルール

  • コードが少なくQiitaに乗せにくそうな内容をここに記載する
    • たぶん日常的に色々試行錯誤して躓いた内容がこっちに記載される
  • ルールを思いついたら都度ここの記事を更新する
    • 末尾に(yyyymmdd)を記載する
  • なるべくカテゴリを使用して過去記事を検索しやすくすること

意気込み

  • 最低週1では更新する
  • ネタがなくなりそうなときは自分で作成しているwikiから昔のノウハウを放出してみる