Ansible的安装

关于Ansible安装

由於研究的需要,我决定使用Ansible,并且在安装过程中遇到了一些困难,所以现在我将说明如何处理。
在Ansible中,我将执行管理终端的关机操作。

实验环境

    • UbuntuServer 16.04 LTS

 

    • SSH

 

    • ## インストール

 

    • サーバ側

 

    AnsibleとPython2.7をインストールする。
$ sudo apt-get install ansible
$ sudo apt-get install python2.7

在客户端上安装Python Simplejson。

$ sudo apt-get install python-simplejson

这样就算是安装了所有必要的东西。

客户的设置

要在服务器和客户端之间建立连接,需要使用公钥认证。但是,为了避免费用,可以使用自签名证书而不必从认证机构那里获取证书。然而,认证是使用私钥而不是公钥进行的。此次操作不需要设置密码。一定要记得将私钥复制到服务器上。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/karuma/.ssh/id_rsa): ← Enterキーを押します
Created directory '/home/karuma/.ssh'. ← ~/.ssh がない場合、ディレクトリを作成します
Enter passphrase (empty for no passphrase): ← パスフレーズを入力します(今回は入力しない)
Enter same passphrase again: ← もう一度パスフレーズを入力します(今回は入力しない)
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/id_rsa*
$ chmod 700 ~/.ssh/
$ chmod 600 ~/.ssh/authorized_keys

服务器设定

    • ./ssh/config

 

    • /etc/ansible/hosts (任意の階層でよい)

 

    /etc/ansible/test.yml (任意の階層でよい)

需要注意的是上述的三点。此外,示例应根据自己的环境适时更改。

Host IPアドレス
    HostName IPアドレス
    User test
    Port 22
    UserKnownHostsFile /dev/null
    StrictHostKeyChecking no
    PasswordAuthentication no
    IdentityFile "秘密鍵の絶対座標"
    IdentitiesOnly yes
    LogLevel FATAL
[all]
(IPAddress) ansbile_ssh_user=(UserName) ansible_ssh_private_key_file=(秘密鍵の絶対座標)

[all:vars]
ansible_sudo_pass=(sudoパスワード)

出于Qiita的设计要求,在hosts后面加上”.”才能指定文件名。将(IPAddress) = 127.0.0.1替换为上述形式。

只需要一种选项:通过将[test:vars]设置为[test]中所述的所有终端设备指定相同的配置。在这个例子中,指定了sudo密码。

---
- hosts:all
  always_run:yes
  tasks:
    - name: shutdown
      Command: shutdown -h now

确认行动

确认可以与由Ansible管理的终端进行连通的功能。

$ ansible all -m ping
図3.png

如果出现这样的表现,就算是成功了。

接下来试着进行关机。

$ ansible-playbook /etc/ansible/shutdown.yml --check -s
図4.png

当进行本次动作检查时,添加了”–check”,但实际使用时不必要。

此外,這個圖片中存在一個錯誤,我們打算進一步查明原因。
然而,我們已經確認管理端末可以正常關機。
這個錯誤的原因是在Ansible連接SSH時,管理端末被關機而導致連接斷開。
因此,我們可以通過修改以下內容正常結束Ansible。
將指令從”現在”更改為”1″,這樣1分鐘後執行關機。

---
- hosts:all
  always_run:yes
  tasks:
    - name: shutdown
      Command: shutdown -h 1
广告
将在 10 秒后关闭
bannerAds