ansible制御windowsの公式翻訳
11131 ワード
Ansible制御windows
1、Windowsでの作業方法
ansibleでlinuxを制御するときはssh方式でwindowsではpower shellを使用し、クライアントマシンにもクライアントを装着する必要はありません.
Windowsマシンを制御する際に使用するモジュールは「winrm」です.
2、制御機に取り付ける
linux制御マシンにモジュールwinrmをインストールします.
pip install "pywinrm>=0.1.1"
3、ダイナミックディレクトリのサポート
ダイナミックディレクトリのdomainアカウントに接続する場合は、python-kerberosモジュールをコントローラにインストールし、MIT krb 5ライブラリをインストールする必要があります.また、ダイナミックディレクトリで正しいアカウントを構成する必要があります.
3.1 python-kerberosのインストール依存
3.2 python-kerberosのインストール
インストール時に次のコマンドを実行します.
3.3 kerberosの構成
プロファイル/etc/krb 5を編集します.confは、接続したいdomainごとに次の情報を追加します.
次の最初のセクションを見つけます.
domainのフルネームを追加し、次の例のように、プライマリおよびセカンダリのダイナミックディレクトリドメインのフルネームを追加します.
接続するドメインを「domain_realm」セクションに追加します.
3.4 kerberos接続のテスト
krb 5-workstation(yum)またはkrb 5-user(apt_get)がインストールされている場合は、ドメインコントローラによって許可されているかどうかを次のコマンドでテストできます.
ドメインの部分はフルネームで、すべて大文字でなければなりません.
取得したticketsを表示します.コマンドは次のとおりです.
3.5 kerberos接続の問題の解決
kerberosを使用して接続できない場合は、次の問題を確認します.
順方向と逆方向のDNSがドメイン内で正常に解析できることを確保し、この解析を行うときは、まずpingサーバの名前、それからnslookupサーバのipアドレス、サーバの名前を返します
返されたサーバ名とpingのサーバ名が一致しない場合、ダイナミックディレクトリのDNNSScavengingがオンであり、DNSとDHCPが互いに更新されていることを確認します.
ansibleコントローラがdomainでアカウント属性を構成していることを確認します.
ドメインコントローラでansibleコントローラがクロック非同期であることを確認し、kerberosは時間に敏感であり、少しの時間のばらつきがticketsの失効を招く.
ドメインのフルネームが使用されていることを確認し、次のコマンドを使用して確認します.
異なるドメイン名名を取得する場合は、プロファイルkrb 5を更新する必要があります.confは、ドメインのフルネームを使用します.
4、 inventory
ansibleのwindowsに対するサポートは、ユーザー名、パスワード、接続タイプ(windows)を表すいくつかの一般的な変数に依存し、以下に示す.
グループでvars/windows.ymlでは、次のinventory変数を定義します.
5、Powershellバージョンについて
Powershellは3.0以降で、windows 7 sp 1、windows server 2008 sp 1、以降のバージョンのみサポートされています.
6、利用可能なモジュール
Windowsでサポートされているモジュールは、次のWebサイトで入手できます.
http://docs.ansible.com/ansible/list_of_windows_modules.html
Powershellスクリプトを実行するにはscriptモジュールを使用するか、playbookで次のように使用します.
注意一部のモジュールはwinで始まるのではなく、以下のようにします.
“slurp”, “raw”, and “setup”
7、windowsのfactを得る
8、Windowsのプレイブックの例
次の例では、Powershellスクリプトをプッシュおよび実行する例を示します.
単一のコマンドを実行する場合はrawモジュールを使用し、linuxではcommandまたはshellモジュールを使用します.
DOSコマンドを実行するときは、CMD/Cの先頭を使用し、次のように二重引用符で含めることができます.
最後の例はwin_statモジュールはファイルが存在するかどうかをテストします.返される日付はlinuxと少し違います.
転載先:https://www.cnblogs.com/kellyseeme/p/5525074.html
1、Windowsでの作業方法
ansibleでlinuxを制御するときはssh方式でwindowsではpower shellを使用し、クライアントマシンにもクライアントを装着する必要はありません.
Windowsマシンを制御する際に使用するモジュールは「winrm」です.
2、制御機に取り付ける
linux制御マシンにモジュールwinrmをインストールします.
pip install "pywinrm>=0.1.1"
3、ダイナミックディレクトリのサポート
ダイナミックディレクトリのdomainアカウントに接続する場合は、python-kerberosモジュールをコントローラにインストールし、MIT krb 5ライブラリをインストールする必要があります.また、ダイナミックディレクトリで正しいアカウントを構成する必要があります.
3.1 python-kerberosのインストール依存
# Via Yum
yum -y install python-devel krb5-devel krb5-libs krb5-workstation
# Via Apt (Ubuntu)
sudo apt-get install python-dev libkrb5-dev
# Via Portage (Gentoo)
emerge -av app-crypt/mit-krb5
emerge -av dev-python/setuptools
# Via pkg (FreeBSD)
sudo pkg install security/krb5
# Via OpenCSW (Solaris)
pkgadd -d http://get.opencsw.org/now
/opt/csw/bin/pkgutil -U
/opt/csw/bin/pkgutil -y -i libkrb5_3
# Via Pacman (Arch Linux)
pacman -S krb5
3.2 python-kerberosのインストール
インストール時に次のコマンドを実行します.
pip install kerberos
3.3 kerberosの構成
プロファイル/etc/krb 5を編集します.confは、接続したいdomainごとに次の情報を追加します.
次の最初のセクションを見つけます.
[realms]
domainのフルネームを追加し、次の例のように、プライマリおよびセカンダリのダイナミックディレクトリドメインのフルネームを追加します.
[realms]
MY.DOMAIN.COM = {
kdc = domain-controller1.my.domain.com
kdc = domain-controller2.my.domain.com
}
接続するドメインを「domain_realm」セクションに追加します.
[domain_realm]
.my.domain.com = MY.DOMAIN.COM
3.4 kerberos接続のテスト
krb 5-workstation(yum)またはkrb 5-user(apt_get)がインストールされている場合は、ドメインコントローラによって許可されているかどうかを次のコマンドでテストできます.
kinit [email protected]
ドメインの部分はフルネームで、すべて大文字でなければなりません.
取得したticketsを表示します.コマンドは次のとおりです.
klist
3.5 kerberos接続の問題の解決
kerberosを使用して接続できない場合は、次の問題を確認します.
順方向と逆方向のDNSがドメイン内で正常に解析できることを確保し、この解析を行うときは、まずpingサーバの名前、それからnslookupサーバのipアドレス、サーバの名前を返します
返されたサーバ名とpingのサーバ名が一致しない場合、ダイナミックディレクトリのDNNSScavengingがオンであり、DNSとDHCPが互いに更新されていることを確認します.
ansibleコントローラがdomainでアカウント属性を構成していることを確認します.
ドメインコントローラでansibleコントローラがクロック非同期であることを確認し、kerberosは時間に敏感であり、少しの時間のばらつきがticketsの失効を招く.
ドメインのフルネームが使用されていることを確認し、次のコマンドを使用して確認します.
kinit -C [email protected]
klist
異なるドメイン名名を取得する場合は、プロファイルkrb 5を更新する必要があります.confは、ドメインのフルネームを使用します.
4、 inventory
ansibleのwindowsに対するサポートは、ユーザー名、パスワード、接続タイプ(windows)を表すいくつかの一般的な変数に依存し、以下に示す.
[windows]
winserver1.example.com
winserver2.example.com
グループでvars/windows.ymlでは、次のinventory変数を定義します.
# it is suggested that these be encrypted with ansible-vault:
# ansible-vault edit group_vars/windows.yml
ansible_user: Administrator
ansible_password: SecretPasswordGoesHere
ansible_port: 5986
ansible_connection: winrm
# The following is necessary for Python 2.7.9+ when using default WinRM self-signed certificates:
ansible_winrm_server_cert_validation: ignore
5、Powershellバージョンについて
Powershellは3.0以降で、windows 7 sp 1、windows server 2008 sp 1、以降のバージョンのみサポートされています.
6、利用可能なモジュール
Windowsでサポートされているモジュールは、次のWebサイトで入手できます.
http://docs.ansible.com/ansible/list_of_windows_modules.html
Powershellスクリプトを実行するにはscriptモジュールを使用するか、playbookで次のように使用します.
- hosts: windows
tasks:
- script: foo.ps1 --argument --other-argument
注意一部のモジュールはwinで始まるのではなく、以下のようにします.
“slurp”, “raw”, and “setup”
7、windowsのfactを得る
ansible winhost.example.com -m setup
8、Windowsのプレイブックの例
次の例では、Powershellスクリプトをプッシュおよび実行する例を示します.
- name: test script module
hosts: windows
tasks:
- name: run test script
script: files/test_script.ps1
単一のコマンドを実行する場合はrawモジュールを使用し、linuxではcommandまたはshellモジュールを使用します.
- name: test raw module
hosts: windows
tasks:
- name: run ipconfig
raw: ipconfig
register: ipconfig
- debug: var=ipconfig
DOSコマンドを実行するときは、CMD/Cの先頭を使用し、次のように二重引用符で含めることができます.
- name: another raw module example
hosts: windows
tasks:
- name: Move file on remote Windows Server from one location to another
raw: CMD /C "MOVE /Y C:\teststuff\myfile.conf C:\builds\smtp.conf"
最後の例はwin_statモジュールはファイルが存在するかどうかをテストします.返される日付はlinuxと少し違います.
- name: test stat module
hosts: windows
tasks:
- name: test stat module on file
win_stat: path="C:/Windows/win.ini"
register: stat_file
- debug: var=stat_file
- name: check stat_file result
assert:
that:
- "stat_file.stat.exists"
- "notstat_file.stat.isdir"
- "stat_file.stat.size>0"
- "stat_file.stat.md5"
転載先:https://www.cnblogs.com/kellyseeme/p/5525074.html