私のソルト依存関係とシステムバージョンは次のとおりです。
#~: salt -V
Salt Version:
Salt: 3000
Dependency Versions:
cffi: 1.11.5
cherrypy: Not Installed
dateutil: Not Installed
docker-py: Not Installed
gitdb: Not Installed
gitpython: Not Installed
Jinja2: 2.8
libgit2: Not Installed
M2Crypto: 0.29.0
Mako: Not Installed
msgpack-pure: Not Installed
msgpack-python: 0.4.6
mysql-python: Not Installed
pycparser: 2.10
pycrypto: 2.6.1
pycryptodome: Not Installed
pygit2: Not Installed
Python: 2.7.18 (default, Apr 27 2020, 21:31:03) [GCC]
python-gnupg: Not Installed
PyYAML: 5.3.1
PyZMQ: 14.0.0
smmap: Not Installed
timelib: Not Installed
Tornado: 4.5.3
ZMQ: 4.0.4
System Versions:
dist: SuSE 12 x86_64
locale: UTF-8
machine: x86_64
release: 4.12.14-122.136-default
system: Linux
version: SUSE Linux Enterprise Server 12 x86_64
次のホスト名のリストを使用して、ソルトを使用して大規模なユーザーリストを作成しています。
for i in $(cat hostname_list.txt); do salt $i cmd.run "useradd -u 4441 -c \"John Doe \" -g 5900 -m jdoe" ; done ;
このコマンドは、ユーザーログインに関連するパスワードを生成しません。
このコマンドを使用してパスワードを作成しようとしましたが、うまくいきませんでした。
for i in $(cat hostname_list.txt); do salt $i user.passwd jdoe '<new Password>' ; done ;
まず、/etc/shadowファイルで暗号化されたパスワードを特定してパディングして、1つのホストのパスワードを設定しました。
for i in $(cat hostname_list.txt); do salt $i shadow.set_password jdoe 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
暗号化されたパスワードにgrepを持たないソリューションはありますか?
答え1
chpasswdツールで使用されます。
for i in $(cat hostname_list.txt); do salt $i cmd.run "echo 'jdoe:XXXXXXXX' | chpasswd" ; done ;