~ / .My.cnf dosyasını mysql-root-parolasını değiştirebildiğiniz için yanlış kullanabilirsiniz.
İşin püf noktası, şifreyi ayarlayacak bir "root parolasını ayarla" (nr.1) görevine sahip olmaktır. Daha sonra, doğru kimlik bilgileriyle ( nr.2) bir ~ / .my.cnf oluşturan bir göreviniz olur .
Yeni bir sistemde ~ / .my.cnf mevcut değil. Görev no. 1 verilen kimlik bilgileriyle mysql-root-user oluşturur. Bir mevcut sistemde, gelen kimlik bilgileri ~ / .my.cnf için giriş ve set şifre kullanılır mysql_root_password . Nr.2 görevi ~ / .my.cnf dosyasını oluşturacak , varolan eski kimlik bilgilerini ~ / .my.cnf'yi yenileriyle değiştirecektir.
Bu yaklaşımın en büyük avantajı, bir oyun kitabının bakış açısından her zaman doğru olan tek bir değişken olan "mysql_root_password" olmasıdır. Mevcut sistem (ler) de, ~ / .my.cnf geçerli yerel mysql kimlik bilgileri için bir tür depolama alanıdır .
- name: Set root user password
# If .my.cnf already exists, this will cause an mysql-root-password update.
mysql_user:
name: root
password: "{{ mysql_root_password}}"
check_implicit_admin: true
- name: Create .my.cnf
template:
src: "client.my.cnf.j2"
dest: "/root/.my.cnf"
owner: root
group: root
mode: 0600
client.my.cnf.j2 ile:
[client]
user=root
password={{ mysql_root_password }}
daha fazla okuma
Ansible-mysql_user_module-dokümantasyonundan ilgili notlar :
Not 1:
Bu kullanıcıyı idempotent bir oynatma kitabının parçası olarak güvenceye almak için en az iki görev oluşturmanız gerekir: ilki, oturum_kullanıcısı / oturum açma_ifresi bilgisi girmeden kök kullanıcının şifresini değiştirmelidir. İkincisi, yeni kök kimlik bilgilerini içeren bir ~ / .my.cnf dosyasını bırakmalıdır. Ardından, oynatma kitabının sonraki işlemleri dosyadaki yeni kimlik bilgilerini okuyarak başarılı olacaktır. ansible-mysql_user_module, notlar
Not 2:
Kimlik bilgilerini geçirirken hem login_password hem de login_user gerekir. Hiçbiri yoksa, modül ~ / .my.cnf kimlik bilgilerini okumaya çalışacak ve son olarak parola olmadan 'root' MySQL varsayılan girişini kullanmaya başlayacaktır. ansible-mysql_user_module, notlar
mysqladmin