質問:
このシナリオは、Ansibleのモジュールの使用方法を説明するために使用されます。
このためには、
ssh
という名前のサービスを停止して開始する必要があります。実行されるタスク: - fresco_module\tasksフォルダに存在するmain.ymlファイルにタスクを書きます。
タスクは、Ansibleのサービスモジュールを使用してssh
という名前のサービスを停止して開始することです。
ノート:
私のコード:
- 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 status
。 state:stopped
でこのコマンドを使用しましたが、sshd
はまだ実行されています。私はこの問題に直面しています。 state:restarted
でも試してみました。
IVEは以下を試してみましたが、同じ「SSHDランニング」出力を取得しましたが、ここに問題は私たちが1つのタスクの下で停止し始めることをお勧めします。また、再起動状態を使用することはできません。
-
name: "Stop ssh"
service:
name: ssh
state: stopped
-
name: "start ssh"
service:
name: ssh
state: started
_
こんにちはVivekとコミュニティへようこそ!
これは簡単なものになるはずです。停止して2つの別々のステップで起動せずに、サービスを直接再起動することをお勧めします。
次のコードが機能するはずです。
- hosts: localhost
become: yes
tasks:
- name: Stop and Start ssh
service:
name: ssh
state: restarted
このようにしてAnsibleは、SSHサービスが開始されたことを停止したことを確認します。 with_items
ループさえ必要ありません。
システムDのような他の多くのモジュールでこの問題を試してみましたが、まだ私はサービスを停止できませんでした。しかし、コマンドモジュールを使用し、「SUDO Service SSH Stop」を渡すと、サービスを停止できました。しかしそれでも問題に合格していません。フェリックスの答えを以前に試してみましたが、それでも渡すことができません。
また、誰かが「Ansible Choral | 5 | Ansible Roles問題」で私を助けることができるならば、素晴らしいでしょう。その問題でさえ、100%FSスコアを合格できなかった後でさえ。
再起動せずに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
を起動します。それからテストを提出するだけです。あなたはハンソンを渡します
---
- 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とタスクを停止として追加してサービスを開始します。
私は同じクエリを持っています。私は同じことをしましたが、そのような出力はできませんでした。常にSSHDを実行しています。だからこれは完全ではない理由です。