FreeIPAを効果的に使用するための便利なヒントのセット





FreeIPAの運用中、あまりよく文書化されていない場所や不完全に実装された場所に依存する重要なタスクがしばしば発生します。 したがって、時間を節約できる解決策を以前の記事に追加することにしました。



内容:



  1. lxcコンテナ内のFreeIPAエージェント
  2. PythonでAPIを使用するためのライブラリ
  3. Ansibleモジュールについて一言
  4. DebianのFreeIPAエージェント
  5. Amazonのレプリカ


lxcコンテナ内のFreeIPAエージェント



開発環境では、場所によっては、Proxmoxやlxcコンテナーなどを使用します。 コンテナのテンプレートは、カスタマイズした標準centos-7-defaultバージョン20170504で取得されました。 しかし、エージェントの平凡なインストールで、彼は働くことを拒否しました。 分析後、このアセンブリにはsudoを含むパッケージはなく、コンテナにはSELinuxがないことがわかりました。 だから、ポイントで、何をする必要があります:





エージェントのインストールおよび構成中にすべてがエラーなしで実行された場合、再起動後にすべてが機能し始めます。



Ansibleを使用して構成を展開する場合、変数を使用できます。



ansible_virtualization_role == "guest" and ansible_virtualization_type == "lxc"
      
      





PythonでAPIを使用するためのライブラリ



FreeIPAの最新バージョンにすばらしいAPIが登場しましたが、Python用の本格的なライブラリは見つかりませんでした。 githubにはリポジトリがありますが、それでは十分ではないことがわかりました。 ソリューションはMITライセンスの下で配布されるため、それをコピーして自分で補足することにしました。 私たちの実装はこのリンクで利用可能です。



必要に応じて終了しますが、今すぐ選択して終了し、変更をマージできます。 現時点では、必要なものだけが実装されています。



Ansibleモジュールについて一言



私はすぐに予約します、私たちはpipを通してインストールされたAnsible 2.3.1.0のバージョンについて話します。 一般に、ユーザーとグループを追加するモジュールは正常に機能します。 しかし、sudorolesを追加するとき、いくつかの問題がありました。 最初の、最も不快な-彼らは単に追加されていません。 エラーは次のようになります。



 get_sudorule_diff() takes exactly 2 arguments (3 given)
      
      





それは急いで扱われ、非常に初歩的です。 ipa_sudorule.pyモジュールファイルでは、307行目が必要です。これは次のとおりです。



 diff = get_sudorule_diff(client, ipa_sudorule, module_sudorule)
      
      





これに変更します:



 diff = get_sudorule_diff(ipa_sudorule, module_sudorule)
      
      





追加を開始します。 これについてはこちらこちらで読むことができますが、まだ確認していません。



2番目の問題は、近い将来対処する予定のsudorolesのオプションの追加に関連しています。



DebianのFreeIPAエージェント



何らかの理由で、Debianのようなシステムにエージェントをインストールすると、一部の人にとって問題が発生します。 debianのようなシステムでのエージェントの展開のバージョンの概要を説明します。



 1.   wget -qO - http://apt.numeezy.fr/numeezy.asc | apt-key add - echo -e 'deb http://apt.numeezy.fr jessie main' >> /etc/apt/sources.list 2.   apt-get update apt-get install -y freeipa-client 3.   mkdir -p /etc/pki/nssdb certutil -N -d /etc/pki/nssdb mkdir -p /var/run/ipa 4.    mv /etc/ipa/default.conf ~/ 5.     ipa-client-install 6.    echo 'session required pam_mkhomedir.so' >> /etc/pam.d/common-session 7. ,   /etc/nsswitch.conf   sss  passwd: files sss group: files sss shadow: files sss 8.  sssd systemctl restart sssd
      
      





Amazonのレプリカ



ご存知のように、Amazonでは、外部アドレスはホスト上で直接示されていません。 そして、インストーラーは本当にそれを好きではありません。 一般に、これはAmazonだけでなく、外部アドレスがホストで直接設定されていないすべてのオプションにも当てはまります。



インストール中にこの問題を解決するには、インストール中に任意のインターフェースに外部IPを追加するだけで十分です。 例として、これはip addr addを使用して実行できます。



 ip addr add $ADDR dev $IFACE
      
      





ip addr delを使用したインストールと設定が成功した後:



 ip addr del $ADDR
      
      





また、外部アドレスと内部アドレスに異なるDNS名を指定することを忘れないでください。指定しないと混乱が生じます。



その結果、lxcおよびdebianのようなシステムのクライアントは本物であり、特別な問題がないことがわかります。 これらのすべてのソリューションは、目立った問題もなく、かなり長い間私たちのために働いてきました。 Ansibleを介したフルアクセスの管理はあまり便利ではありませんが、ルーチンの一部を高速化および自動化できます。 Pythonのライブラリに関しては-まだ実装するものがたくさんありますが、すべての基本的な機能は既にそこにあります。 ただし、新しいアイデアも歓迎します。



All Articles