使っていますアンシプール供給Microsoft SQL Server 2017にセントOS 7.4ボックス。初めて経験しました。このガイドコマンドラインで動作しますが、最終的な目標はこれを「Ansible-ize」することです。ただし、コマンドラインツールをインストールする手順に達すると、スイッチ-y
はライセンスを承認するように機能しません。
[user@host ~]$ sudo yum install -y mssql-tools unixODBC-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package mssql-tools.x86_64 0:14.0.6.0-1 will be installed
--> Processing Dependency: msodbcsql < 13.2.0.0 for package: mssql-tools-14.0.6.0-1.x86_64
--> Processing Dependency: msodbcsql >= 13.1.0.0 for package: mssql-tools-14.0.6.0-1.x86_64
---> Package unixODBC-devel.x86_64 0:2.3.1-11.el7 will be installed
--> Running transaction check
---> Package msodbcsql.x86_64 0:13.1.9.1-1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
mssql-tools x86_64 14.0.6.0-1 packages-microsoft-com-prod 249 k
unixODBC-devel x86_64 2.3.1-11.el7 pwbank_repo 55 k
Installing for dependencies:
msodbcsql x86_64 13.1.9.1-1 packages-microsoft-com-prod 4.0 M
Transaction Summary
================================================================================
Install 2 Packages (+1 Dependent package)
Total size: 4.2 M
Installed size: 4.4 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
The license terms for this product can be downloaded from
https://aka.ms/odbc131eula and found in
/usr/share/doc/msodbcsql/LICENSE.TXT . By entering 'YES',
you indicate that you accept the license terms.
Do you accept the license terms? (Enter YES or NO)
YES
Installing : msodbcsql-13.1.9.1-1.x86_64 1/3
The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746949 and found in
/usr/share/doc/mssql-tools/LICENSE.txt . By entering 'YES',
you indicate that you accept the license terms.
Do you accept the license terms? (Enter YES or NO)
YES
Installing : mssql-tools-14.0.6.0-1.x86_64 2/3
Installing : unixODBC-devel-2.3.1-11.el7.x86_64 3/3
Verifying : msodbcsql-13.1.9.1-1.x86_64 1/3
Verifying : unixODBC-devel-2.3.1-11.el7.x86_64 2/3
Verifying : mssql-tools-14.0.6.0-1.x86_64 3/3
Installed:
mssql-tools.x86_64 0:14.0.6.0-1 unixODBC-devel.x86_64 0:2.3.1-11.el7
Dependency Installed:
msodbcsql.x86_64 0:13.1.9.1-1
Complete!
話すように求める前に警告があることがわかりました。RPMDBがyumの外で変更されました。これは、Microsoftがこのrpmを独自の方法で特別に変更したため、yumがこれを行う方法を知らないという意味ですか?
私の目標
上記は「手動」インストールに適用されますが、私は上記を「ansible-ize」しようとしています。私のスクリプトは、次のタスクを開始するまで機能しました。
- name: Upgrade all installed packages, and install new ones
package:
name: '{{item}}'
state: latest
with_items:
- '*'
- mssql-server
- mssql-tools
- unixODBC-devel
上記を再生すると、現在インストールされているすべてのパッケージが更新され、インストールされます。Microsoft SQL Server 2017いいですが、インストールしようとすると停止します。mssqlツールパッケージは、ユーザーがライセンスに同意するのを待っているためと仮定します。
私の質問
自分のプレイブックがユーザーがライセンスを受け入れるのを待たない場合、このインストールをどのように「有効にする」のですか?
sudo /opt/mssql/bin/mssql-conf setup
ボーナスポイントを獲得するには、画面に表示されるメッセージを実行して従う必要がある手順がありました。一度確認して出力ファイルを探して、新しいボックスを再構成するとコピーできないことを確認しています。それとも私が読んでいます。予想される。
答え1
- name: install mssql-server repo (CentOS, RedHat)
get_url:
url: "{{ centos_repo_url }}"
dest: /etc/yum.repos.d/mssql-server.repo
when: ansible_distribution in ['CentOS', 'RedHat']
- name: install mssql-server repo (Ubuntu)
get_url:
url: "{{ ubuntu_repo_url }}"
dest: /etc/apt/sources.list.d/mssql-server.list
when: ansible_distribution == 'Ubuntu'
- name: refresh apt-get cache for server repo (Ubuntu)
command: apt-get update
when: ansible_distribution == 'Ubuntu'
- name: install mssql-server package
package:
name: mssql-server
state: latest
- name: install mssql-tools package
package:
name: mssql-tools
state: latest
environment:
ACCEPT_EULA: 'y'
SQL Serverのインストールと構成(およびPacemaker管理可用性グループの作成)のサンプルマニュアルは、次の場所で入手できます。https://github.com/Microsoft/sql-server-samples/tree/master/samples/features/high%20availability/Linux/Ansible%20Playbook
答え2
これはツールのEULAに適用する必要があります。
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools unixodbc-dev
無人インストールでは、インストールプロセス中にほとんどの項目に環境変数またはコマンドラインオプションを指定できます。見て例: Red Hat Enterprise Linux 用の無人 SQL Server インストールスクリプト。
メモ:リンクのリポジトリがまだ古いRTM古いリポジトリを指していることがわかりました。使用してください今回の買戻契約私たちがそれらを訂正するとき。
答え3
rpm -ivh を使用し、インストーラを非対話式で実行する場合。上記の手順に従ってください。
Ubuntuとredat / ubi8-initでテスト済み
- ACCEPT_EULA='y' エクスポート
- rpm -ivh <パッケージ名>
Dockerfileで同じ目標を達成したい場合は、次のコマンドを使用します。
実行のエクスポート ACCEPT_EULA='y' && rpm -ivh msodbcsql****.rpm
ノート処置: エクスポートおよび rpm コマンドが単一の実行にのみ適用されることを確認してください。