web-dev-qa-db-ja.com

`ssh`サービスを停止して開始するためのAnsibleモジュール

質問:

このシナリオは、Ansibleのモジュールの使用方法を説明するために使用されます。

このためには、sshという名前のサービスを停止して開始する必要があります。

実行されるタスク: - fresco_module\tasksフォルダに存在するmain.ymlファイルにタスクを書きます。

タスクは、Ansibleのサービスモジュールを使用してsshという名前のサービスを停止して開始することです。

ノート:

  • Project Installを実行してAnSible.MainPlayBook.ymlファイルをインストールするためのインストールを実行します。
  • Ansible-PlayBookのインベントリのLOCALHOSTを使用してください。

私のコード:

- hosts: localhost
  become: yes
  tasks:
  - name: Stop and Start ssh
    service:
      name: ssh
      state: "{{ item }}"
    with_items:
      - stopped
      - started

出力:

PLAY [localhost] *******************************************************************************

TASK [Gathering Facts] *************************************************************************
[DEPRECATION WARNING]: Distribution Ubuntu 16.04 on Host localhost should use /usr/bin/python3,
 but is using /usr/bin/python for backward compatibility with prior Ansible releases. A future 
Ansible release will default to using the discovered platform python for this Host. See 
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more 
information. This feature will be removed in version 2.12. Deprecation warnings can be disabled
 by setting deprecation_warnings=False in ansible.cfg.
ok: [localhost]

TASK [Stop and Start ssh] **********************************************************************
changed: [localhost] => (item=stopped)
ok: [localhost] => (item=started)

PLAY RECAP *************************************************************************************
localhost                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

問題:サービスはすでにAnsible Stopped ITを実行しています。これはSSHDが最初の場所で停止しなかったようです。

コマンドステータスを確認するために使用されます。service ssh statusstate:stoppedでこのコマンドを使用しましたが、sshdはまだ実行されています。私はこの問題に直面しています。 state:restartedでも試してみました。

3
VIVEK GAUR

IVEは以下を試してみましたが、同じ「SSHDランニング」出力を取得しましたが、ここに問題は私たちが1つのタスクの下で停止し始めることをお勧めします。また、再起動状態を使用することはできません。

-
  name: "Stop ssh"
  service:
    name: ssh
    state: stopped


-

  name: "start ssh"
  service:
    name: ssh
    state: started
 _
1
felix

こんにちはVivekとコミュニティへようこそ!

これは簡単なものになるはずです。停止して2つの別々のステップで起動せずに、サービスを直接再起動することをお勧めします。

次のコードが機能するはずです。

- hosts: localhost
  become: yes
  tasks:
  - name: Stop and Start ssh
    service:
      name: ssh
      state: restarted

このようにしてAnsibleは、SSHサービスが開始されたことを停止したことを確認します。 with_itemsループさえ必要ありません。

1
Thorian93

システムDのような他の多くのモジュールでこの問題を試してみましたが、まだ私はサービスを停止できませんでした。しかし、コマンドモジュールを使用し、「SUDO Service SSH Stop」を渡すと、サービスを停止できました。しかしそれでも問題に合格していません。フェリックスの答えを以前に試してみましたが、それでも渡すことができません。

また、誰かが「Ansible Choral | 5 | Ansible Roles問題」で私を助けることができるならば、素晴らしいでしょう。その問題でさえ、100%FSスコアを合格できなかった後でさえ。

0
Carlito_15

再起動せずにSSHサービスの開始を停止するためにプレイブックを実行するだけです。またはこれを使用してください

-
  name: "Stop ssh"
  service:
    name: ssh
    state: stopped


-

  name: "start ssh"
  service:
    name: ssh
    state: started

プレイブックを正常に実行した後。 Sudo serivce ssh stopでサービスを停止してから、サービスSudo service ssh startを起動します。それからテストを提出するだけです。あなたはハンソンを渡します

0
Carlito_15
---
- hosts: localhost
  connection: local
  become: true
  become_method: Sudo
  tasks:
    - name: stop a service
      service:
        name: ssh
        state: stopped
    - name: start a service
      service:
        name: ssh
        state: started
 _

メソッドsudoとタスクを停止として追加してサービスを開始します。

0
Arun AV

私は同じクエリを持っています。私は同じことをしましたが、そのような出力はできませんでした。常にSSHDを実行しています。だからこれは完全ではない理由です。

0
Niladri Saha