LoginSignup
0
0

More than 3 years have passed since last update.

Puppet Boltを使用して、CentOSからSolarisのコマンドを実行する際に権限エラーで詰まったので、メモ

Last updated at Posted at 2021-05-03

こんにちは、tanzoです。

今回は、CentOS上でSolarisの情報を取得したい思い、試しにPuppet Boltを使ってみました!!
ほとんどLinuxの知識が皆無だったこともあり、すごい苦戦したため、備忘録として残しておきます。

ちなみに、CentOS、Solaris、VirtualBox等の環境は準備されている前提での説明になりますので、その点はご了承ください。

環境

  • Windows 10
  • CentOS Stream release 8 (Virtual box上に構築)
  • Oracle Solaris 11.4 (Virtual box上に構築)
  • Virtual box (バージョン:6.1.14)
  • teraterm (バージョン:4.105)

Puppet Boltインストール(Windows上に)

インストールはhttps://yum.puppetlabs.com/puppet/el/8/x86_64/
のサイトから、puppet-bolt-3.4.0-1.el8.x86_64.rpmを選択して任意のディレクトリにダウンロードしておきます。
(自分の現環境では、yumが使えなかったので、ファイルをダウンロードする方法を採用しています)

CentOS起動とscpによるファイル転送

  • CentOSはteratermから起動しておきます。(teratermは窓の杜などでインストールしておいてください)
    起動したら、ログインして、以下図のように、「SSH SCP...」のボタンを押下します。
    スクリーンショット (25).png

  • 次に以下の図のように、「…」ボタンを押下して、先ほどダウンロードしたrpmファイルを選択し、右側の「Send」ボタンを押下します。
    *その際に「To」の入力欄に関しては入力しなくても大丈夫です。(入力しない場合は、ホームディレクトリがデフォルトで選択されます)※点線より下の項目も入力しなくて大丈夫です。

スクリーンショット (26).png

  • そしてrpmファイルがしっかり転送されたか確認するために、CentOS上で以下のコマンドを入力します。 出力結果に先ほど転送したrpmファイルがあれば、OKです。

コマンド

[yuta@localhost ~]$ ls puppet*
puppet-bolt-3.4.0-1.el8.x86_64.rpm

Puppet Boltインストール(CentOS上に)

rpmファイルがCentOS上にあることが確認できたため、以下のコマンドを入力して、インストールしていきます。

コマンド

[yuta@localhost ~]$ rpm -ivh puppet-bolt-3.4.0-1.el8.x86_64.rpm

インストールに成功したら、次に鍵の設定を行っていきます。

SSH鍵認証の手順

ここからは、CentOSとSolarisの二つを同時に操作していきますので、teratermからファイル →「新しい接続」でSolarisにもログインをしておきます。(もし、Solarisにログインした際に、ホームディレクトリが無いというエラーが出ていた場合、sudoになって、作成しておいてください)

ちなみに自分は、/export/home/ユーザ名 というホームディレクトリが無いというエラーが出ていたので作りました笑 ← 無かったら絶対作ってください!(ディレクトリは 【# mkdir ディレクトリ名】で作成できます)

  • 今回はCentOSからSolarisの情報を取得するため、CentOSがクライアント、Solarisがサーバ側になります。

はじめにCentOS上で以下のコマンドを入力して、サーバへログイン認証する鍵を作成します。(.sshフォルダは勝手に作ってくれます)

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/yuta/.ssh/id_rsa): ← Enterキーを押します
Created directory '/home/yuta/.ssh'. ← ~/.ssh がない場合、ディレクトリを作成してくれます
Enter passphrase (empty for no passphrase): ← パスフレーズを入力します(入力しなくてもOK)
Enter same passphrase again: ← もう一度パスフレーズを入力します(入力しなくてもOK ↑入力してない場合)
Your identification has been saved in /home/yuta/.ssh/id_rsa.
Your public key has been saved in /home/yuta/.ssh/id_rsa.pub.
  • では、実際に公開鍵、秘密鍵が作られたかどうか、以下のコマンドで確認します。(以下、currentディレクトリがbinですが、lsでpath通してるので問題ないです)

