Ansible (12) ubuntuサーバを管理する

こんにちは。

クララオンライン グローバルソリューション事業部の吉村です。

 

これまで Ansible について、

私の場合、Ansible で ubuntu サーバにPlaybookを実行する時に、「あれっ動かない!なんで~・・・。」 というケースが良くあります。

同じくubuntu を普段利用しない方は、結構ハマってしまうのではないでしょうか。

ということで、今回は普段CentOSユーザが Ansible で ubuntu サーバを管理する時のポイントを、ご紹介します。

 

sudo か、 rootユーザに公開鍵認証でログイン

ubuntu はデフォルトでは、root ユーザにパスワード認証のログインができないです。

そのため、Ansible サーバからubuntuサーバに Playbook を実行しようとした時に、root 権限が必要なPlaybook が実行できなかったりします。

この場合は、

  1. Ansible サーバから一般ユーザで接続して、 sudo を利用してroot 権限を実行する
  2. Ansibleサーバから root ユーザの公開鍵認証を登録して、root ユーザでログインできるようにする

のどちらかの方法をとりましょう。

 

1の場合は、Ansibleサーバ側で sudo ユーザを指定するオプションがあります。

-s, –sudo run operations with sudo (nopasswd)

 

例えば、”apt-get update” のように実行時に root権限が必要なコマンドで見てみましょう。

-u オプションで rootユーザを指定して、SSH接続を試みるも、rootユーザではSSH接続できません。

一般ユーザではSSH接続出来るが、今度はrootパーミッションがないために、コマンドが実行できません。

そこで、-s オプションで、一般ユーザがsudoすると、コマンドが実行できます。

 

さらに、sudo 実行時にパスワードを求める設定の場合には、-K オプションを利用できます。

-K, –ask-sudo-pass ask for sudo password

sudo 実行時にパスワードが求められる場合、-K をつけないとタイムアウトを待つしかない・・・

-K を付けると、パスワードが求められるので、パスワードを入力してコマンドが実行されます。

 

また、Playbook の中でも

sudo: yes

と記載することで、sudo を行うように指定ができます。

 

 

 

2の場合は、ubuntuサーバ側でAnsibleサーバからrootユーザにSSH接続できるようにしちゃいましょう。
というか、

CentOSユーザからすれば、こちらの方が圧倒的に利用しやすい

と思います。

Ansible は鍵認証でのSSH接続を推奨しています。ubuntuサーバのrootユーザにパスワードを設定するよりもセキュリティ的に良いでしょう。

設定方法としては、

Ansibleサーバで、公開鍵、秘密鍵を作成

すると、ホームディレクトリの .ssh 配下に公開鍵(id_rsa.pub)と秘密鍵(id_rsa)が作成されます。

ubuntu サーバのrootユーザのホームディレクトリにAnsibleサーバの公開鍵(id_rsa.pub)を設置

これで、AnsibleサーバからubuntuサーバのrootユーザにパスワードなしでSSH接続ができるようになります。

あとは、root ユーザで Ansible のコマンドを実行してしまえば、パーミッションを気にする必要がないです。

 

 

 

 

apt module

CentOSサーバに対しては、 yum module  が用意されていましたが、ubuntu の場合にも apt module が用意されています。

パッケージの管理は、apt module を利用しましょう。

詳細は、Ansible 公式ドキュメントを確認するか、Ansibleサーバ上で、 “ansible-doc apt” を実行してください。

簡単なPlaybook tekitou.yml を書きます。

このPlaybookを実行します。

成功です。

結果、”apt-get update” のコマンドを実行したことと同じことが apt module でも出来ました。

 

 

今回はここまで!

Ansible うんぬんよりも ubuntu の勉強をする方が先かもしれませんね!

次回は、ついにきた!!!

 

「AWS(EC2) サーバを管理する」です。

 

お楽しみに!

 

Share on LinkedIn
LINEで送る
Pocket

吉村

吉村

クララオンライン グローバルビジネスストラテジー部でマーケティング担当として働いています。 クラウド関連技術と中国関連の情報をお届けしてます。 たまに DJ とかします。日本語RAPが大好きです。