- 投稿日:2021-02-28T23:52:12+09:00
Ansibleのyumリポジトリを作成しスタンドアロンのサーバで使用する手順
目的と背景
スタンドアロン(社内リポジトリ及びインターネット繋がってない)にパッケージ入れたいけど、依存パッケージが多すぎて無理ゲーなのでリポジトリごと転送したい場合の方法です。今回はyumコマンドのキャッシュからリポジトリを作成し、スタンドアロンのサーバに転送してAnsibleをインストールしたいと思います。また今回の構成ではある意味矛盾しているのですが、リポジトリ作成時にyumコマンドを使用しているのでインターネット接続(yumが使える)サーバが必要です。必ずしもyumを使用する必要は無いです。
事前準備
検証構成の構築
事前にCentOS7のサーバを2台分作成、構築します。
minimal install後、IPアドレスを固定しています。
ホスト名 詳細 IPアドレス 備考 インターネット疎通 epimet-cent7-1 CentOS 7.9.2009(minimal install) 192.168.0.32 リポジトリ作成用サーバ ○ epimet-cent7-2 CentOS 7.9.2009(minimal install) 192.168.0.33 スタンドアロンサーバ ☓ /etc/redhat-releaseCentOS Linux release 7.9.2009 (Core)リポジトリ作成
【リポジトリ作成用サーバで実行】createrepoのインストール
rpmパッケージ等からリポジトリを作成するには
createrepo
コマンドを使用しますが、デフォルトではインストールされていないので
インストールします。#事前確認 [root@epimet-cent7-1 yum]# rpm -qa |grep createrepo ※何も出力されない [root@epimet-cent7-1 ~]# yum install createrepo 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile epel/x86_64/metalink | 6.5 kB 00:00:00 * base: ftp.tsukuba.wide.ad.jp * epel: ftp.jaist.ac.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp base | 3.6 kB 00:00:00 epel | 4.7 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/3): epel/x86_64/updateinfo | 1.0 MB 00:00:00 (2/3): epel/x86_64/group_gz | 95 kB 00:00:00 (3/3): epel/x86_64/primary_db | 6.9 MB 00:00:19 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ createrepo.noarch 0:0.9.9-28.el7 を インストール --> 依存性の処理をしています: python-deltarpm のパッケージ: createrepo-0.9.9-28.el7.noarch --> 依存性の処理をしています: libxml2-python のパッケージ: createrepo-0.9.9-28.el7.noarch --> 依存性の処理をしています: deltarpm のパッケージ: createrepo-0.9.9-28.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ deltarpm.x86_64 0:3.6-3.el7 を インストール ---> パッケージ libxml2-python.x86_64 0:2.9.1-6.el7.5 を インストール ---> パッケージ python-deltarpm.x86_64 0:3.6-3.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================================================================= Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================================================================= インストール中: createrepo noarch 0.9.9-28.el7 base 94 k 依存性関連でのインストールをします: deltarpm x86_64 3.6-3.el7 base 82 k libxml2-python x86_64 2.9.1-6.el7.5 base 247 k python-deltarpm x86_64 3.6-3.el7 base 31 k トランザクションの要約 ================================================================================================================================= インストール 1 パッケージ (+3 個の依存関係のパッケージ) 総ダウンロード容量: 454 k インストール容量: 2.0 M Is this ok [y/d/N]: y Downloading packages: (1/4): createrepo-0.9.9-28.el7.noarch.rpm | 94 kB 00:00:00 (2/4): python-deltarpm-3.6-3.el7.x86_64.rpm | 31 kB 00:00:00 (3/4): deltarpm-3.6-3.el7.x86_64.rpm | 82 kB 00:00:00 (4/4): libxml2-python-2.9.1-6.el7.5.x86_64.rpm | 247 kB 00:00:00 --------------------------------------------------------------------------------------------------------------------------------- 合計 2.4 MB/s | 454 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : deltarpm-3.6-3.el7.x86_64 1/4 インストール中 : python-deltarpm-3.6-3.el7.x86_64 2/4 インストール中 : libxml2-python-2.9.1-6.el7.5.x86_64 3/4 インストール中 : createrepo-0.9.9-28.el7.noarch 4/4 検証中 : createrepo-0.9.9-28.el7.noarch 1/4 検証中 : libxml2-python-2.9.1-6.el7.5.x86_64 2/4 検証中 : deltarpm-3.6-3.el7.x86_64 3/4 検証中 : python-deltarpm-3.6-3.el7.x86_64 4/4 インストール: createrepo.noarch 0:0.9.9-28.el7 依存性関連をインストールしました: deltarpm.x86_64 0:3.6-3.el7 libxml2-python.x86_64 0:2.9.1-6.el7.5 python-deltarpm.x86_64 0:3.6-3.el7 完了しました! #インストール後確認 [root@epimet-cent7-1 yum]# rpm -qa |grep createrepo createrepo-0.9.9-28.el7.noarch【リポジトリ作成用サーバで実行】epel-releaseのインストール
Ansibleをインストールする際にCentOSにデフォルトで含まれている参照先リポジトリにはansibleは含まれていないため
epel-release(EPELリポジトリ)をインストールする必要があります。
epel-releaseを入れずにyum install ansible
を打つと"パッケージ ansible は利用できません。"と出てきてインストールできません。[root@epimet-cent7-1 ~]# yum install epel-release 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: ftp.tsukuba.wide.ad.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ epel-release.noarch 0:7-11 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================================================================= Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================================================================= インストール中: epel-release noarch 7-11 extras 15 k トランザクションの要約 ================================================================================================================================= インストール 1 パッケージ 総ダウンロード容量: 15 k インストール容量: 24 k Is this ok [y/d/N]: y Downloading packages: 警告: /var/cache/yum/x86_64/7/extras/packages/epel-release-7-11.noarch.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY epel-release-7-11.noarch.rpm の公開鍵がインストールされていません epel-release-7-11.noarch.rpm | 15 kB 00:00:00 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。 Importing GPG key 0xF4A80EB5: Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>" Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 Package : centos-release-7-9.2009.0.el7.centos.x86_64 (@anaconda) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 上記の処理を行います。よろしいでしょうか? [y/N]y Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : epel-release-7-11.noarch 1/1 検証中 : epel-release-7-11.noarch 1/1 インストール: epel-release.noarch 0:7-11 完了しました!【リポジトリ作成用サーバで実行】yumキャッシュの有効化
yumコマンドでコマンドやソフトウェアをインストールした際に取得したrpmファイルはデフォルトではインストール作業後破棄されますが
/etc/yum.confのkeepcahce
を1に設定することでrpmを保持することができます。
※rpmファイルを貯め続け容量を逼迫することが考えられるので通常時は無効化(0)しておくのがベストかと思います。
今回はオンラインのサーバにAnsibleをyumでインストールし、その際に取得したrpmファイルからリポジトリを作成します。#事前確認 [root@epimet-cent7-1 ~]# cat /etc/yum.conf|grep keepcache keepcache=0 #/etc/yum.confを編集する [root@epimet-cent7-1 ~]# vi /etc/yum.conf ~~~~~~~~ keepcache=0 ~~~~~~~~ ↓に書き換える ~~~~~~~~ keepcache=1 ~~~~~~~~ #:wq!で保存する #変更確認 [root@epimet-cent7-1 ~]# cat /etc/yum.conf|grep keepcache keepcache=1【リポジトリ作成用サーバで実行】Ansibleのインストール及びパッケージ取得
パッケージを保持する設定をしたので、
yum install ansible
でAnsibleをインストールしてパッケージを取得します。
yumコマンドで取得したパッケージは/var/cache/yum/配下に保持されます。#事前確認容量確認 [root@epimet-cent7-1 ~]# du -h /var/cache/yum/ 31M /var/cache/yum/x86_64/7/base/gen 0 /var/cache/yum/x86_64/7/base/packages 37M /var/cache/yum/x86_64/7/base 1.2M /var/cache/yum/x86_64/7/extras/gen 0 /var/cache/yum/x86_64/7/extras/packages 1.4M /var/cache/yum/x86_64/7/extras 30M /var/cache/yum/x86_64/7/updates/gen 0 /var/cache/yum/x86_64/7/updates/packages 36M /var/cache/yum/x86_64/7/updates 73M /var/cache/yum/x86_64/7 73M /var/cache/yum/x86_64 73M /var/cache/yum/ #Ansibleインストール [root@epimet-cent7-1 ~]# yum install ansible 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile epel/x86_64/metalink | 6.5 kB 00:00:00 * base: ftp.tsukuba.wide.ad.jp * epel: ftp.jaist.ac.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ ansible.noarch 0:2.9.17-1.el7 を インストール --> 依存性の処理をしています: PyYAML のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: python-httplib2 のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: python-jinja2 のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: python-paramiko のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: python-setuptools のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: python-six のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: python2-cryptography のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: python2-jmespath のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: sshpass のパッケージ: ansible-2.9.17-1.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ PyYAML.x86_64 0:3.10-11.el7 を インストール --> 依存性の処理をしています: libyaml-0.so.2()(64bit) のパッケージ: PyYAML-3.10-11.el7.x86_64 ---> パッケージ python-jinja2.noarch 0:2.7.2-4.el7 を インストール --> 依存性の処理をしています: python-babel >= 0.8 のパッケージ: python-jinja2-2.7.2-4.el7.noarch --> 依存性の処理をしています: python-markupsafe のパッケージ: python-jinja2-2.7.2-4.el7.noarch ---> パッケージ python-paramiko.noarch 0:2.1.1-9.el7 を インストール --> 依存性の処理をしています: python2-pyasn1 のパッケージ: python-paramiko-2.1.1-9.el7.noarch ---> パッケージ python-setuptools.noarch 0:0.9.8-7.el7 を インストール --> 依存性の処理をしています: python-backports-ssl_match_hostname のパッケージ: python-setuptools-0.9.8-7.el7.noarch ---> パッケージ python-six.noarch 0:1.9.0-2.el7 を インストール ---> パッケージ python2-cryptography.x86_64 0:1.7.2-2.el7 を インストール --> 依存性の処理をしています: python-idna >= 2.0 のパッケージ: python2-cryptography-1.7.2-2.el7.x86_64 --> 依存性の処理をしています: python-cffi >= 1.4.1 のパッケージ: python2-cryptography-1.7.2-2.el7.x86_64 --> 依存性の処理をしています: python-ipaddress のパッケージ: python2-cryptography-1.7.2-2.el7.x86_64 --> 依存性の処理をしています: python-enum34 のパッケージ: python2-cryptography-1.7.2-2.el7.x86_64 ---> パッケージ python2-httplib2.noarch 0:0.18.1-3.el7 を インストール ---> パッケージ python2-jmespath.noarch 0:0.9.4-2.el7 を インストール ---> パッケージ sshpass.x86_64 0:1.06-2.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ libyaml.x86_64 0:0.1.4-11.el7_0 を インストール ---> パッケージ python-babel.noarch 0:0.9.6-8.el7 を インストール ---> パッケージ python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 を インストール --> 依存性の処理をしています: python-backports のパッケージ: python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch ---> パッケージ python-cffi.x86_64 0:1.6.0-5.el7 を インストール --> 依存性の処理をしています: python-pycparser のパッケージ: python-cffi-1.6.0-5.el7.x86_64 ---> パッケージ python-enum34.noarch 0:1.0.4-1.el7 を インストール ---> パッケージ python-idna.noarch 0:2.4-1.el7 を インストール ---> パッケージ python-ipaddress.noarch 0:1.0.16-2.el7 を インストール ---> パッケージ python-markupsafe.x86_64 0:0.11-10.el7 を インストール ---> パッケージ python2-pyasn1.noarch 0:0.1.9-7.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ python-backports.x86_64 0:1.0-8.el7 を インストール ---> パッケージ python-pycparser.noarch 0:2.14-1.el7 を インストール --> 依存性の処理をしています: python-ply のパッケージ: python-pycparser-2.14-1.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ python-ply.noarch 0:3.4-11.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================================================================= Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================================================================= インストール中: ansible noarch 2.9.17-1.el7 epel 17 M 依存性関連でのインストールをします: PyYAML x86_64 3.10-11.el7 base 153 k libyaml x86_64 0.1.4-11.el7_0 base 55 k python-babel noarch 0.9.6-8.el7 base 1.4 M python-backports x86_64 1.0-8.el7 base 5.8 k python-backports-ssl_match_hostname noarch 3.5.0.1-1.el7 base 13 k python-cffi x86_64 1.6.0-5.el7 base 218 k python-enum34 noarch 1.0.4-1.el7 base 52 k python-idna noarch 2.4-1.el7 base 94 k python-ipaddress noarch 1.0.16-2.el7 base 34 k python-jinja2 noarch 2.7.2-4.el7 base 519 k python-markupsafe x86_64 0.11-10.el7 base 25 k python-paramiko noarch 2.1.1-9.el7 base 269 k python-ply noarch 3.4-11.el7 base 123 k python-pycparser noarch 2.14-1.el7 base 104 k python-setuptools noarch 0.9.8-7.el7 base 397 k python-six noarch 1.9.0-2.el7 base 29 k python2-cryptography x86_64 1.7.2-2.el7 base 502 k python2-httplib2 noarch 0.18.1-3.el7 epel 125 k python2-jmespath noarch 0.9.4-2.el7 epel 41 k python2-pyasn1 noarch 0.1.9-7.el7 base 100 k sshpass x86_64 1.06-2.el7 extras 21 k トランザクションの要約 ================================================================================================================================= インストール 1 パッケージ (+21 個の依存関係のパッケージ) 総ダウンロード容量: 22 M インストール容量: 124 M Is this ok [y/d/N]: y Downloading packages: (1/22): PyYAML-3.10-11.el7.x86_64.rpm | 153 kB 00:00:00 (2/22): python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm | 13 kB 00:00:00 (3/22): python-cffi-1.6.0-5.el7.x86_64.rpm | 218 kB 00:00:00 (4/22): python-enum34-1.0.4-1.el7.noarch.rpm | 52 kB 00:00:00 (5/22): python-idna-2.4-1.el7.noarch.rpm | 94 kB 00:00:00 (6/22): python-ipaddress-1.0.16-2.el7.noarch.rpm | 34 kB 00:00:00 (7/22): python-backports-1.0-8.el7.x86_64.rpm | 5.8 kB 00:00:00 (8/22): python-babel-0.9.6-8.el7.noarch.rpm | 1.4 MB 00:00:00 (9/22): libyaml-0.1.4-11.el7_0.x86_64.rpm | 55 kB 00:00:00 (10/22): python-jinja2-2.7.2-4.el7.noarch.rpm | 519 kB 00:00:00 (11/22): python-paramiko-2.1.1-9.el7.noarch.rpm | 269 kB 00:00:00 (12/22): python-ply-3.4-11.el7.noarch.rpm | 123 kB 00:00:00 (13/22): python-markupsafe-0.11-10.el7.x86_64.rpm | 25 kB 00:00:00 (14/22): python-six-1.9.0-2.el7.noarch.rpm | 29 kB 00:00:00 (15/22): python-setuptools-0.9.8-7.el7.noarch.rpm | 397 kB 00:00:00 (16/22): python-pycparser-2.14-1.el7.noarch.rpm | 104 kB 00:00:00 (17/22): python2-cryptography-1.7.2-2.el7.x86_64.rpm | 502 kB 00:00:00 warning: /var/cache/yum/x86_64/7/epel/packages/ansible-2.9.17-1.el7.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 352c64e5: NOKEY ansible-2.9.17-1.el7.noarch.rpm の公開鍵がインストールされていません (18/22): ansible-2.9.17-1.el7.noarch.rpm | 17 MB 00:00:00 (19/22): python2-httplib2-0.18.1-3.el7.noarch.rpm | 125 kB 00:00:00 (20/22): python2-jmespath-0.9.4-2.el7.noarch.rpm | 41 kB 00:00:00 (21/22): sshpass-1.06-2.el7.x86_64.rpm | 21 kB 00:00:00 (22/22): python2-pyasn1-0.1.9-7.el7.noarch.rpm | 100 kB 00:00:00 --------------------------------------------------------------------------------------------------------------------------------- 合計 36 MB/s | 22 MB 00:00:00 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 から鍵を取得中です。 Importing GPG key 0x352C64E5: Userid : "Fedora EPEL (7) <epel@fedoraproject.org>" Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5 Package : epel-release-7-11.noarch (@extras) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 上記の処理を行います。よろしいでしょうか? [y/N]y Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : python2-pyasn1-0.1.9-7.el7.noarch 1/22 インストール中 : python-ipaddress-1.0.16-2.el7.noarch 2/22 インストール中 : python-six-1.9.0-2.el7.noarch 3/22 インストール中 : sshpass-1.06-2.el7.x86_64 4/22 インストール中 : libyaml-0.1.4-11.el7_0.x86_64 5/22 インストール中 : PyYAML-3.10-11.el7.x86_64 6/22 インストール中 : python-backports-1.0-8.el7.x86_64 7/22 インストール中 : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 8/22 インストール中 : python-setuptools-0.9.8-7.el7.noarch 9/22 インストール中 : python2-httplib2-0.18.1-3.el7.noarch 10/22 インストール中 : python-babel-0.9.6-8.el7.noarch 11/22 インストール中 : python2-jmespath-0.9.4-2.el7.noarch 12/22 インストール中 : python-ply-3.4-11.el7.noarch 13/22 インストール中 : python-pycparser-2.14-1.el7.noarch 14/22 インストール中 : python-cffi-1.6.0-5.el7.x86_64 15/22 インストール中 : python-markupsafe-0.11-10.el7.x86_64 16/22 インストール中 : python-jinja2-2.7.2-4.el7.noarch 17/22 インストール中 : python-idna-2.4-1.el7.noarch 18/22 インストール中 : python-enum34-1.0.4-1.el7.noarch 19/22 インストール中 : python2-cryptography-1.7.2-2.el7.x86_64 20/22 インストール中 : python-paramiko-2.1.1-9.el7.noarch 21/22 インストール中 : ansible-2.9.17-1.el7.noarch 22/22 検証中 : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 1/22 検証中 : python-enum34-1.0.4-1.el7.noarch 2/22 検証中 : python-setuptools-0.9.8-7.el7.noarch 3/22 検証中 : python-jinja2-2.7.2-4.el7.noarch 4/22 検証中 : python-six-1.9.0-2.el7.noarch 5/22 検証中 : python-idna-2.4-1.el7.noarch 6/22 検証中 : python-markupsafe-0.11-10.el7.x86_64 7/22 検証中 : python-ply-3.4-11.el7.noarch 8/22 検証中 : python-paramiko-2.1.1-9.el7.noarch 9/22 検証中 : python2-jmespath-0.9.4-2.el7.noarch 10/22 検証中 : python-babel-0.9.6-8.el7.noarch 11/22 検証中 : PyYAML-3.10-11.el7.x86_64 12/22 検証中 : python2-httplib2-0.18.1-3.el7.noarch 13/22 検証中 : python-backports-1.0-8.el7.x86_64 14/22 検証中 : python-cffi-1.6.0-5.el7.x86_64 15/22 検証中 : python-pycparser-2.14-1.el7.noarch 16/22 検証中 : libyaml-0.1.4-11.el7_0.x86_64 17/22 検証中 : python-ipaddress-1.0.16-2.el7.noarch 18/22 検証中 : sshpass-1.06-2.el7.x86_64 19/22 検証中 : python2-pyasn1-0.1.9-7.el7.noarch 20/22 検証中 : ansible-2.9.17-1.el7.noarch 21/22 検証中 : python2-cryptography-1.7.2-2.el7.x86_64 22/22 インストール: ansible.noarch 0:2.9.17-1.el7 依存性関連をインストールしました: PyYAML.x86_64 0:3.10-11.el7 libyaml.x86_64 0:0.1.4-11.el7_0 python-babel.noarch 0:0.9.6-8.el7 python-backports.x86_64 0:1.0-8.el7 python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 python-cffi.x86_64 0:1.6.0-5.el7 python-enum34.noarch 0:1.0.4-1.el7 python-idna.noarch 0:2.4-1.el7 python-ipaddress.noarch 0:1.0.16-2.el7 python-jinja2.noarch 0:2.7.2-4.el7 python-markupsafe.x86_64 0:0.11-10.el7 python-paramiko.noarch 0:2.1.1-9.el7 python-ply.noarch 0:3.4-11.el7 python-pycparser.noarch 0:2.14-1.el7 python-setuptools.noarch 0:0.9.8-7.el7 python-six.noarch 0:1.9.0-2.el7 python2-cryptography.x86_64 0:1.7.2-2.el7 python2-httplib2.noarch 0:0.18.1-3.el7 python2-jmespath.noarch 0:0.9.4-2.el7 python2-pyasn1.noarch 0:0.1.9-7.el7 sshpass.x86_64 0:1.06-2.el7 完了しました! #インストール後容量確認(増えていることを確認) [root@epimet-cent7-1 ~]# du -h /var/cache/yum/ 31M /var/cache/yum/x86_64/7/base/gen 4.1M /var/cache/yum/x86_64/7/base/packages 41M /var/cache/yum/x86_64/7/base 1.2M /var/cache/yum/x86_64/7/extras/gen 24K /var/cache/yum/x86_64/7/extras/packages 1.4M /var/cache/yum/x86_64/7/extras 30M /var/cache/yum/x86_64/7/updates/gen 0 /var/cache/yum/x86_64/7/updates/packages 36M /var/cache/yum/x86_64/7/updates 30M /var/cache/yum/x86_64/7/epel/gen 18M /var/cache/yum/x86_64/7/epel/packages 56M /var/cache/yum/x86_64/7/epel 132M /var/cache/yum/x86_64/7 132M /var/cache/yum/x86_64 224K /var/cache/yum/repodata 133M /var/cache/yum/【リポジトリ作成用サーバで実行】リポジトリ作成
createrepoコマンドで/var/cache/yum/配下に取得したパッケージからリポジトリを作成します。
#ディレクトリ移動 [root@epimet-cent7-1 ~]# cd /var/cache/yum/ #リポジトリ作成(Sqlite DBs completeと表示されること) [root@epimet-cent7-1 yum]# createrepo ./ Spawning worker 0 with 11 pkgs Spawning worker 1 with 11 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete #リポジトリ作成確認 [root@epimet-cent7-1 yum]# ls -ltr ./repodata/ 合計 220 -rw-r--r--. 1 root root 8158 2月 28 23:04 b7215c54bee760245df1bac93f71ac9730f7e92a134e293b87912ad2c59d3144-other.xml.gz -rw-r--r--. 1 root root 82103 2月 28 23:04 7596da6395aef2f6a720217c8f860fbc835237c52763d8ec795cdf0dba8dc3b7-filelists.xml.gz -rw-r--r--. 1 root root 8388 2月 28 23:04 3de5b6037c4ff97a685d94f953196d6c87ee69331f01d715234268e2d40602b1-primary.xml.gz -rw-r--r--. 1 root root 11351 2月 28 23:04 74514e3fb7c6cd5ad587bafa8bf28c5490a4ce00af8c7759454494db3e015c7d-other.sqlite.bz2 -rw-r--r--. 1 root root 83502 2月 28 23:04 1e36e905c0531c7bb173def134aef3d6a72ac12e7a37a107e5e794dab50785fd-filelists.sqlite.bz2 -rw-r--r--. 1 root root 2982 2月 28 23:04 repomd.xml -rw-r--r--. 1 root root 12961 2月 28 23:04 735a4fc57378dae0bcec727507395946df5f42330cc04f2e8a32891f05288c92-primary.sqlite.bz2【リポジトリ作成用サーバで実行】yumキャッシュの無効化
Ansibleのパッケージは収集し終えたのでパッケージ保持の設定は無効化します。
#事前確認 [root@epimet-cent7-1 ~]# cat /etc/yum.conf|grep keepcache keepcache=1 #/etc/yum.confを編集する [root@epimet-cent7-1 ~]# vi /etc/yum.conf ~~~~~~~~ keepcache=1 ~~~~~~~~ ↓に書き換える ~~~~~~~~ keepcache=0 ~~~~~~~~ #:wq!で保存する #変更確認 [root@epimet-cent7-1 ~]# cat /etc/yum.conf|grep keepcache keepcache=0ローカルリポジトリを使用してAnsibleインストール
【リポジトリ作成用サーバで実行】スタンドアロンサーバへリポジトリ転送
作成したリポジトリをスタンドアロンサーバ(
192.168.0.33
)の/tmpへ転送します。
今回はSCPコマンドを使用しますがwinscpやfilezillaなどのツールで回収と転送でも大丈夫です。[root@epimet-cent7-1 yum]# scp -r /var/cache/yum/ root@192.168.0.33:/tmp # scp初回時に表示されるのでyes(ここから) The authenticity of host '192.168.0.33 (192.168.0.33)' can't be established. ECDSA key fingerprint is SHA256:0HHnfiftvH54mLW2bzqadOGQXHsvVakmd0nIKV21Nis. ECDSA key fingerprint is MD5:41:0d:b2:36:3b:98:9c:81:55:b7:2e:75:ce:65:f6:be. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.33' (ECDSA) to the list of known hosts. # scp初回時に表示される(ここまで) root@192.168.0.33's password: #スタンドアロンサーバのrootパスワードを入力して[Enter] primary_db.sqlite 100% 30MB 76.7MB/s 00:00 PyYAML-3.10-11.el7.x86_64.rpm 100% 153KB 58.3MB/s 00:00 python-babel-0.9.6-8.el7.noarch.rpm 100% 1393KB 70.8MB/s 00:00 python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm 100% 13KB 15.2MB/s 00:00 libyaml-0.1.4-11.el7_0.x86_64.rpm 100% 55KB 42.6MB/s 00:00 python-cffi-1.6.0-5.el7.x86_64.rpm 100% 218KB 64.0MB/s 00:00 python-backports-1.0-8.el7.x86_64.rpm 100% 5932 9.6MB/s 00:00 python-enum34-1.0.4-1.el7.noarch.rpm 100% 52KB 44.6MB/s 00:00 python-idna-2.4-1.el7.noarch.rpm 100% 94KB 58.3MB/s 00:00 python-ipaddress-1.0.16-2.el7.noarch.rpm 100% 34KB 30.0MB/s 00:00 python-jinja2-2.7.2-4.el7.noarch.rpm 100% 519KB 74.7MB/s 00:00 python-markupsafe-0.11-10.el7.x86_64.rpm 100% 25KB 23.8MB/s 00:00 python-paramiko-2.1.1-9.el7.noarch.rpm 100% 269KB 63.3MB/s 00:00 python-pycparser-2.14-1.el7.noarch.rpm 100% 104KB 52.0MB/s 00:00 python-ply-3.4-11.el7.noarch.rpm 100% 123KB 57.3MB/s 00:00 python-setuptools-0.9.8-7.el7.noarch.rpm 100% 397KB 71.3MB/s 00:00 python-six-1.9.0-2.el7.noarch.rpm 100% 29KB 28.7MB/s 00:00 python2-cryptography-1.7.2-2.el7.x86_64.rpm 100% 502KB 71.6MB/s 00:00 python2-pyasn1-0.1.9-7.el7.noarch.rpm 100% 100KB 50.7MB/s 00:00 mirrorlist.txt 100% 572 396.7KB/s 00:00 repomd.xml 100% 3736 4.5MB/s 00:00 cachecookie 100% 0 0.0KB/s 00:00 a4e2b46586aa556c3b6f814dad5b16db5a669984d66b68e873586cd7c7253301-c7-x86_64-comps.xml.gz 100% 153KB 56.8MB/s 00:00 6d0c3a488c282fe537794b5946b01e28c7f44db79097bb06826e1c0c88bad5ef-primary.sqlite.bz2 100% 6203KB 78.3MB/s 00:00 timedhosts.txt 100% 455 600.0KB/s 00:00 primary_db.sqlite 100% 1161KB 77.9MB/s 00:00 sshpass-1.06-2.el7.x86_64.rpm 100% 21KB 21.8MB/s 00:00 mirrorlist.txt 100% 629 1.3MB/s 00:00 repomd.xml 100% 2997 1.0MB/s 00:00 cachecookie 100% 0 0.0KB/s 00:00 f566f80ea90a80473260b93311d51f669dedd898c7a25836b121b0e44fdc9e75-primary.sqlite.bz2 100% 225KB 65.2MB/s 00:00 primary_db.sqlite 100% 29MB 82.7MB/s 00:00 mirrorlist.txt 100% 636 842.0KB/s 00:00 repomd.xml 100% 3007 5.3MB/s 00:00 cachecookie 100% 0 0.0KB/s 00:00 bcdd5a0f2053a9e3d18bc20b1b07b74e4f38ee3240897cd7202c532c2c80bc23-primary.sqlite.bz2 100% 5770KB 91.4MB/s 00:00 timedhosts 100% 169 199.1KB/s 00:00 primary_db.sqlite 100% 29MB 77.5MB/s 00:00 ansible-2.9.17-1.el7.noarch.rpm 100% 17MB 97.1MB/s 00:00 python2-httplib2-0.18.1-3.el7.noarch.rpm 100% 125KB 47.7MB/s 00:00 python2-jmespath-0.9.4-2.el7.noarch.rpm 100% 41KB 23.5MB/s 00:00 metalink.xml 100% 6636 8.7MB/s 00:00 repomd.xml 100% 4850 9.0MB/s 00:00 cachecookie 100% 0 0.0KB/s 00:00 cef995832c63bc594991cfc00a5910c8cd3ed8c220df9aa019d62a86a22aaf49-updateinfo.xml.bz2 100% 1025KB 83.5MB/s 00:00 f7dcae2527a34760d69f8690d8049c97210f05fe3dd4a94a16ff46ce2b6cdf5f-comps-Everything.x86_64.xml.g 100% 95KB 50.7MB/s 00:00 bd5cf58fd70c5ad16ce6d814823f832382dbbb13ee5bfb74951ddb4d338ead2f-primary.sqlite.bz2 100% 7063KB 103.4MB/s 00:00 .gpgkeyschecked.yum 100% 0 0.0KB/s 00:00 74514e3fb7c6cd5ad587bafa8bf28c5490a4ce00af8c7759454494db3e015c7d-other.sqlite.bz2 100% 11KB 5.7MB/s 00:00 b7215c54bee760245df1bac93f71ac9730f7e92a134e293b87912ad2c59d3144-other.xml.gz 100% 8158 13.2MB/s 00:00 1e36e905c0531c7bb173def134aef3d6a72ac12e7a37a107e5e794dab50785fd-filelists.sqlite.bz2 100% 82KB 46.8MB/s 00:00 7596da6395aef2f6a720217c8f860fbc835237c52763d8ec795cdf0dba8dc3b7-filelists.xml.gz 100% 80KB 47.0MB/s 00:00 735a4fc57378dae0bcec727507395946df5f42330cc04f2e8a32891f05288c92-primary.sqlite.bz2 100% 13KB 16.4MB/s 00:00 3de5b6037c4ff97a685d94f953196d6c87ee69331f01d715234268e2d40602b1-primary.xml.gz 100% 8388 8.3MB/s 00:00 repomd.xml 100% 2982 4.5MB/s 00:00【スタンドアロンサーバで実行】ローカルリポジトリ転送確認
[root@epimet-cent7-2 ~]# cd /tmp [root@epimet-cent7-2 tmp]# ls -l drwx------. 3 root root 17 2月 28 22:42 systemd-private-4357595e64bc4f7c94518f23f602643c-chronyd.service-QO621e drwx------. 2 root root 6 3月 1 2021 vmware-root_780-2957124724 drwxr-xr-x. 4 root root 36 2月 28 23:06 yum #転送してきたリポジトリファイル【スタンドアロンサーバで実行】ローカルリポジトリ設定
オンラインのサーバから取得したリポジトリを登録します。
[root@epimet-cent7-2 tmp]# cd /etc/yum.repos.d/ [root@epimet-cent7-2 yum.repos.d]# ll #デフォルトで登録してあるリポジトリ定義の確認 合計 40 -rw-r--r--. 1 root root 1664 10月 23 23:53 CentOS-Base.repo -rw-r--r--. 1 root root 1309 10月 23 23:53 CentOS-CR.repo -rw-r--r--. 1 root root 649 10月 23 23:53 CentOS-Debuginfo.repo -rw-r--r--. 1 root root 630 10月 23 23:53 CentOS-Media.repo -rw-r--r--. 1 root root 1331 10月 23 23:53 CentOS-Sources.repo -rw-r--r--. 1 root root 8515 10月 23 23:53 CentOS-Vault.repo -rw-r--r--. 1 root root 314 10月 23 23:53 CentOS-fasttrack.repo -rw-r--r--. 1 root root 616 10月 23 23:53 CentOS-x86_64-kernel.repo [root@epimet-cent7-2 yum.repos.d]# vi Ansible.repo #"Ansible.repo"という名前でリポジトリ定義の作成 ##--ここから-- [ansible_repo] name=absible Repository baseurl=file:///tmp/yum/ gpgcheck=0 ##--ここまでコピーアンドペースト--※最終行は空行 #:wq!で保存 #Ansible.repo作成確認 [root@epimet-cent7-2 yum.repos.d]# cat Ansible.repo [ansible_repo] name=absible Repository baseurl=file:///tmp/yum/ gpgcheck=0 #Ansible.repoの登録確認※Ansible.repoが表示されることを確認します [root@epimet-cent7-2 yum.repos.d]# yum repolist 読み込んだプラグイン:fastestmirror Determining fastest mirrors * base: ftp.tsukuba.wide.ad.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp ansible_repo | 2.9 kB 00:00:00 base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/5): ansible_repo/primary_db | 13 kB 00:00:00 (2/5): base/7/x86_64/group_gz | 153 kB 00:00:00 (3/5): extras/7/x86_64/primary_db | 225 kB 00:00:00 (4/5): base/7/x86_64/primary_db | 6.1 MB 00:00:00 (5/5): updates/7/x86_64/primary_db | 5.6 MB 00:00:00 リポジトリー ID リポジトリー名 状態 ansible_repo absible Repository 22 base/7/x86_64 CentOS-7 - Base 10,072 extras/7/x86_64 CentOS-7 - Extras 453 updates/7/x86_64 CentOS-7 - Updates 1,687 repolist: 12,234【スタンドアロンサーバで実行】ローカルリポジトリからAnsibleインストール
ローカルリポジトリの設定が済んだので、Ansibleのインストールを行います。
#事前確認 [root@epimet-cent7-2 yum.repos.d]# rpm -qa |grep ansible ※何も出力されないこと [root@epimet-cent7-2 yum.repos.d]# yum install ansible 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ ansible.noarch 0:2.9.17-1.el7 を インストール --> 依存性の処理をしています: sshpass のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: python2-jmespath のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: python2-cryptography のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: python-six のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: python-setuptools のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: python-paramiko のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: python-jinja2 のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: python-httplib2 のパッケージ: ansible-2.9.17-1.el7.noarch --> 依存性の処理をしています: PyYAML のパッケージ: ansible-2.9.17-1.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ PyYAML.x86_64 0:3.10-11.el7 を インストール --> 依存性の処理をしています: libyaml-0.so.2()(64bit) のパッケージ: PyYAML-3.10-11.el7.x86_64 ---> パッケージ python-jinja2.noarch 0:2.7.2-4.el7 を インストール --> 依存性の処理をしています: python-babel >= 0.8 のパッケージ: python-jinja2-2.7.2-4.el7.noarch --> 依存性の処理をしています: python-markupsafe のパッケージ: python-jinja2-2.7.2-4.el7.noarch ---> パッケージ python-paramiko.noarch 0:2.1.1-9.el7 を インストール --> 依存性の処理をしています: python2-pyasn1 のパッケージ: python-paramiko-2.1.1-9.el7.noarch ---> パッケージ python-setuptools.noarch 0:0.9.8-7.el7 を インストール --> 依存性の処理をしています: python-backports-ssl_match_hostname のパッケージ: python-setuptools-0.9.8-7.el7.noarch ---> パッケージ python-six.noarch 0:1.9.0-2.el7 を インストール ---> パッケージ python2-cryptography.x86_64 0:1.7.2-2.el7 を インストール --> 依存性の処理をしています: python-idna >= 2.0 のパッケージ: python2-cryptography-1.7.2-2.el7.x86_64 --> 依存性の処理をしています: python-cffi >= 1.4.1 のパッケージ: python2-cryptography-1.7.2-2.el7.x86_64 --> 依存性の処理をしています: python-ipaddress のパッケージ: python2-cryptography-1.7.2-2.el7.x86_64 --> 依存性の処理をしています: python-enum34 のパッケージ: python2-cryptography-1.7.2-2.el7.x86_64 ---> パッケージ python2-httplib2.noarch 0:0.18.1-3.el7 を インストール ---> パッケージ python2-jmespath.noarch 0:0.9.4-2.el7 を インストール ---> パッケージ sshpass.x86_64 0:1.06-2.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ libyaml.x86_64 0:0.1.4-11.el7_0 を インストール ---> パッケージ python-babel.noarch 0:0.9.6-8.el7 を インストール ---> パッケージ python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 を インストール --> 依存性の処理をしています: python-backports のパッケージ: python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch ---> パッケージ python-cffi.x86_64 0:1.6.0-5.el7 を インストール --> 依存性の処理をしています: python-pycparser のパッケージ: python-cffi-1.6.0-5.el7.x86_64 ---> パッケージ python-enum34.noarch 0:1.0.4-1.el7 を インストール ---> パッケージ python-idna.noarch 0:2.4-1.el7 を インストール ---> パッケージ python-ipaddress.noarch 0:1.0.16-2.el7 を インストール ---> パッケージ python-markupsafe.x86_64 0:0.11-10.el7 を インストール ---> パッケージ python2-pyasn1.noarch 0:0.1.9-7.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ python-backports.x86_64 0:1.0-8.el7 を インストール ---> パッケージ python-pycparser.noarch 0:2.14-1.el7 を インストール --> 依存性の処理をしています: python-ply のパッケージ: python-pycparser-2.14-1.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ python-ply.noarch 0:3.4-11.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました =============================================================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 =============================================================================================================================== インストール中: ansible noarch 2.9.17-1.el7 ansible_repo 17 M 依存性関連でのインストールをします: PyYAML x86_64 3.10-11.el7 ansible_repo 153 k libyaml x86_64 0.1.4-11.el7_0 ansible_repo 55 k python-babel noarch 0.9.6-8.el7 ansible_repo 1.4 M python-backports x86_64 1.0-8.el7 ansible_repo 5.8 k python-backports-ssl_match_hostname noarch 3.5.0.1-1.el7 ansible_repo 13 k python-cffi x86_64 1.6.0-5.el7 ansible_repo 218 k python-enum34 noarch 1.0.4-1.el7 ansible_repo 52 k python-idna noarch 2.4-1.el7 ansible_repo 94 k python-ipaddress noarch 1.0.16-2.el7 ansible_repo 34 k python-jinja2 noarch 2.7.2-4.el7 ansible_repo 519 k python-markupsafe x86_64 0.11-10.el7 ansible_repo 25 k python-paramiko noarch 2.1.1-9.el7 ansible_repo 269 k python-ply noarch 3.4-11.el7 ansible_repo 123 k python-pycparser noarch 2.14-1.el7 ansible_repo 104 k python-setuptools noarch 0.9.8-7.el7 ansible_repo 397 k python-six noarch 1.9.0-2.el7 ansible_repo 29 k python2-cryptography x86_64 1.7.2-2.el7 ansible_repo 502 k python2-httplib2 noarch 0.18.1-3.el7 ansible_repo 125 k python2-jmespath noarch 0.9.4-2.el7 ansible_repo 41 k python2-pyasn1 noarch 0.1.9-7.el7 ansible_repo 100 k sshpass x86_64 1.06-2.el7 ansible_repo 21 k トランザクションの要約 =============================================================================================================================== インストール 1 パッケージ (+21 個の依存関係のパッケージ) 総ダウンロード容量: 22 M インストール容量: 124 M Is this ok [y/d/N]: y Downloading packages: ------------------------------------------------------------------------------------------------------------------------------- 合計 236 MB/s | 22 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : python2-pyasn1-0.1.9-7.el7.noarch 1/22 インストール中 : python-ipaddress-1.0.16-2.el7.noarch 2/22 インストール中 : python-six-1.9.0-2.el7.noarch 3/22 インストール中 : sshpass-1.06-2.el7.x86_64 4/22 インストール中 : libyaml-0.1.4-11.el7_0.x86_64 5/22 インストール中 : PyYAML-3.10-11.el7.x86_64 6/22 インストール中 : python-backports-1.0-8.el7.x86_64 7/22 インストール中 : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 8/22 インストール中 : python-setuptools-0.9.8-7.el7.noarch 9/22 インストール中 : python2-httplib2-0.18.1-3.el7.noarch 10/22 インストール中 : python-babel-0.9.6-8.el7.noarch 11/22 インストール中 : python2-jmespath-0.9.4-2.el7.noarch 12/22 インストール中 : python-ply-3.4-11.el7.noarch 13/22 インストール中 : python-pycparser-2.14-1.el7.noarch 14/22 インストール中 : python-cffi-1.6.0-5.el7.x86_64 15/22 インストール中 : python-markupsafe-0.11-10.el7.x86_64 16/22 インストール中 : python-jinja2-2.7.2-4.el7.noarch 17/22 インストール中 : python-idna-2.4-1.el7.noarch 18/22 インストール中 : python-enum34-1.0.4-1.el7.noarch 19/22 インストール中 : python2-cryptography-1.7.2-2.el7.x86_64 20/22 インストール中 : python-paramiko-2.1.1-9.el7.noarch 21/22 インストール中 : ansible-2.9.17-1.el7.noarch 22/22 検証中 : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 1/22 検証中 : python-enum34-1.0.4-1.el7.noarch 2/22 検証中 : python-setuptools-0.9.8-7.el7.noarch 3/22 検証中 : python-jinja2-2.7.2-4.el7.noarch 4/22 検証中 : python-six-1.9.0-2.el7.noarch 5/22 検証中 : python-idna-2.4-1.el7.noarch 6/22 検証中 : python-markupsafe-0.11-10.el7.x86_64 7/22 検証中 : python-ply-3.4-11.el7.noarch 8/22 検証中 : python-paramiko-2.1.1-9.el7.noarch 9/22 検証中 : python2-jmespath-0.9.4-2.el7.noarch 10/22 検証中 : python-babel-0.9.6-8.el7.noarch 11/22 検証中 : ansible-2.9.17-1.el7.noarch 12/22 検証中 : python2-httplib2-0.18.1-3.el7.noarch 13/22 検証中 : python-backports-1.0-8.el7.x86_64 14/22 検証中 : python-cffi-1.6.0-5.el7.x86_64 15/22 検証中 : python-pycparser-2.14-1.el7.noarch 16/22 検証中 : libyaml-0.1.4-11.el7_0.x86_64 17/22 検証中 : python-ipaddress-1.0.16-2.el7.noarch 18/22 検証中 : sshpass-1.06-2.el7.x86_64 19/22 検証中 : python2-pyasn1-0.1.9-7.el7.noarch 20/22 検証中 : PyYAML-3.10-11.el7.x86_64 21/22 検証中 : python2-cryptography-1.7.2-2.el7.x86_64 22/22 インストール: ansible.noarch 0:2.9.17-1.el7 依存性関連をインストールしました: PyYAML.x86_64 0:3.10-11.el7 libyaml.x86_64 0:0.1.4-11.el7_0 python-babel.noarch 0:0.9.6-8.el7 python-backports.x86_64 0:1.0-8.el7 python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 python-cffi.x86_64 0:1.6.0-5.el7 python-enum34.noarch 0:1.0.4-1.el7 python-idna.noarch 0:2.4-1.el7 python-ipaddress.noarch 0:1.0.16-2.el7 python-jinja2.noarch 0:2.7.2-4.el7 python-markupsafe.x86_64 0:0.11-10.el7 python-paramiko.noarch 0:2.1.1-9.el7 python-ply.noarch 0:3.4-11.el7 python-pycparser.noarch 0:2.14-1.el7 python-setuptools.noarch 0:0.9.8-7.el7 python-six.noarch 0:1.9.0-2.el7 python2-cryptography.x86_64 0:1.7.2-2.el7 python2-httplib2.noarch 0:0.18.1-3.el7 python2-jmespath.noarch 0:0.9.4-2.el7 python2-pyasn1.noarch 0:0.1.9-7.el7 sshpass.x86_64 0:1.06-2.el7 完了しました! #インストール後確認 [root@epimet-cent7-2 yum.repos.d]# rpm -qa|grep ansible ansible-2.9.17-1.el7.noarch所感
駆け足気味でしたが以上で、リポジトリ作成と転送、ローカルリポジトリとして使用するまでの手順となります。
参考
【Linuxを使いこなす】 CentOSのローカルリポジトリを構築しよう | システムや業務のプロデュースカンパニー | 株式会社アドックインターナショナル
[CentOS7]EPELリポジトリの簡単な追加方法 | Zero Configuration
- 投稿日:2021-02-28T22:30:57+09:00
WebARENA VPSクラウドで新規ユーザーを作成し、ssh接続をするまで
はじめに
初めての記事です。
拙い日本語になると思いますが、ご容赦願います。
本記事では、WebARENAのVPSクラウドで起動させたUbuntuサーバーに、新規作成したユーザーでsshログインをするまでにハマったことと、その解決策について書いていきます。結論
- WebARENA VPSクラウドのUbuntu 18.04インスタンスの初期ユーザー名はubuntu、パスワードはインスタンス名の
i-
以降の文字列。- sshログイン用の新規ユーザー作成時には、ディレクトリやファイルの所有者に注意
ハマりポイント#1 そもそも初期ユーザーでsshログインができない
WebARENA VPSクラウドのブラウザ管理画面には簡易マニュアルなるものがあります。私は始めてこのサービスを利用するため、このマニュアルに従ってセットアップを行いました。インスタンス生成、キーペア作成、セキュリティグループ作成まで進めていざssh接続をしようとしたところ...Permission denied (Publickey).
root@xxx.xxx.xxx.xxx: Permission denied (publickey).確かにマニュアルではブラウザ上でキーペアを生成しダウンロードした.pemファイルから認証をする方法が書かれているにも関わらず、私は自前の公開鍵を登録しました。だって公開鍵コピペ用の入力ボックスがあるのだもの。
一応マニュアル通りブラウザ上で生成したペアから認証を試みても...
Permission denied
。つまり、公開鍵が自前のものかブラウザから生成したものかはあまり関係ないようです。ログインユーザーもマニュアルに記載してある"root"で間違えないハズです
そこで安直に「webarena ubuntu ssh できない」とggったところ衝撃の事実が。なんとUbuntuインスタンスのログイン用初期ユーザーは"root"ではなく"ubuntu"だそうで。
一応このことは公式サイトにも記載してありました。
しかし一番最初に目につくであろう簡易マニュアルと記載が違うのはまさに罠...。
ちなみにCentOSインスタンスの場合の初期ユーザー名は"centos"。今確認してみたら、マニュアルには一応「CentOS用」と記載してはありました。でも、CentOSインスタンスを作成したとしてもおそらく"root"ではログインできない(未検証です)のだと思うと...。そしてこれは1番目に載せたサイトに記載してあったことですが、sshログイン自体は公開鍵認証方式でできるもののssh接続先のパスワードとなるとまた話は別のようです。パスワードはWebARENA VPSクラウドのブラウザ管理画面から見れるインスタンス名のうち、
i-
以降の文字列になっています。sshでログインできた場合はプロンプト文字列のユーザー名@
以降にあたる文字列がパスワードです。こちらの場合先頭のi-
はもとからありません。
ざっと調べてみてもこの情報が公式で載ってないんですよね...ハマりポイント#2 新規作成したユーザーのssh認証に失敗
※以下のことはWebARENA VPSクラウド特有のハマりではありません。
最初からあるユーザー"ubuntu"とは別にユーザーを作成し、そのユーザーでsshログインしようとした際に失敗した話です。ここでは新たに作成したユーザーを"caffeine"としています。
ユーザー作成は至って普通です。ユーザー"ubuntu"でログインした状態で作業を行います。sudo useradd caffeine -m(
-m
オプションによってcaffeineのホームディレクトリを作成しています。)sudo passwd caffeine sudo usermod -G sudo caffeine(caffeineのパスワードを設定し、sudoが使えるようにグループ設定を行います。)
次に、
/home/caffeine/.ssh/
下に/home/ubuntu/.ssh/authorized_keys
をコピーします。ブラウザ上から私の環境の公開鍵を登録したので、ユーザー"ubuntu"のauthorized_keysを持ってくればOKです。ここからがミスポイント。コピペして真似しないで下さい。
まずは
.ssh
ディレクトリを作成sudo mkdir /home/caffeine/.ssh
root権限で行わないとPermission deniedとなるので安直にsudoをつけてしまいました。
そしてsudo cp /home/ubuntu/.ssh/authorized_keys /home/caffeine/.ssh
さて、これでcaffeineのホームディレクトリ以下にssh接続をするための材料が揃いました。
一度ユーザー"ubuntu"としてはログアウトし、クライアント側からユーザー"caffeine"として再度ログインssh caffeine@xxx.xxx.xxx.xxx caffeine@xxx.xxx.xxx.xxx: Permission denied (publickey).
ぱーみっしょんでぃないど ぱぶりっくきー
。もう何度見たことか。ほんとこいつにはうんざりしますね。
ここからかなり消耗しました。ssh caffeine@xxx.xxx.xxx.xxx -vvv
でデバッグ情報を確認したり、サーバー側で/var/log/auth.log
を確認したり...
定番のパーミッション強度の確認や/home/caffeine/.ssh/authorized_keys
に登録された公開鍵が自前のものと一致することの確認も行いました。それでも直らず...ただ、原因はほんとにつまらないものです。
/home/caffeine
以下への.ssh/
ディレクトリの作成、及びそのディレクトリ以下へのauthorized_keys
のコピーをrootユーザーとして行っていたことで、ディレクトリとファイルがどちらもroot:root
の所有物になっていました。したがってPermission deniedが発生していたのです。解決策は
sudo chown caffeine:caffeine /home/caffeine/.ssh sudo chown caffeine:caffeine /home/caffeine/.ssh/authorized_keyこれで所有者がcaffeineとなり、無事にcaffeineとしてsshログインができました。
めでたしめでたし。
- 投稿日:2021-02-28T21:00:17+09:00
LPIC1とLPIC2を取得時のメモ
LPIC1とLPIC2を取得したのでメモ
1.資格勉強に対する考え方
・資格は勉強した証拠としては使える。
・実力の証明には正直ならないと思った。(勉強した内容は忘れかけている…わからん時はぐぐれ)なので、すべてを理解しないで良い。ざっくり理解
2.勉強方法
①小豆本でざっくり理解
②ping-tを解きまくる。わからない部分は小豆本で復習して理解する。
③模擬試験で安定で80%出せるようになる。もしくは勉強にあきる。
④1週間後くらいに試験を申し込む
⑤あとはひたすら、問題を解くping-tのコマンド問題について
特にやらないくて良いと思った。
・試験のコマンド問題は〇〇するためのコマンドは?コマンドのみ書いて とかなので…
・コマンドとそのオプションの意味くらい覚えていれば良いと思う。
・設定ファイル系はしっかり覚えた方が良いと思うので、活用はありだと思う。LPIC101,102,201までは毛色が似ている。(ここまではすんなりいけた!)
LPIC202からはbind,Apacheなどの設定項目の意味とか、覚えることが多すぎる(以下を参考にして、自宅PCのVitrualBoxで手を動かして作ったりした。)
Linuxサーバー構築標準教科書3.よかったこと
・Linuxに対する抵抗感が少し減った
・勉強すれば、ある程度は理解できることがわかった。
(仕事だと分からんこと多すぎて、しゅんですが時間しっかり勉強すれば、理解できるかもという自信になった。)
・現場の人に褒められた
- 投稿日:2021-02-28T16:29:55+09:00
ドメイン名をミスタイプしてLDAPインストールに苦戦した話
ブログで掲載している内容から一部抜粋。
Debian(bullseye/sid)でLDAPサーバーの構築中に少しハマりました。
インストール時にパスワードの設定をすると以下のエラー
入力された設定は無効です。DNS ドメイン名が有効な文法になっていること、組織名のフィールドが空になっていないことと、管理者パスワードが合っていることを確認してください。設定を再試行しないと、LDAP サーバはセットアップされません。あとで再試行するときには、"dpkg-reconfigure slapd" を実行してください。
パスワードの再入力を間違ったとも思わなかったのでとりあえず<いいえ>で進むと、エラー発生。
いろいろ試しましたが、結果から言うと、ドメインの設定に間違いがありました。
まさか初期セットアップ時からミスしているとは思わなくて気が付くまでしばらく時間を使いました。slapdの削除 apt remove --purge slapd
/etc/hostsを修正した後にslapdの再インストールで無事解決しました。以下で構築したときのことまとめています。
https://tamu-labo.net/posts/2021/02/28/ldap.html
- 投稿日:2021-02-28T12:08:36+09:00
【3ステップで解説!】LinuC101(LPIC101)を取得するための勉強方法
こちらのURLに移行しました。
- 投稿日:2021-02-28T11:26:59+09:00
ps aux | grepは何を行っているコマンドなのか?
OS上で動いているプロセスの確認をする際に使用する
ps aux|grep <process_name>
このコマンドはに、検索したいプロセスの名前を入れると、該当のプロセスが稼働しているかどうかを確認することができる便利なコマンドです。ですが、実際、なんで
ps aux|grep <process_name>
と叩くと、このような出力結果を得ることができるのでしょうか?
今回はps aux|grep <process_name>
にあるパイプライン|
に焦点をあてて解説したいと思います。コマンドの解説
まずは前提となる
ps aux
とgrep
について簡単に解説します。ps auxについて
ps aux
のみを走らせてみましょう~ ❯❯❯ ps aux USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND toshiokun 1465 18.4 2.7 6631496 448688 ?? S 6:19AM 1:15.15 com.docker.hyper _windowserver 129 6.5 0.7 7502272 122076 ?? Ss 6:18AM 1:02.39 /System/Library/ toshiokun 511 5.7 0.4 5227076 64424 ?? S 6:19AM 0:03.67 /Applications/iT toshiokun 682 2.7 1.4 23820844 243012 ?? S 6:19AM 0:16.65 /Applications/Vi root 304 2.0 1.0 7502908 162908 ?? Ss 6:19AM 0:54.12 /System/Library/ toshiokun 625 1.9 0.4 4822416 74404 ?? S 6:19AM 0:13.14 /Applications/Vi root 65 1.5 0.1 4418140 10388 ?? Ss 6:18AM 0:04.61 /Library/Applica root 85 1.4 0.2 4566788 38356 ?? Ss 6:18AM 0:14.30 /System/Library/ _driverkit 288 1.2 0.0 4806844 2308 ?? Ss 6:19AM 0:03.48 /System/Library/ toshiokun 493 0.7 1.3 5568640 217188 ?? S 6:19AM 0:29.34 /Applications/Goこんな感じで表示されると思います。
ps
単体がそもそもLinux上で動いているプロセスを確認するコマンドなのですが、ps aux
とオプションも指定してあげることで、「端末操作の」「CPUやメモリの使用率を付与した」「現在実行中の」プロセスを確認することができます。
基本的にはps aux
とセットで覚えている方が多いでしょう。grepについて
grepはある特定の単語を含む行を返すためのメソッドです。
例えば下記のようなファイルがあったとします。hoge.txthoge fuga piyo hogehoge fugafuga piyopiyoこの中から、
hoge
の文字を含む行を検索したいときには下記のコマンドを叩きます。~ ❯❯❯ grep hoge hoge.txt hoge #検索結果1 hogehoge #検索結果2この場合、
- 第1引数の
hoge
が検索単語- 第2引数の
hoge.txt
が後述する標準入力- 出力結果が後述する標準出力
となっています。
パイプライン(|)の意味
さて、今回のテーマである
ps aux | grep
の中にあるパイプライン(|)は何を意味しているのでしょうか。これを説明するにあたって、「標準入力」と「標準出力」について説明したいと思います。標準入力とは?
標準入力とは、コマンドに対して入力する情報のことを指します。
それはコマンドラインで入力することもあるし、ファイルのこともあります。先ほどのgrepの例で言えば、
hoge.txt
というファイルが標準入力になっているわけですが、コマンドラインの入力を標準入力にすることもできます。~ ❯❯❯ grep hoge ✘ 130 hogehoge #コマンドラインから入力した標準入力 hogehoge #検索結果 ~ ❯❯❯ grep hoge ✘ 130 fugafuga #コマンドラインから入力した標準入力 #標準入力の内容にhogeが含まれている行が存在しないため、検索結果が出力されない標準出力とは?
対して標準出力というのは、コマンドの出力結果のことを指します。
これも出力先がコマンドラインのこともあるし、ファイルのこともあります。少し余談ですが、もし標準出力をファイルにしたいときには下記のように
>
をつけてあげます。grep hoge hoge.txt > result.txtresult.txthoge hogehogeパイプラインは標準出力を次のコマンドの標準入力に渡す仕組み
さてここでようやく本題に入れます。
パイプラインというのは、前のコマンドの標準出力をそのまま次のコマンドの標準入力として渡す仕組みのことを言います。
ps aux|grep node
というコマンドを叩くとすると、
ps aux
でOS上で実行中のプロセスが一覧として表示され、標準出力されるgrep node
の標準入力として、1.で標準出力されたプロセスの一覧が渡される- 結果として、OS上で実行中のプロセスの中で、nodeという文字列を含んだプロセスが標準出力としてコマンドライン上に表示される
というフローになるわけです。
なので、node index.js
というコマンドを実行中にps aux|grep node
というコマンドを叩くと以下のような標準出力を得ることができます。~ ❯❯❯ ps aux|grep node toshiokun 3094 0.0 0.0 4268424 684 s002 R+ 11:04AM 0:00.00 grep --color=auto node toshiokun 3003 0.0 0.3 4602960 46216 s000 S+ 11:03AM 0:00.94 node index.js明示的に標準入力を受け付ける部分を指定する際には-(ハイフン)を使用することもできます。
~ ❯❯❯ ps aux|grep node - toshiokun 3094 0.0 0.0 4268424 684 s002 R+ 11:04AM 0:00.00 grep --color=auto node - toshiokun 3003 0.0 0.3 4602960 46216 s000 S+ 11:03AM 0:00.94 node index.jsまとめ
いかがだったでしょうか。
普段ps aux|grep <process_name>
のコマンドを叩いている方の中にも、パイプラインの正確な定義を知らなかった方もいたのではないでしょうか。パイプラインが「標準出力を次のコマンドの標準入力として渡す」ということを明確に理解していると、複雑なコマンドも比較的簡単に書くことができるようになるかと思います。
是非参考になれば幸いです。
- 投稿日:2021-02-28T10:31:04+09:00
Linux基礎知識①
※個人的な学習のアウトプットとなりますので間違い等あった場合ご指摘いただけると大変助かります。
Linux
LinuxとはOS(Operating System)のひとつでPCを動作させるために必要なシステム。
キーボード入力やマウス操作、サーバーへのリクエストやレスポンスの受信などPCを動かす際に必要で当然のように存在しているソフトウェアがOS。複数種類があるOSの中のひとつがLinux。
GUIとCUI
OSの環境には2種類あり、GUI (Graphical User Interface) か CUI (Character User Interface) がある。
GUIは一般的なPCで採用されているWindowsやMac OSのようなマウス操作によってファイルやフォルダ操作をするような視覚的にわかりやすいインターフェース。
一方CUIはいわゆる「黒い画面」に対してコマンドを打ち込むことで操作を行う一般人にはやさしくない環境。
ディレクトリという概念の理解した上で自分の現在地を把握することが重要。こんな感じのやつ。
今回の記事に取り上げているLinuxはCUI環境に該当するOS。Linuxの歴史
元はアメリカのAT&T社で開発されたUNIXというOSがありSystemⅤ系とBSD(Berkley Software Distribution)系の2つの系列で発展していた。
Linuxはその発展の先にいるわけではなく、UNIXを参考にLinus Tovaldsがゼロから作り上げたOSがLinux。
UNIXを参考にしているのでコマンドは似ているがソースは全くの別物となる。
Linuxはオープンソース (ソースコードを一般公開して誰でも使えるようにしている)になっており、企業や団体等がこれに独自ツールやサポートを付け加えてパッケージにすることをディストリビューション (配布形態)という。
有名なディストリビューションにはCentOSやUbuntuなどがある。
コンソール
LinuxではLinuxがインストールされたPC(ホスト)へネットワーク経由で別のPC(端末・ターミナル)から接続するような使い方が中心になる。
こういったCUI環境でコマンドを受け取り、ホストへ渡す役割を果たしているのがコンソールである。
仮想環境
Linuxを使う際にはOS上にハードウェアをエミュレート(模倣)して仮想環境を作り出すという方法がある。
ここで作られた仮想のハードウェアを仮想マシン(仮想PC・仮想サーバー)と言う。
仮想環境の管理ツールで有名なものにはVirtual Boxといったものがある。
この方法で環境を構築すると、CPUやメモリ、ディスク容量を多く必要とするので導入するPCにそれなりのスペックが必要となる。