コマンド

[yuta@localhost bin]$ ls /home/yuta/.ssh
id_rsa  id_rsa.pub  known_hosts
  • 上記、鍵ファイルの確認が取れましたので、次にSolaris(サーバ側)上に公開鍵(id_rsa.pubファイル)の転送を行います。以下のコマンドでエラーが出なければ、OKです。(ちなみに自分は、scp: ./id_rsa.pub: Permission deniedのようなエラーが出て、降参したので別の方法でやりました笑)
[yuta@localhost ~]$ scp /home/yuta/.ssh/id_rsa.pub ログイン先のユーザ名@ログイン先のホスト名かIP:

CentOSからSolarisにファイル転送(scp以外)

scpコマンドでファイル転送が出来なかった場合、無理やりですがSolaris上で以下の手順を行ってください!

①ホームディレクトリにいる状態でsudo(以下のコマンド参照)

コマンド

-bash-4.4$ pwd
/export/home/ユーザ名 ← Solarisにログインした際にいる階層(実質ログインして、何も考えずにsudoすればよい)
-bash-4.4$ sudo -s
Password:
root@solaris:/export/home/ユーザ名#

②CentOS上のid_rsa.pubファイルの内容を記載するファイルを作成して、CentOS上のid_rsa.pubファイル内を全てコピーして貼り付ける(以下コマンド参照)

コマンド

root@solaris:/export/home/ユーザ名# touch id_rsa.pub
root@solaris:/export/home/ユーザ名# ls
id_rsa.pub
root@solaris:/export/home/ユーザ名# vim id_rsa.pub
~ここにCentOS上のid_rsa.pubファイル内を全てを張り付ける
~
~
~
~
~
~
以下省略

③.sshファイルを作成し、authorized_keysファイルにid_rsa.pubファイルの内容を反映させる(以下コマンド参照)

コマンド

root@solaris:/export/home/ユーザ名# mkdir .ssh
root@solaris:/export/home/ユーザ名# cat id_rsa.pub >> authorized_keys → authorized_keysに反映
root@solaris:/export/home/ユーザ名# find / -name authorized_keys
/export/home/ユーザ名/.ssh/authorized_keys  → こうなっていればOK
root@solaris:/export/home/ユーザ名# cat /export/home/ユーザ名/.ssh/authorized_keys → これを入力して公開鍵の内容が出力されればOK

実際にboltコマンドを試してみる

ここまで来たら、boltコマンドが使える状態になったと思うのでCentOS上で以下コマンドを入力する

code

[yuta@localhost ~]$ find / -name bolt
省略
/usr/local/bin/bolt → このbinフォルダの階層に移動する
省略
[yuta@localhost ~]$ cd /usr/local/bin/
[root@localhost bin]$ ./bolt command run "echo hoge" --targets ユーザ名@IP
省略
Started on ユーザ名@IP
Finished on ユーザ名@IP
  hoge   → この表示がされていたらOK
Successful on 1 target: ユーザ名@IP
Ran on 1 target in 1.44 sec

最後に(主に躓いたこと)

  • サーバ側に鍵を配置する時は、配置するディレクトリは 「ホームディレクトリ/.ssh/authorized_keys」になるようにする → これをしてなかったから、権限エラーになり、終わりの見えない戦いが始まった感じがしていた笑
  • 知識がないため、注意する事か分からないが、サーバ側のパーミッションの設定で、.sshはdrwxr-xr-xauthorized_keysは-rw-r--r--にしたら、うまくboltコマンドが使えた
  • boltコマンドを実行する時は、sudoしていない状態でやったほうが良いと思う。(めんどくさそうなエラーが出るため)
  • boltコマンドで対象サーバから情報を取得する前に、一度SSH接続でクライアントからサーバ側にログインしておくとよい。

参考URL

https://qiita.com/gotohiro55/items/36a22516de2b381b3c6e
https://qiita.com/jinnai73/items/f1822f2e4d567847e215
https://qiita.com/shisama/items/5f4c4fa768642aad9e06
https://qiita.com/takuyanin/items/18590600d077df707923
https://puppet.com/docs/bolt/latest/running_bolt_commands.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0