Versi:
Metode penginstalan:
Saya menginstal Ansible dengan cara berikut:
TARGET="/tmp/mungkin01" sudo apt-get install python-setuptools sudo easy_install virtualenv cd $TARGET && virtualenv memungkinkan sumber $TARGET/ansible/bin/activate pemasangan pip dimungkinkan an
Deskripsi:
Menggunakan buku pedoman ini (salin/tempel dari dokumentasi) kueri mysql pada klien dapat benar-benar membuat pengguna. Tapi itu gagal untuk menerapkan hak istimewa.
- nama: Mengatur Kata Sandi Pengguna Galera mysql_user: login_user={{ mysql_user }} login_password={{ mysql_password }} name={{ galera_user }} password={{ galera_password }} state=present priv=*.*:ALL
Kesalahan dilemparkan:
REMOTE_MODULE mysql_user login_user=root login_password=nama penasaran=elvis password=spring state=present priv=*.*:ALL fatal: [c6-4] => gagal menguraikan: Traceback (panggilan terakhir terakhir): File "/root/.ansible/tmp/ansible-1380442867.96-101659379289717/mysql_user", baris 1348, di utama() File "/root/.ansible/tmp/ansible-1380442867.96-101659379289717/mysql_user", baris 405, di main diubah = user_mod(kursor, pengguna, host, kata sandi, priv) File "/root/.ansible/tmp/ansible-1380442867.96-101659379289717/mysql_user", baris 188, di user_mod privileges_revoke (kursor, pengguna, host, db_table, grant_option) File "/root/.ansible/tmp/ansible-1380442867.96-101659379289717/mysql_user", baris 263, di privileges_revoke kursor.jalankan(permintaan) File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", baris 173, di eksekusi self.errorhandler(self, exc, nilai) File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", baris 36, di defaulterrorhandler naikkan kelas kesalahan, nilai kesalahan _mysql_exceptions.OperationalError: (1045, "Akses ditolak untuk pengguna 'root'@'localhost' (menggunakan kata sandi: YA)") FATAL: semua host telah gagal -- batal
Perhatikan bahwa pengguna benar-benar dibuat:
[root@c6-4 ~]# mysql mysql -e "pilih Host,User from user;" | grep elvis | localhost | elvis |
Ini sepertinya pertanyaan otentikasi modul MySQL (mungkin perlu untuk mengatur my.cnf, dll), silakan mampir ke milis jika Anda ingin bantuan.
Hal yang dipelajari: Jangan menyalin/menempel dari dokumen tanpa berpikir.
Untuk generasi mendatang:
Saya menggunakan tugas ini untuk mengubah kata sandi 'root' pengguna mysql:
- nama- nama: Mengatur Kata Sandi Root MySQL mysql_user: name=root password={{ mysql_password}} priv=*.*:ALL state=present
Tampaknya ini merusak izin GRANT dari 'root', sehingga gagal memberikan privs berikutnya kepada pengguna yang baru dibuat....
Persetan, saya juga mengalami hal yang sama. docs harus diubah di sini ASAP.
Sekarang saya harus memperbaiki banyak sistem secara manual :(
Butuh waktu lama bagi saya untuk mencari tahu mengapa beberapa panggilan pada pengguna yang ada atau menghapus pengguna berfungsi dengan baik tetapi membuat yang baru tidak mungkin dengan kredensial yang sama dan benar....
ini harus dibuka kembali sampai dokumen diperbaiki dan harus ada mekanisme pencegahan di modul mysql_user atau setidaknya peringatan !!!
ini berpotensi merusak banyak sistem dan menemukan atau memperbaikinya tidak praktis.
Jika seseorang benar-benar ingin menghapus hibah melalui priv=*.*:ALL
harus ada opsi lain untuk memaksa ini bahkan untuk pengguna root (dengan peringatan besar di dokumen bahwa ini mungkin membuat Anda tidak memiliki pengguna dengan hak Hibah) atau itu harus gagal jika tidak menemukan pengguna dengan hak istimewa yang tersisa ...
Perbaikan manual adalah me-restart mysql dengan opsi:
--skip-grant-tables
Dan Jalankan perintah berikut dalam perintah mysql (CATATAN: GRANT ... ALL ..tidak berfungsi karena tabel hibah itu dilewati duh):
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;