ansible_user
Başucu kitabının 'ilk çalıştırılması' için farklıysa (örneğin yalnızca bir root
kullanıcınız varsa ve SSH anahtarıyla yeni bir kullanıcı kuracaksanız) yaptığım şey :
- Parolayı,
ansible_pass
parola girişlerini kullanıyorsanız (Apps Kasası'nı kullanmayı unutmayın) yaptığınız gibi saklayın; bu, oynatma kitabının 'ilk çalıştırılması' için kullandığınız kullanıcının parolası olmalıdır.
- Set
ansible_user
Eğer sunucu üzerinde doğru kurulmuş kullanıcıları olduğunda ilk çalıştırdıktan sonra kullanmak istediğiniz kullanıcının kullanıcı adına.
ansible_user_first_run
Örneğin, oynatma kitabının 'ilk çalıştırılması' için kullanacağınız kullanıcıya bir değişken ayarlayın root
.
- Sunucuya doğru SSH anahtarıyla bağlanmayı denemek için yerel bir komut kullanın
ignore_errors
vechanged_when: False
- Bu başarısız olursa,
ansible_user
değerini güncelleyinansible_user_first_run
İşte kod:
---
- name: Check if connection is possible
command: ssh -o User={{ ansible_user }} -o ConnectTimeout=10 -o PreferredAuthentications=publickey -o PubkeyAuthentication=yes {{ inventory_hostname }} echo "Worked"
register: result
connection: local
ignore_errors: yes
changed_when: False
- name: If no connection, change user_name
connection: local
set_fact:
ansible_user: "{{ ansible_user_first_run }}"
when: result|failed
Not: transport = ssh
Paramiko'nun bazı yapılandırmalarda beklenmedik bir şekilde sunucuya giriş yapamaması nedeniyle ayarlamaya değer (örneğin, sunucu şifreleri kabul etmeyecek şekilde ayarlandığında ve önce bir anahtarla, sonra bir şifre ile çalışıyorsunuz ... tuhaf!) Ayrıca ssh taşımacılığı daha hızlıdır, bu yüzden buna değer.
Ek not: Bu yöntemi kullanıyorsanız, gather_facts: false
şifre sınama aşamasına gelmeden kurulum / bilgi toplama görevlerinin otomatik olarak çalıştırılmaması için oynatma kitabı tanım dosyanızda belirtmeniz gerekir . Eğer yanıtlayıcı 'gerçeklerin herhangi gerekiyorsa, açıkça çağırmanız gerekir setup
gibi yerlerde normal olarak mevcut herhangi bir veri erişmeden önce rol ansible_devices
vs. Bunu yapmanın iyi bir yolu aramaktır setup
bir ile when
çekler olmadığını görmek için bu fıkra Kullandığınız gerçek, rolünüz olarak adlandırmadan önce boştur ya da değildir.