IBM Cloud 上的 Ansible 与同一云端的 Windows 通信的备注,直到互通为止

在IBM云上下单VSI。

我在IBM Cloud上准备了以下环境,并且准备了Ansible的执行环境。
– 1台Windows Server 2016(本次为虚拟服务器01)
– 1台RHEL 7.7(本次为虚拟服务器02)

$cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.7 (Maipo)

本次将记录在RHEL上引入Ansible AWX之后,直到Windows Server的通信确认。

1. 根据环境进行RHEL环境确认(根据实际情况进行修改)。

确保/etc/hosts文件中包含Windows的目标地址。

123.456.789.123 virtualserver02.hogehoge.cloud virtualserver02
123.456.789.124 virtualserver01

2. 将以下内容添加到/etc/ansible/hosts文件中。

[windows]
virtualserver01
[windows:vars]
ansible_user=Administrator
ansible_passwordhogehoge
ansible_port=5986
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore

[rhel7]
virtualserver02
[rhel7:vars]
#ansible_ssh_user=ansible_ssh
ansible_user=ansible_ssh
#ansible_ssh_private_key_file=/home/ansible_ssh/.ssh/id_rsa.pub
#ネットの事例だと、id_rsa.pubなど共通鍵ファイルを記載しているものもあるが失敗する
ansible_ssh_private_key_file=/home/ansible_ssh/.ssh/id_rsa
#秘密鍵ファイルをきちんと記載する

3. 创建ansible_ssh用户

$useradd ansible_ssh #ユーザー作成
$groups ansible_ssh #グループに追加
$su - ansible_ssh #ansible_sshにsu
$cd ~/
$ssh-keygen -t rsa #秘密鍵の作成(よしなに作る)

4. 钥匙认证的设置

$cd ~/.ssh
$cat id_rsa.pub > authorized_keys
$chmod 600 authorized_keys

5. sudoers配置

$cp -p /etc/sudoers /etc/sudoers.bak
$visudo
## Allow root to run any commands anywhere
hoge1   ALL=(ALL)       ALL
hoge2    ALL=(ALL)       ALL
ansible_ssh     ALL=(ALL)       ALL #追記
## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
%ansible_ssh    ALL=(ALL)       NOPASSWD: ALL #追記

6 SSHD配置

$cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.org
$vi /etc/ssh/sshd_config
[末尾に下記を追記]
Match User ansible_ssh
        PubkeyAuthentication yes
        PasswordAuthentication no

$systemctl restart sshd

※[ansible_ssh] $ 使用密钥认证登录 virtualserver02 的 SSH,
并确认可以使用 sudo -i 命令而无需输入密码。

完成这些工作后,已经实现了从RHEL到Windows的通信。
※没有访问密钥文件的权限的用户无法执行(可以使用ansible_ssh执行)。

Windows的设置

请事先确认已安装.NET Framework的4.0版本。

将 Windows 服务器附加到 ansible/hosts 文件中

[windows]
virtualserver01
[windows:vars]
ansible_user=Administrator
ansible_password=xxxxxxxxxxxxxxx
ansible_port=5986
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore

pip的安装

使用easy_install安装pip

使用Python2的pip命令安装pywinrm模块:
python2 -m pip安装pywinrm

这样,Windows端的设置就完成了。

确保联络畅通

ansible windows -m win_ping -i /etc/ansible/hosts
/usr/lib/python2.7/site-packages/ansible/parsing/vault/__init__.py:44: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in a future release.
  from cryptography.exceptions import InvalidSignature
virtualserver01 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

image.png
image.png

使用以下命令检查WinRM侦听器:
winrm enumerate winrm/config/litener

请安装pywinrm

广告
将在 10 秒后关闭
bannerAds