Ansibleの通常ユーザーsudoがコマンドを実行します。
I. アプリケーションシナリオ
1. Linux マシンはすべて root のリモートログインを無効にし、ユーザーファイルの配布を切り替えるために ansible が必要です。
II. 実験ステップ
1. リソースマニフェストのホストファイルを設定する
[root@master playbook]# cat /etc/ansible/hosts
[test_su]
192.168.1.232 ansible_ssh_user=saas ansible_ssh_pass='xE#bH2bmot3sz' ansible_become_pass='9Cg6Rxjlvtfx^'
192.168.1.233 ansible_ssh_user=saas ansible_ssh_pass='xE#bH2bmot3sz' ansible_become_pass='9Cg6Rxjlvtfx^'
-
注意事項
- パスワード部分はシングルクォートで囲んでください。
- バージョン2.5では、変数も変更され、以前のansible_sudo_passまたはansible_su_passに代わり、ansible_become_passが使用されるようになりました。
- sshpass は Ansible の通常ユーザー sudo コマンドに必要です。sshpass モジュールは synchronize モジュールと衝突するため、代わりに copy モジュールを使用します。
2. Ansileクライアントは、rootの直接リモートログインを無効にし、通常のユーザーsaasを作成します。
[root@master playbook]# grep -i "^PermitRootLogin" /etc/ssh/sshd_config
PermitRootLogin no
[root@master playbook]# systemctl restart sshd
3. Ansibleサーバー側配布ファイル
[root@master playbook]# ansible test_su -S -R root -m copy -a "src=/etc/hosts dest=/etc/hosts"
4. Ansibleの通常ユーザーsudoがコマンドを実行する
[root@master playbook]# ansible test_su -S -R root -m shell "whoami"
5. パラメータの解釈
-S, -su su で操作を実行する(非推奨、became を使用)。
-R SU_USER, -su-user=SU_USER
このユーザー(デフォルト=root)でsuを使った操作を実行します。
(非推奨、becomeを使用)
-Rの後にユーザ名が続く。-Sはその前でも後でもよい。
この時点で、クライアントのメッセージログに関連する情報が表示されます。
6. 通常ユーザのホームディレクトリが存在し,通常ユーザに書き込み権限がないと,認証失敗のエラーとなることに注意してください.
[root@master playbook]# vim /etc/ansible/ansible.cfg
[defaults]
# some basic default values...
#inventory = /etc/ansible/hosts
#library = /usr/share/my_modules/
#module_utils = /usr/share/my_module_utils/
#remote_tmp = ~/.ansible/tmp #default to home directory
remote_tmp = /tmp/.ansible/tmp #Change to tmp directory
#local_tmp = ~/.ansible/tmp
#plugin_filters_cfg = /etc/ansible/plugin_filters.yml
#forks = 5
#poll_interval = 15
#sudo_user = root
#ask_sudo_pass = True
#ask_pass = True
#transport = smart
#remote_port = 22
#module_lang = C
#module_set_locale = False
#tmp directory usually has write access, just change it to a temporary directory under /tmp
関連
-
Racer版 - CentOS7システムインストールと構成図のチュートリアル
-
LinuxでのPythonとpipのインストールと "AttributeError: module 'pip.__main__' has no attribute '_main'エラー"
-
undefinedmakefile のエラー *** セパレータがありません。
-
ConnectionRefusedErrorです。[Errno 111] 接続が拒否されました。
-
変数 "xxx" はイニシャライザを持ちますが、型は不完全です。
-
VNC mesg を開くとき: ttyname に失敗しました。デバイスに不適切な ioctl
-
セキュアネットワーク(sshポートマッピング) -----図の詳細を使用することができます。
-
centos - centos7でcrontabを使用してmysqlのスケジュールバックアップを行う。
-
pip: コマンドが見つかりません
-
centos - centos7 で Python プログラムをバックグラウンドで実行する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
"collect2: error: ld returned 1 exit status" の解決法
-
undefinedmakefile:n: *** セパレータがありません。
-
[シェルプログラミング】シェルスクリプトの実行エラー: シンタックスエラー: 予期せぬファイルの終了
-
MongoDBインストール+解決エラー。mongod.service の起動に失敗しました:until not found
-
Ubuntu next install nginx,make: *** `default'が必要とする `build' をターゲットとするルールがありません。停止します。
-
Linux "std::bad_allocのインスタンスを投げた後に呼び出されたterminate what(): std::bad_alloc Aborted "
-
Linuxでビジー状態のテキストファイルでプログラムを実行する場合の対処法
-
nginx: [emerg] 0.0.0.0:80 への bind() に失敗しました (13: Permission denied)。
-
コンピュータに利用可能なGPUデバイスがあるかどうかを確認する
-
dpkg: パッケージの処理エラー ***(--install): 依存関係の問題 - 未設定にする