• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Fork me on GitHub
            隨筆 - 215  文章 - 13  trackbacks - 0
            <2017年11月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789


            專注即時通訊及網游服務端編程
            ------------------------------------
            Openresty 官方模塊
            Openresty 標準模塊(Opm)
            Openresty 三方模塊
            ------------------------------------
            本博收藏大部分文章為轉載,并在文章開頭給出了原文出處,如有再轉,敬請保留相關信息,這是大家對原創作者勞動成果的自覺尊重!!如為您帶來不便,請于本博下留言,謝謝配合。

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            相冊

            Awesome

            Blog

            Book

            GitHub

            Link

            搜索

            •  

            積分與排名

            • 積分 - 216905
            • 排名 - 118

            最新評論

            閱讀排行榜

            http://blog.csdn.net/kellyseeme/article/details/50636813

            1、    Windows下如何工作

            在ansible控制linux的時候,用的是ssh的方式,在windows中,使用的是power shell,在客戶端機器上也是不用裝任何客戶端的。

            在控制windows機器的時候,使用的模塊為“winrm“。

            2、    在控制機上安裝

            在linux控制機器上安裝模塊winrm:

            pip install "pywinrm>=0.1.1"

             

            3、    動態目錄的支持

            如果想連接動態目錄下的domain賬戶,那么必須安裝python-kerberos模塊在控制機上,并且需要安裝MIT krb5庫。還需要在動態目錄中配置正確的賬戶。

            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/krb5.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連接

            如果安裝了krb5-workstation(yum)或者krb5-user(apt_get),那么可以用如下的命令測試是否被域控制器授權:

            kinit user@MY.DOMAIN.COM

             

            注意域的部分必須是全稱,并且必須全部為大寫。

            查看獲得的tickets,可以使用命令如下:

            klist

             

            3.5 解決kerberos連接問題

            如果使用kerberos不能進行連接,那么檢查下列問題:

             

            確保正向和反向DNS在域中能正常解析,在做這個解析的時候,首先ping服務器的名稱,然后nslookup服務器的ip地址,會返回服務器的名稱

            如果在返回的服務器名稱和ping的服務器名稱不一致,檢查動態目錄中的DNSScavenging 是開啟的,并且DNS和DHCP是相互更新的;

             

            確保ansible控制機在domain中配置了賬戶屬性。

            檢查ansible控制機的在域控制器中是時鐘異步的,kerberos是對時間敏感的,一點時間的偏差會導致tickets失效

             

            確保用的是域全名稱,可以使用下面的命令進行檢查:

            kinit -C user@MY.DOMAIN.COM
            klist

             

            當獲取到不同的域名稱的時候,必須更新配置文件krb5.conf,在其中使用域的全名稱。

            4、    inventory

            ansible對windows的支持依賴于幾個常用的變量來表示用戶名,密碼,連接類型(windows),如下所示:

            [windows]
            winserver1.example.com
            winserver2.example.com

             

             

            在group_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版本或者更高,只有windows7 sp1,windows server 2008 sp1,和以后的版本支持。

            6、    哪些模塊是可用的

            Windows支持的模塊在以下網址中可以找到:

            http://docs.ansible.com/ansible/list_of_windows_modules.html

            可以使用script模塊來運行powershell腳本,也可以在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的playbook例子

            下面例子表示推送和運行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"

             

             

            posted on 2017-11-10 10:34 思月行云 閱讀(795) 評論(1)  編輯 收藏 引用 所屬分類: 服務器\Ops

            FeedBack:
            # re: Ansible 控制 Windows 2017-11-10 10:36 思月行云
            91秦先生久久久久久久| 久久无码专区国产精品发布| 亚洲AV无码久久| 波多野结衣中文字幕久久| 久久精品蜜芽亚洲国产AV| 香港aa三级久久三级| 无码精品久久一区二区三区 | 人妻精品久久无码专区精东影业| 亚洲午夜久久久久久久久久| 欧美精品一区二区精品久久| 香蕉久久永久视频| 久久99国产精一区二区三区| 伊色综合久久之综合久久| 99国产欧美久久久精品蜜芽| 久久人搡人人玩人妻精品首页| 久久人妻少妇嫩草AV无码专区| 久久综合成人网| 国内精品久久久久国产盗摄| 久久精品国产亚洲77777| 久久频这里精品99香蕉久| 国产福利电影一区二区三区久久久久成人精品综合 | 国产精品一区二区久久| 热99RE久久精品这里都是精品免费 | 婷婷久久久亚洲欧洲日产国码AV | www.久久热| 欧美黑人又粗又大久久久| 国产香蕉久久精品综合网| 久久青青草原精品国产软件| 久久精品国产久精国产思思| 国内精品伊人久久久久777| 日韩十八禁一区二区久久| 99久久精品免费国产大片| 久久91亚洲人成电影网站| 久久精品人人做人人妻人人玩| 精品熟女少妇AV免费久久| 久久亚洲sm情趣捆绑调教| 性欧美大战久久久久久久| 久久亚洲国产成人精品无码区| 国产亚洲成人久久| 久久精品这里只有精99品| 欧美午夜A∨大片久久 |